Chyba s mezerou to nesouvisí.
* Nastav si stopku na příkazu MkDir.
* Mrkni, co máš v proměnné rFolder
* Pokud rFolder je o jeden podadresář hlouběji, než existující, tak ho vytvoří. Ale nevytvoří současně dva.
Takže ve stávající cestě vytvoří adresář \01 Materiál
ale nevytvoří dvě úrovně čili \01 Materiál\Tecam. To už vede k chybě kterou popisuješ.
Ta procedura má problém, s verzí excelu to nesouvisí
Tady máš ladicí procedurku (upravený extrakt ze stávajícího makra)
Sub TestMD()
Dim i As Integer, a As Integer
a = 2
i = 4
FolderPath = ThisWorkbook.Path
bFolder = Sheets("Definice poptávky").Cells(a, i).Value 'NázevDodavatele
aFolder = Sheets("Definice poptávky").Cells(a, 1).Value
rFolder = FolderPath & "\" & aFolder
sFolder = FolderPath & "\" & aFolder & "\" & bFolder 'CestaSložkyDodavatele
MkDir rFolder
If Len(Dir(sFolder, vbDirectory)) = 0 Then
ChDir FolderPath
MkDir aFolder 'Založení složky dodavatele
MkDir rFolder 'Založení složky dodavatele
End If
End Sub
UsedRange.Areas.Count je vždy = 1
Pokud vybereš nesouvisle oblast, tak to poznáš příkazem selection.areas.count, tam to bude > 1
Dotaz zněl na UsedRange, ale není známo, čeho chceš dosáhnout. Možná, že se dá použít jiných vlastností či metod objektu Range ...
Jasně, můžete mít chybu v oné buňce.
Jinak MkDir funguje i v Office365, klidně si to zkuste:
Sub TestMkDir()
Dim strPath As String, aFolder As String
strPath = ThisWorkbook.Path
aFolder = "TestFolder"
If Dir(strPath & "\" & aFolder, vbDirectory) = "" Then 'pokud adresář neexistuje, tak ho vytvoř
MkDir strPath & "\" & aFolder
End If
End Sub
Je několik možností pro definici oblasti:
všechny souřadnice jsou proměnné:
Range(Cells(prvni_Radek, prvni_Sloupec),Cells(posledni_Radek, posledni_Sloupec))
začátek oblasti a počet sloupců jsou konstantní:
Range("A2:F" & posledni_Radek)
hranaté závorky to dovedou zjednodušovat, ale sem-tam je s tím obtíž, tak je používám zřídka:
Range("A1") se dá zapsat jako [A1]
Range("Zakaznici") se dá zapsat jako [Zakaznici]
Obávám se, že z excelu to nezjistíš, neboť pokud je buňka v edit módu, tak asi nic nespustíš.
Dalo by se to asi otestovat nepřímo z jiné aplikace, zde příklad z Wordu:
https://stackoverflow.com/questions/47902259/find-out-if-excel-is-in-edit-mode-from-word-vba
Asi by to chtělo blíže specifikovat. Pokud chceš vědět, jestli je soubor otevřený, tak projdeš všechny otevřené: For i = 1 To Workbooks.Count
a budeš se uvnitř For dotazovat na jméno If Workbooks(i).Name= "xyz.xlsx" Then
Dita napsal/a:
Děkuji, i když tomu nějak nerozumím
Ahoj,
abych se vyhnul potížím s chybějícími referencemi, tak používám přiložený kalendář, který má celou logiku v sobě.
Úspěšně mi to už několik let běží ve dvou aplikacích (desítky uživatelů). Sice máme office 32bit, ale jede to i na 64bitech. Tam to sice nemám otestováno v dlouhodobém ostrém provozu, ale při testování na Office 64b to fungovalo.
Takže vyzkoušej
Zkoušel jsem to i za pomocí VBA, ale nevedlo to ke zdaru.
Čímž netvrdím, že se nenajde koumák, který na řešení přijde.
Nicméně, excel 365 má novou fíčurku a tou je možnost dát do buňky poznámku - (to se v předchozích verzích jmenovalo komentář), ale taky komentář, což jsem ještě neprozkoumal důkladně, co vše to umí.
Ale zrovna to, co potřebuješ, to umí
Děkuji moc, tento příkaz jsem neznal
Ahoj,
mám tabulku s ukotveným prvním řádkem (záhlaví).
Do ní makrem nasypu proměnlivý počet řádků (od několika až po několik set).
Jak ale dosáhnout toho, aby po ukončení makra byl zobrazený poslední řádek někde v dolní části obrazovky?
Čili aby bylo vidět alespoň 3-4 prázdné řádky pod tabulkou a pak co nejvíc řádků ze spodku tabulky.
Předem dík za jednoduché i důmyslné rady jak na to
Ahojte experti,
sešit při otevírání hlásí, že má propojení, ale jedná se o nechtěné propojení, chceme ho vypátrat a zneškodnit. Mnoho propojení se dá zrušit přes Data - Upravit propojení, ale někdy to nepomáhá.
Něco se tady už probíralo v minulosti, ale zkusím to shrnout v níže uvedeném seznamu možných propojení a poprosil bych o doplnění.
1. vzorce
2. pojmenované oblasti (projet Správce názvů)
3. podmíněné formátování
4. ověření dat (Validace)
5. kontingenční tabulka (zdrojová data)
6. Tlačítko či jiný obrazec, který se odkazuje na externí makro. Někdy může nastat stav, kdy jsou třeba dvě tlačítka na sobě, to vrchní je OK, ale pod ním je ještě další tlačítko s odkazem na makro v jiném sešitu
7. odkazy ve formě vložených OLE nebo DDE objektů
8. odkazy ve formě Query dotazů nebo xml
9. odkazy v referencích VBA
Ad 7-9: s tím nemám vlastní zkušenost, ale zmiňuje se to zde http://wall.cz/index.php?m=topic&id=40666&page=1#post-40681
Děkuji, fungují obě řešení
To složitější se seznamem tiskáren je fakt vymakané. Zkusím to používat, i když tam je pro mně poněkud tajemné čtení z registrů. Snad to bude fachčit i ve vyšších verzích excelu, či Windows.
Ještě jednou moc dík !!!
Zkus zdvojit uvozovky v těch vzorcích ...=""Ano""..., ale to improvizuji
Ahojte,
dá se nějakým způsobem z VBA zadat, aby tisk šel na tiskárnu FreePDF a poté nastavit zase zpátky defaultní tiskárnu?
Když dám nahrát makro a udělám to ručně, tak v nahraném kódu to není.
Že by na to byly nějaké API funkce?
Předem dík všem expertům...
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.