Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Makro: Ordner erstellen dynamische Laenge
#1
Guten Morgen und Hallo,

ich bin neu hier und haette eine Frage bzgl. eines kleinen Makros zum erstellen von Ordnern, ob ich es auch dynamisch zB mit lngrow oder aehnlichem hinbekommen koennte:

Sub CreateFolderBasedCells()
'This Macro creates folders using cells values
'Iterate through each cell in cell range B2:B200 and save to variable
For Each cell In Range("D3:D3")
'Check if Folder is non-existing
If Dir(cell, vbDirectory) = "" Then
'Create Folder based on content in variable cell
MkDir cell
End If
'Continue with next cell
Next cell
End Sub


Habe momentan nur etwas in Zelle D3 stehen, aber generell waere es eine Liste von mehreren Hundert Zeilen, die jeden Monat in Form von Ordner zu erstellen und Dateien zu kopieren sind.

Gruss
Matthias
Antworten Top
#2
Hallo Matthias,

z.B. so:
Sub CreateFolderBasedCells()
'This Macro creates folders using cells values
'Iterate through each cell in cell range B2:B200 and save to variable
For Each cell In Range("D3:D" & Application.Max(3, Cells(Rows.Count, 4).End(xlUp).Row))
If Len(cell.Value) Then
'Check if Folder is non-existing
If Dir(cell, vbDirectory) = "" Then
'Create Folder based on content in variable cell
MkDir cell
End If
End If
'Continue with next cell
Next cell
End Sub
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • mabro
Antworten Top
#3
Hallo,

die Frage nach "lngroow":

Ja, man kann auch schreiben:

Code:
for i = 10 to 20
     mkdir cells(i, 1)
next

Wichtig ist, dass in den Zellen gültige Pfadnamen stehen.

mfg

Hallo,

es gibt Alternativen, hier eine relativ einfachere:

Code:
Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" ( _
ByVal DirPath As String) As Long

Sub Ordner_pruefen_anlegen()
ordner = "c:\users\xxxxx\desktop\test\2020\" ' <<< anpassen >>>

MakeSureDirectoryPathExists ordner

End Sub

Anstelle von "Ordner" müssen die Inhalte der Zellen stehen.

Falls ein Ordner bereits existiert, passiert nichts, auch kein Fehler. Es können direkt auch Unterordner angelegt werden.

mfg
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • mabro
Antworten Top
#4
Hallöchen,

http://www.xltips.de/VBA-API-Path.html
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • mabro
Antworten Top
#5
Hallo Uwe,

super, vielen Dank, die werde ich ausprobieren. So etwas aenliches hatte ich, glaube ich, bei einem Makro mit kopieren und umbenennen gesehen.


Hallo Fennek,

vielen Dank fuer die beiden Vorschlaege. Bei dem ersten mit den Pfaden muss ich ausprobieren wie es funktioniert. DAs sagt mir nichts, ich habe erst angefangen mich mit Macros zu beschaeftigen. Mit den Pfaden hatte ich bereits beim Erstellen Probleme.
Der direkte Serverpfad funktionierte nicht bzw. mal nicht mal doch, die Netzlaufwerkverknuepfung aus dem Win Expl. bis dato gut und schneller. 

Bei dem zweiten muss ich reinschauen, habe gelesen es handelt sich um API, bin gespannt wie es funktioniert.

Gruss
Matthias
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste