Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1968to1972
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro Anpassung zusätzlicher Ordner

Makro Anpassung zusätzlicher Ordner
15.03.2024 16:54:02
resli
Hallo zusammen

Ich habe ein Makro welches mir diverse Ordner erstellt, nun möchte ich es anpassen das es folgende Optionen bietet: (Aktuell mache ich es indem ich die Zelle D3 ändere und das Makro nochmals laufen lasse.

Jedoch währe es schön wenn ich es automatisch machen könne und auch variabel die Ordner nur erstellt werden wenn in den Zellen Text steht...

Erstellung Projektordners ein Unterordner erstellen mit -Ordner Bau und -Ordner Survey und -Ordner Verrechnung ....
in sämtlichen Unterordner sollten dieselben Ordner enthalten sein (wie es das aktuelle Makro generiert.
Bsp:
Projektordner
- Ordner Bau
- diverse Unterordner
- Ordner Survey
- diverse Unterordner
- Ordner Verrechnung
- diverse Unterordner



Option Explicit


Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long

Sub Ordner_erstellen()
Dim Zeilen As Long, Pfad As String, FullPfad As String, i As Long

Zeilen = Range("b10000").End(xlUp).Row
Pfad = Range("h5")

For i = 7 To Zeilen
FullPfad = Pfad & Cells(i, 2) & "\" & Range("c5") & "\" & Range("c6") & "\"

Call MakeSureDirectoryPathExists(FullPfad)
Next i
For i = 7 To Zeilen
FullPfad = Pfad & Cells(i, 2) & "\" & Range("d5") & "\" & Range("d6") & "\"

Call MakeSureDirectoryPathExists(FullPfad)
Next i

For i = 7 To Zeilen
FullPfad = Pfad & Cells(i, 2) & "\" & Range("e5") & "\" & Range("e6") & "\"

Call MakeSureDirectoryPathExists(FullPfad)
Next i

For i = 7 To Zeilen
FullPfad = Pfad & Cells(i, 2) & "\" & Range("f5") & "\" & Range("f6") & "\"


Call MakeSureDirectoryPathExists(FullPfad)
Next i
End Sub


Hier noch die Excel Datei:
https://www.herber.de/bbs/user/168030.xlsm

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro Anpassung zusätzlicher Ordner
15.03.2024 17:13:49
schauan
Hallöchen,

also mal ein paar Grundlagen.
Wenn Du nur etwas unter bestimmten Bedingungen ausführen willst, dann prüfe das mit If ... Then, z.B.

If Cells (i,2).Value > "" then

'mach was
End If


Aber erst mal was zu Deinen vielen Schleifen. Eigentlich reicht eine.

For i = 7 To Zeilen

FullPfad = Pfad & Cells(i, 2) & "\" & Range("c5") & "\" & Range("c6") & "\"
Call MakeSureDirectoryPathExists(FullPfad)
FullPfad = Pfad & Cells(i, 2) & "\" & Range("d5") & "\" & Range("d6") & "\"
Call MakeSureDirectoryPathExists(FullPfad)
'... usw
Next i


wobei man die Range-Angaben auch noch verschleifen könnte, sodass der Code noch etwas kürzer wird.

Zum "Überspringen" der leeren Zellen wäre die Frage, was da alles leer sein kann. Fehlen immer beide Range einer Zeile oder sind vorhanden, reicht

If Range("c5") & Range("c6") > "" Then 

FullPfad = Pfad & Cells(i, 2) & "\" & Range("c5") & "\" & Range("c6") & "\"
Call MakeSureDirectoryPathExists(FullPfad)
End If


Fehlt nur eins oder hast Du es anders gemeint, bitte nochmal nachfragen.
Anzeige
AW: Makro Anpassung zusätzlicher Ordner
15.03.2024 17:35:45
Oberschlumpf
Hi Andre,

funktioniert...
If Range("c5") & Range("c6") > "" Then

...wirklich so?

Müsste es nicht so geschrieben sein?
If Range("c5").Value > "" And Range("c6").Value > "" Then


Sorry, zum selber testen bin ich gerad zu faul :-)

Ciao
Thorsten
AW: Makro Anpassung zusätzlicher Ordner
16.03.2024 10:49:37
Resli
Hallo vielen dank für die Varianten werde ich mal versuchen.

Bezüglich der Frage wegen Zellen c5 und c6 können auch beide leer sein..
AW: Makro Anpassung zusätzlicher Ordner
16.03.2024 11:27:15
schauan
... ich meinte, ob es nur die Zustände "beide voll oder beide leer" gibt oder auch, dass nur ein Inhalt fehlt. Fehlt nur einer, dann z.B. so:

If Range("c5") >"" Or  Range("c6") > "" Then 

FullPfad = Replace(Pfad & Cells(i, 2) & "\" & Range("c5") & "\" & Range("c6") & "\", "\\","\")
Call MakeSureDirectoryPathExists(FullPfad)
End If


Erklärung: Wenn nur eine Zelle gefüllt ist, entsteht ein doppelter Backslash - der wird mit Replace gegen einen einzelnen getauscht.
Anzeige
AW: Makro Anpassung zusätzlicher Ordner
15.03.2024 17:43:55
schauan
Hi Thorsten,
ja, das geht so auch.
Bin zwar eher ein Freund der kompletten Angabe, aber manchmal rutscht es auch so durch :-)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige