< návrat zpět
MS Excel
Téma: Vytvoření složky a podsložky na základě hodnot
Zaslal/a zEjnik 4.6.2013 12:40
Ahoj, potřeboval bych poradit, mám makro, které mi vytváří složku na základě hodnot dvou buněk.
Sub VyvorSlozku()
Dim xdir As String
Dim FSO
Dim lstrow As Long
Dim i As Long
Set FSO = CreateObject("Scripting.FileSystemObject")
lstrow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "D").End(xlUp).Row
Application.ScreenUpdating = False
For i = 1 To lstrow
xdir = "C:\" & Range("D" & i).Value & " - " & Range("F" & i).Value
If Not FSO.FolderExists(xdir) Then
FSO.CreateFolder (xdir)
End If
Next
Application.ScreenUpdating = True
End Sub
Ale potřeboval bych do tohoto makra vytvořit proceduru, která by ve vytvořené složce vytvořila podsložku s pevně daným názvem. např "subfolder".
Tzn. vytvoř složku na základě hodnot v buňce D + F a v této složce vytvoř podsložku s názvem "subfolder".
Děkuji za radu.
Uzamčeno - nelze přidávat nové příspěvky.
eLCHa(4.6.2013 13:01)#013651 Sub VyvorSlozku2()
Dim xdir As String
xdir = "C:\Users\User\Test"
On Error Resume Next
MkDir xdir
If Err.Number = 0 Then
MkDir xdir & "\SubFolder"
End If
On Error GoTo 0
End Subcitovat
zEjnik(4.6.2013 13:32)#013655 Díky, ale nevím jak to rozchodit? Nevidím tam definované podle jakých složky se má vytvořit název složky? Možná proto se mi ani nic nevytvoří :-)
Díky..
citovat
eLCHa(4.6.2013 13:46)#013658 Pokud jste si neupravil
xdir = "C:\Users\User\Test"
na existující adresář, taxe nic nevytvoří, protože neví kde ;)
Zkusil jsem přepsat váš kód, ale nemůžu otestovat - bez přílohy
Sub VyvorSlozku()
Dim xdir As String
Dim lstrow As Long
Dim i As Long
lstrow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "D").End(xlUp).Row
For i = 1 To lstrow
xdir = "C:\" & Range("D" & i).Value & " - " & Range("F" & i).Value
On Error Resume Next
MkDir xdir
If Err.Number = 0 Then 'když existuje, jde dál
MkDir xdir & "\SubFolder"
End If
On Error GoTo 0
Next
End Subcitovat
zEjnik(4.6.2013 14:09)#013664 Adresu jsem si samozřejmě upravil :-)
Tak to už to funguje správně i s podsložkou. Jak jednoduché, jen vědět jak na to. :-)
Díky moc.
citovat
zEjnik(4.6.2013 14:56)#013667 Věděl by jsi ještě jak udělat aby makro začínalo až od 3. řádku?
Chtěl jsem je definovat jako D3, ale to se mu moc nelíbí.
Děkuji.
citovat
eLCHa(4.6.2013 15:08)#013668 For i = 3 To lstrowcitovat
zEjnik(4.6.2013 19:53)#013674