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

Forumthread: Ordner erstellen auf Knopfdruck

Ordner erstellen auf Knopfdruck
27.09.2020 05:08:51
Specker
Hallo
Leider kenne ich mich nicht aus mit VB, daher bin ich hier gestrandet.. ;)
Ich bräuchte für mein Warenwirtschaftsprogramm eine Excel Funktion, die mir ganz bestimmte Ordner erstellt, in dem Verzeichnis, in der die Excel Datei liegt.
Ich habe verschiedene Zellen in meiner Vorlage (A1-A20) mit Werten wie „828-001“, „828-002“ etc.
Aus jedem dieser Zellenwerte müsste ein Ordner erstellt werden, der einen Unterordner beinhaltet.
Für die Zelle A1 mit dem Wert "828-001" müsste ein Ordner erstellt werden namens "Artikel828-001".
In diesem Ordner müsste ein weiterer Ordner namens "pics" liegen.
Also von A1 bis A20 stehen zahlen drin wie 828-001. Es müssten also aus diesem Zellen-Bereich die entsprechenden Ordner erstellt werden.
Wenn nur A1 bis A6 mit Werten gesetzt wäre, dürften auch nur 6 Ordner erstellt werden. (Die jeweils den Unterordner "pics" beinhaltet.
Der erste Order muss also quasi einfach nur "Artikel"+"Wert von A1" heißen. Ohne Leerzeichen.
Zweiter Ordner "Artikel"+"Wert von A2" etc.
Also z.b. "Artikel944-007".
Über ein activeX Button müsste die Funktion dann ausgeführt werden können.
Könnt ihr mir helfen das umzusetzen? Ich wäre euch unendlich dankbar.
Gruß - Ben
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ordner erstellen auf Knopfdruck
27.09.2020 11:21:33
volti
Hallo Ben,
hier noch eine Variante:

Code:
[Cc]
 
Option Explicit Private Declare PtrSafe Function MakeSureDirectoryPathExists Lib "imagehlp.dll" ( _ ByVal lpPath As String) As Long Sub ErstelleOrdner() 'Sub erstellt Ordner lt. Liste im aktuellen Verzeichnis Dim iZeile As Long With ActiveSheet For iZeile = 1 To .Cells(Rows.Count, "A").End(xlUp).Row If .Cells(iZeile, "A").Value <> "" Then MakeSureDirectoryPathExists ThisWorkbook.Path & "&bsol;Artikel" _ & .Cells(iZeile, "A").Value & "&bsol;pics&bsol;" End If Next iZeile End With MsgBox "Ordner wurden erstellt!", vbInformation, "Ordner erstellen" End Sub
 
____________________
viele Grüße aus Freigericht
Karl-Heinz

Anzeige
AW: Ordner erstellen auf Knopfdruck
27.09.2020 19:59:12
Specker
Hi Karl-Heinz
Es funktioniert super!!! Tausend Dank!!! :)
Ich habe lediglich eine kleine Sache ergänz:
If .Cells(iZeile, "A").Value  "" And iZeile 
Ich wollte ja, dass maximal bis Zeile 20 nach Zellwerten gesucht wird. Das habe ich unglücklich ausgedrückt. Genauer gesagt, hatte ich das garnicht formuliert ^^
Wie auch immer, jetzt läufts! Danke nochmal!
Gruß - Ben
-----
@ Armin
Den Code habe ich irgendwie nicht zum laufen gebracht, obwohl ich den Zellwert angepasst hatte.
Trotzdem auch dir danke! :)
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Ordner erstellen auf Knopfdruck


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und erstelle eine neue Arbeitsmappe oder öffne eine bestehende.

  2. Gib die Werte in die Zellen A1 bis A20 ein. Diese Werte sollten die Namen der Ordner sein, die Du erstellen möchtest (z.B. "828-001", "828-002").

  3. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den Editor zu öffnen.
  4. Füge einen neuen Moduls hinzu:

    • Klicke auf Einfügen > Modul.
  5. Kopiere den folgenden VBA-Code in das Modul:

    Option Explicit
    
    Private Declare PtrSafe Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long
    
    Sub ErstelleOrdner()
       Dim iZeile As Long
    
       With ActiveSheet
           For iZeile = 1 To 20
               If .Cells(iZeile, "A").Value <> "" Then
                   MakeSureDirectoryPathExists ThisWorkbook.Path & "\Artikel" & .Cells(iZeile, "A").Value & "\pics\"
               End If
           Next iZeile
       End With
       MsgBox "Ordner wurden erstellt!", vbInformation, "Ordner erstellen"
    End Sub
  6. Füge einen ActiveX-Button hinzu:

    • Gehe zur Registerkarte Entwicklertools, klicke auf Einfügen und wähle den ActiveX-Steuerelement-Button.
    • Klicke auf das Arbeitsblatt, um den Button zu platzieren.
  7. Verknüpfe den Button mit dem Code:

    • Klicke mit der rechten Maustaste auf den Button und wähle Code anzeigen.
    • Trage ErstelleOrdner in die Funktion ein.
  8. Teste den Button:

    • Schließe den VBA-Editor und klicke auf den Button, um die Ordner zu erstellen.

Häufige Fehler und Lösungen

  • Problem: Der Ordner wird nicht erstellt.

    • Lösung: Stelle sicher, dass die Excel-Datei in einem Verzeichnis gespeichert ist, in dem Du Schreibrechte hast.
  • Problem: Die Fehlermeldung "Ordner wurden erstellt!" erscheint, aber es gibt keine Ordner.

    • Lösung: Überprüfe, ob die Zellen A1 bis A20 Werte enthalten und ob die Werte korrekt sind.

Alternative Methoden

Du kannst auch die integrierte Funktion mkdir in Kombination mit PowerShell nutzen, um Ordner aus einer Excel-Liste zu erstellen. Eine weitere Möglichkeit besteht darin, eine Batch-Datei zu verwenden, die aus den Werten in Excel generiert wird.


Praktische Beispiele

Wenn Du in den Zellen A1 bis A5 die folgenden Werte hast:

A
828-001
828-002
828-003
828-004
828-005

Der Code erstellt folgende Ordnerstruktur im gleichen Verzeichnis wie die Excel-Datei:

Artikel828-001
└── pics
Artikel828-002
└── pics
Artikel828-003
└── pics
Artikel828-004
└── pics
Artikel828-005
└── pics

Tipps für Profis

  • Du kannst den Code anpassen, um benutzerdefinierte Ordnerstrukturen zu erstellen, z.B. durch Hinzufügen weiterer Unterordner.
  • Verwende die Funktion ThisWorkbook.Path, um sicherzustellen, dass die Ordner im gleichen Verzeichnis wie die Excel-Datei erstellt werden.
  • Experimentiere mit der Schleife, um die maximale Zeilenzahl flexibel zu gestalten.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Ordner in verschiedenen Verzeichnissen erstellen? Du müsstest die MakeSureDirectoryPathExists-Funktion anpassen, um die gewünschten Pfade zu berücksichtigen.

2. Kann ich das Skript anpassen, um andere Dateitypen zu erstellen? Ja, Du kannst den Code erweitern, um auch Dateien wie Texte oder Bilder in den erstellten Ordnern zu speichern.

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