Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Ordner erstellen wenn...

Ordner erstellen wenn...
13.05.2021 08:03:17
Crosser_gerone
Hallo liebes Excel-Forum,
schon oft konnte ich durch euch, meine Excelproblem beheben, doch nun stehe ich vor einem, welches ich noch nicht lösen konnte, daher hoffe ich nun, dass ihr mir mit einem direkten betrag weiterhelfen könnt.
Ich möchte bei einer Arbeitsmappe, dass wenn mehrer Zellen (teilweise auch Verbunden Zellen) aus einer Zeile beschrieben sind automatisch im letzten Feld in der gleichen Zeile ein Ordner angelegt wird mit einner Nummer + Verlinkeung zum Ordner.
Die generierte Nummer sollte aus der aktuellen Uhrzeit Format ="hhmmss" bestehen.
Anbei mal ein Grundaufbau der Arbeitsmappe:
https://www.herber.de/bbs/user/146150.xlsx
Leider habe ich hierzu noch nix passendes im Forum gefunden und hoffe auf eure Hilfe
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ordner erstellen wenn...
13.05.2021 08:33:35
Oberschlumpf
Hi,
aha, und wo genau soll der Ordner erstellt werden? Welcher Pfad?
Und wie sollen die Ordner heißen?
Ciao
Thorsten
AW: Ordner erstellen wenn...
13.05.2021 08:46:55
Crosser_gerone
Hallo Thorsten,
Der Pfad kann erstmal auf C/Dokumente abgelegt sein (anpassen kann man ihn im Nachgang ja noch).
Der Name des Ordners soll aus Spalt 1 3 und der generierten Nummer lauten.
Viele Grüße
Anzeige
AW: Ordner erstellen wenn...
13.05.2021 09:53:53
Oberschlumpf
Hi,
ok, ich hab diesen Hauptpfad genutzt:
"D:\Herber\Crosser_gerone\"
Wenn noch nicht vorhanden, musst du also zuerst auf deiner Festplatte D die Ordner Herber\Crosser_gerone erstellen.
Wenn du kein Laufwerk D hast, dann ersetz D durch C und pass das im VBA-Code an.
Und dann starte diese Datei:
https://www.herber.de/bbs/user/146153.xlsm
Innerhalb der Tabelle im Bereich B6:F13 wird bei jeder Eingabe geprüft, ob in der Zeile, in der du gerade etwas einträgst, auch die anderen Spalten mit Eintrag sind.
Und nur, wenn in den Spalten B,D,F etwas drin steht, wird, wie von dir gewünscht: aus Spalt 1 3, also aus den Spalten B + F, und der aktuellen Uhrzeit im Format hhmmss der Unterordner gebildet, der dann im Hauptordner "D:\Herber\Crosser_gerone\" erstellt wird.
Zusätzlich wird immer in Spalte H ein Hyperlink erzeugt, der als Anzeigetext nur die aktuelle Uhrzeit im Format hhmmss enthält.
Hilfts?
Ciao
Thorsten
Anzeige
AW: Ordner erstellen wenn...
14.05.2021 13:05:00
Crosser_gerone
Hallo Thorsten,
das Makro läuft super und es ist genau das, was ich mir vorgestellt habe.
Ich habe es heute gleich in meine Hauptdatei eingespielt. ;-)
Jetzt hätte ich dazu jedoch nochmals eine Frage:
Wenn man aus den "Bearbeitungszellen" etwas löscht bzw. verändert, wird der vorhandene Ordner überschrieben, wenn die Bedingung erneut erfüllt wird.
Gibt es hier noch die möglichkeit zu prüfen, wenn Ordner bereits für "Spalte H" angelegt ist, dann keinen neuen Ordner erstellen bzw Funktion nicht ausführen?
Das wäre natürlich noch großartig.
Ich danke dir schonmal vorab für das echt Klasse Makro!
Viele Grüße
Anzeige
AW: Ordner erstellen wenn...
14.05.2021 15:58:32
Oberschlumpf
Hi,
füg direkt unterhalb dieser Zeile...

Function fcFull(ByVal zeile As Long) As Boolean
...diesen Code ein...

If Range("H" & Target.Row).Value  "" Then
fcFull = False
Exit Function
End If
Es sollte dann bei dir das hier stehen:

Function fcFull(ByVal zeile As Long) As Boolean
If Range("H" & Target.Row).Value  "" Then
fcFull = False
Exit Function
End If
'...der restliche Code in Function
Jetzt wird jedes Mal geprüft, ob in Spalte H schon ein Eintrag steht - wenn JA, wird die Function sofort wieder verlassen, und es wird kein neuer Ordner erstellt.
Wenn du aber in einer Zeile, in der schon mal ein Ordner erstellt wurde, doch wieder einen neuen Ordner erstellen willst, musst du ab jetzt auch den "alten" Eintrag in Spalte H löschen.
Hilfts?
Ciao
Thorsten
Anzeige
AW: Ordner erstellen wenn...
15.05.2021 08:25:01
Crosser_gerone
Hallo Thorsten,
genau so sollte es sein.
Musste Aufgrund eines Kompilierungs-Fehler im VBA den Code wie folgt abändern.

If Range("H" & zeile).Value  "" Then
fcFull = False
Exit Function
End If
Jetzt es aber genau das was es soll.
Wenn Zelle H bereist beschrieben(Ordner erstellt) dann wird kein neuer Ordner erstellt.
Wenn Zelle H leer dann legt er einen neuen Ordner an.
Vielen Dank für deine Unterstützung.
Viele Grüße und ein schönes Wochenende.
Anzeige
AW: Ordner erstellen wenn...
15.05.2021 08:33:46
Oberschlumpf
Hi,
sorry, aber bei (immer wieder) neuer Frage wäre es schöner, wenn du auch mal wieder die Anderen fragst.
Ja, ich weiß, es kann auf jeden Beitrag (auch auf Folgefragen) natürlich auch jeder antworten - aber oft (nicht immer) ist es in Foren so, dass der erste Antworter meist auch der einzige Antworter bleibt, wenn es Folgefragen gibt.
Und ich möchte ja auch noch Fragen von anderen Teilnehmern beantworten und nicht nur bei dir ;-)
Ciao
Thorsten
Anzeige
AW: Ordner erstellen wenn...
15.05.2021 08:44:24
Crosser_gerone
Hallo Thorsten,
Ich versteh deine letzte Nachricht nicht...
In meinem letzten Post habe ich mich bedankt und geschrieben das es läuft...
Hier wäre nix offen gewesen.
Also nochmals vielen herzlichen Dank für deine Unterstützung.
Viele Grüße
AW: Ordner erstellen wenn...
15.05.2021 10:02:50
Oberschlumpf
hmmm?
Hallo,
ja, ich versteh deine Verwirrung - die nun auch von mir Besitz ergriffen hat :-)
Ich glaube, ich hab dich nicht gemeint...hab nur leider im falschen Beitrag geantwortet....sorry.
Ciao
Thorsten
Anzeige
AW: Ordner erstellen wenn...
15.05.2021 11:42:19
Crosser_gerone
Hallo Thorsten,
Ich versteh deine letzte Nachricht nicht...
In meinem letzten Post habe ich mich bedankt und geschrieben das es läuft...
Hier wäre nix offen gewesen.
Also nochmals vielen herzlichen Dank für deine Unterstützung.
Viele Grüße
;
Anzeige
Anzeige

Infobox / Tutorial

Ordner erstellen in Excel mit VBA


Schritt-für-Schritt-Anleitung

Um einen Ordner in Excel zu erstellen, wenn bestimmte Bedingungen erfüllt sind, kannst Du den folgenden VBA-Code nutzen. Dieser Code prüft, ob in bestimmten Zellen Werte vorhanden sind und erstellt dann einen Ordner mit einem Namen, der sich aus den Inhalten dieser Zellen und der aktuellen Uhrzeit zusammensetzt.

  1. Öffne Deine Excel-Datei und drücke ALT + F11, um den Visual Basic for Applications (VBA)-Editor zu öffnen.

  2. Füge ein neues Modul hinzu, indem Du im Menü auf Einfügen > Modul klickst.

  3. Kopiere und füge den folgenden VBA-Code ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim Ordnername As String
       Dim Pfad As String
       Dim Zeitstempel As String
    
       ' Definiere den Pfad, wo der Ordner erstellt werden soll
       Pfad = "D:\Herber\Crosser_gerone\"
    
       ' Überprüfe, ob die relevanten Zellen gefüllt sind
       If Not IsEmpty(Range("B" & Target.Row)) And Not IsEmpty(Range("D" & Target.Row)) And Not IsEmpty(Range("F" & Target.Row)) Then
           ' Erstelle den Zeitstempel
           Zeitstempel = Format(Now, "hhmmss")
           ' Setze den Ordnernamen zusammen
           Ordnername = Pfad & Range("B" & Target.Row).Value & "_" & Range("F" & Target.Row).Value & "_" & Zeitstempel
    
           ' Überprüfe, ob der Ordner schon existiert
           If Dir(Ordnername, vbDirectory) = "" Then
               ' Erstelle den Ordner
               MkDir Ordnername
               ' Füge einen Hyperlink in Spalte H hinzu
               ActiveSheet.Hyperlinks.Add Anchor:=Range("H" & Target.Row), Address:=Ordnername, TextToDisplay:=Zeitstempel
           End If
       End If
    End Sub
  4. Schließe den VBA-Editor und speichere Deine Excel-Datei als xlsm, um die Makros zu aktivieren.

Jetzt wird bei jeder Eingabe in den definierten Spalten ein neuer Ordner erstellt, wenn die Bedingungen erfüllt sind.


Häufige Fehler und Lösungen

  • Problem: "Kann keinen neuen Ordner erstellen"

    • Lösung: Überprüfe, ob der Pfad korrekt ist und die notwendigen Berechtigungen zum Erstellen von Ordnern bestehen.
  • Problem: Der Ordner wird mehrmals erstellt.

    • Lösung: Stelle sicher, dass der Code zur Überprüfung, ob der Ordner bereits existiert (If Dir(Ordnername, vbDirectory) = "" Then), korrekt implementiert ist.

Alternative Methoden

Eine alternative Methode zum Erstellen von Ordnern ist die Verwendung von Power Automate (ehemals Microsoft Flow). Hier kannst Du ebenfalls automatisierte Workflows erstellen, die bei Änderungen in einer Excel-Datei Ordner auf OneDrive oder SharePoint erstellen.


Praktische Beispiele

Ein Beispiel für den Ordnernamen: Wenn in Spalte B "ProjektA" und in Spalte F "Dokument" steht, und die Uhrzeit 10:30:45 ist, wird der Ordnername wie folgt aussehen:

D:\Herber\Crosser_gerone\ProjektA_Dokument_103045

Tipps für Profis

  • Du kannst die Ordnererstellung noch weiter anpassen, indem Du zusätzliche Bedingungen hinzufügst oder verschiedene Dateiformate berücksichtigst.
  • Überlege, ob Du die Funktionalität erweitern möchtest, um Unterordner zu erstellen oder verschiedene Dateitypen zu verwalten.

FAQ: Häufige Fragen

1. Frage: Wie kann ich den Pfad ändern, in dem die Ordner erstellt werden?
Antwort: Ändere einfach die Variable Pfad im VBA-Code auf den gewünschten Speicherort.

2. Frage: Was passiert, wenn ich den Ordnernamen ändern möchte?
Antwort: Du kannst die Zeile, die Ordnername definiert, anpassen, um den gewünschten Namen zu verwenden.

3. Frage: Ist dieser Code in allen Excel-Versionen kompatibel?
Antwort: Ja, dieser Code sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige