Ordnungsstruktur per CSV erstellen?
Hallo
Ich würde gern nach dieser csv Ordner erstellen und updaten, jedesmal wenn sich etwas in der CSV verändert hat (zb ein Ordner dazu gekommen ist). Wie kann ich das machen?
LG und vielen dank.
3 Antworten
Mit dem FileScriptingObject, FSO. Da gibt es dann CreateFolder um Ordner zu erstellen.
Ach so, ich dachte du wolltest das mit VBA machen. Da hab ich erst mal nix zur Hand. Wenn du dich mal an VBA rantrauen willst unterstütz ich da gern. Das sollte nicht allzu schwer sein und etwas programmieren lernen ist heutzutage sicher nicht das verkehrteste;-)
Sorry. Zu lang gearbeitet gestern. Deswegen war was durcheinander gekommen. Ja ich würde das gern mit VBA machen, aber nur wenns einfach geht. Starte gerade mehrere Firmen. ^^
Achso und ich habe Null Vorkenntnisse. xD
Mhh, kompliziert ist das an sich nicht, aber komplett ohne Programmierkenntnisse natürlich schon. Kennst du denn zumindest schon mal den VBA Editor und weiß wie man ein Modul anlegt?
Ansonsten schau mal hier:
https://www.akademie.de/wissen/vba-lernen-excel-2007-variable-konstante-anweisungen/eigene-module
Wenn du dann das Modul hast kopierst du das hinein:
Sub OrdnerAnlegen()
Dim fso As Object
Dim Ordner As String
Dim i As Long
Const Laufwerk As String = "C:\" 'Hier der Pfad, wo die Ordner erstellt werden sollen
Set fso = CreateObject("Scripting.FileSystemObject")
i = 2 'Zeile, wo die zu erstellenden Ordner beginnen
Do Until Cells(i, 1).Value = "" ' Schleife die solange läuft, bis die erste leere Zelle gefunden wird
Ordner = Cells(i, 1).Value ' Ordnernamen einlesen
If Not fso.FolderExists(Laufwerk & Ordner) Then ' Prüfen, ob der Ordner schon existiert
fso.CreateFolder (Laufwerk & Ordner) ' Ordner anlegen
End If
i = i + 1
Loop
End Sub
Damit kannst du schon mal alle Hauptordner anlegen, wenn das klappt kümmern wir uns um die Unterordner
Also das Modul habe ich jetzt angelegt.
Allerdings ist es so (kurze Aufklärung):
Ich brauche das ganze um flexibel ordnerstrukturen anzulegen.
Und zwar habe ich dafür dieses Mindmap Programm hier, in welchem ich maps als csv Dateien exportieren kann.
(und diese möchte ich per Makro aktualisieren, jedesmal wenn ich etwas in der Struktur map geändert habe)
Gut, das wäre prinzipiell ja erst mal keine Problem, das Makro legt ja nur Ordner an, die existieren, d.h. wenn sich was ändert lässt du es nochmal laufen. Wichtig ist halt, wie die Struktur aussehen soll, die das Makro als Grundlage nimmt. Wenn ich den Screenshot richtig deute soll jeder Block ein Ordner sein? Sollen entfallene Ordner auch wieder gelöscht werden?
Also es ist so, in diesem Programm kann ich nach tags filtern. Und alles was ein Ordner ist, wird am Ende den Tag: "Ordner" bekommen.
Ich kann dann wieder die CSV exportieren nach der gefilterten Ordner map.
Zur Datensicherheit würde ich auf das automatisierte löschen von Ordnern verzichten und dies manuell machen.
Das heißt: die Struktur muss angelegt werden und neue Ordner müssen hinzugefügt werden, wenn diese in der Map erstellt werden.
Das Non-Plus-Ultra wäre natürlich, wenn man Ordner in der Map verschieben könnte und das automatisch auch im Explorer so verändert wird.
Aber hier hätte ich nicht die geringste Ahnung wie man das machen sollte.
(Und das kann man dann auch per Hand machen)
Die csv ist ja schon mal ne gute Grundlage. wie ist das denn in diesem csv, wird der Hauptordner in Spalte A mehrfach genannt wenn da mehrere Unterordner drin sein sollen? Vielleicht kannst du so ein csv File mal etwas konkreter zeigen, also wie so eine Datei aussieht.
Btw, hast du das Makro mal laufen lassen?
Erstmal vielen vielen Dank für deine Hilfe. Ich habe jetzt noch mal alle Export Varianten von MindManager als Bilder hochgeladen.
Lg
Die letzte Export Möglichkeit wird irgendwie nicht angezeigt (der Screenshot)
Hier der Link:
https://www.dropbox.com/s/a4votloydeitncc/Unbenannt10.PNG?dl=0
Also ich würde die letzte Variante wählen, das gibt einen sehr kompakten Code der z.B. so aussieht
Sub OrdnerAnlegen()
Dim fso As Object
Dim Ordner As String
Dim i As Long, j As Long
Const Laufwerk As String = "C:" 'Hier der Hauptpfad, wo die Ordner erstellt werden sollen
Set fso = CreateObject("Scripting.FileSystemObject")
i = 2 'Zeile, wo die zu erstellenden Ordner beginnen
Do Until Cells(i, 1).Value = "" ' Schleife die solange läuft, bis die erste leere Zeile gefunden wird
Ordner = Laufwerk
j = 1 'jetzt alle weiteren Spalten durchlaufen, bis die erste leere Zelle das anzeigt
Do Until Cells(i, j).Value = ""
Ordner = Ordner & "\" & Cells(i, j).Value
If Not fso.FolderExists(Ordner) Then ' Prüfen, ob der Ordner schon existiert
fso.CreateFolder (Ordner) ' Ordner anlegen
End If
j = j + 1
Loop
i = i + 1
Loop
End Sub
Damit kannst du dann Ordner in jede beliebige Tiefe erstellen. Das Makro durchläuft jede Zeile und baut solange in der nächsten Spalte noch was steht einen immer längeren Pfad, den er anlegt so er noch nicht existiert.
Wichtig ist das Trennzeichen, bei angebundenen Laufwerken ist das "\", bei direkten Netzwerkpfaden "/".
Probier es mal aus, hab es mal angetestet, sollte so funktionieren wenn du den Hauptpfad angepasst hast
Ich mache dies immer so. Windows stellt mit ImageHelp ne DLL bereit, der man einfach den Pfad übergibt MIT schließendem "\"
Dann wird der komplette Pfad erstellt egal wieviel aus dem Pfad bereits existiert.
=====
Public Declare Function MakePath Lib "imagehlp.dll" _
Alias "MakeSureDirectoryPathExists" (ByVal lpPath As String) As Long
Aufruf:
MakePath("C:\temp\blabla\")
Wenn du auf deinem Excelblatt die Pfade bereits komplett über Formel vorbereitet hast genügt es über die Zeilen zu iterieren um den kompletten Baum zu erstellen.
Dim startzeile as integer, Pfadspalte as integer
startzeile = 4
Pfadspalte = 2 'Bedeutet Spalte "B"
Do while Cells(startzeile, Pfadtspalte).Value <> ""
MakePath(Cells(startzeile, Pfadtspalte).Value)
startzeile = startzeile + 1
loop
Hallo. Danke für deine Antwort. Ich bin leider ein absoluter Anfänger und habe in dem ganzen wirklich überhaupt keine Erfahrung. Trumpf kann ich mit dem was Du mir geschrieben hast nichts anfangen leider.
Wenn du irgendwo ein Austauschverzeichnis hast oder ggf deine eMail Adresse hier hinterlegen willst dann schicke ich dir dies:

Vielen dank. Habe es jetzt schon zum laufen gebracht. 🙂
Sehr schön. Was gibst du für Kurse, wenn ich fragen darf ?
1.) Schnelllernkurse um schnell Prüfungen zu bestehen.
2.) Bewerbungstrainings
3.) Spartechniken (20-80% von Lohn sparen)
Baue gerade alles auf.
FactorSchool.de
Danke. Ich kann das halt nicht programmieren. Brauche sowas wie ne exe ^^