Excel: Aus Tabelle Ordner erstellen --> Bereich

Atex

Ensign
Registriert
Feb. 2008
Beiträge
132
Hallo, folgende Tabelle in Excel (Microsoft Office 2000):

______A_________B___________C
1__Vorname___Nachname___Geburtsjahr
2____Udo______Elefant_______1923
3___Peter______Specht_______1954
4____Max______Ameise_______1936
5___Albert______Frosch_______1977

(Die Unterstriche sollen Leerzeichen sein, ohne wäre es unübersichtlich geworden ;))

Aus dieser Tabelle möchte ich nun in einem bestimmten Verzeichnis, entsprechend der Zelleninhalte, Ordner erstellen.

Habe folgendes Makro bereits gefunden (vorneweg: habe keine Programmierkenntnisse):

__Sub x()
___Dim i As Byte
___For i = 1 To 5
_____If Cells(i, 1) <> "" Then MkDir "d:\daten\" & Cells(i, 1).Value
___Next
__End Sub

Funktioniert auch einwandfrei, nur haben die Ordner immer nur den Namen einer Zelle, sprich z.B. nur Vorname oder Nachname, es sollte aber z.B. Vorname und Nachname und Geburtsjahr sein (durch Leerzeichen oder Unterstrich getrennt).

Weiß einer die Lösung?

Schon mal danke im Vorraus.
 
Hü,

probier mal das:
Code:
Sub x()
  Dim i As Integer
  Dim sPfad As String

   'Prüfen ob Ordner 'daten' existiert. Wenn nicht, neu anlegen
  If Len(Dir("d:\daten", vbDirectory)) = 0 Then MkDir "d:\daten"

  For i = 1 To 5
    sPfad = Cells(i, 1).Value & "_" & Cells(i, 2).Value & "_" & Cells(i, 3).Value
    If Cells(i, 1) <> "" Then MkDir "d:\daten\" & sPfad
  Next

End Sub
Habs noch etwas erweitert. So wird geprüft, ob ein Ordner D:\daten überhaupt existiert. Wenn nicht, wird er erstellt. Ohne diese Prüfung würdest du einen Fehler erhalten wenn es den Ordner nicht gibt.
 
Zuletzt bearbeitet:
Dank dir Mr. Snoot,

funktioniert einwandfrei! (Mir hätt auch die erste von den, wie ich bis jetzt mitgezählt hab, drei Versionen gereicht, aber so ists natürlich besser :))

Was war eigentlich die Änderung vom ersten Code
PHP:
Sub x()
  Dim i As Integer
      
  For i = 1 To 5
    If Cells(i, 1) <> "" Then MkDir "d:\daten\" & Cells(i, 1).Value & "_" & Cells(i, 2).Value & "_" & Cells(i, 3).Value
  Next

End Sub

zum zweiten Code?:confused_alt:
PHP:
Sub x()
  Dim i As Integer
  Dim sPfad As String
      
  For i = 1 To 5
    sPfad = Cells(i, 1).Value & "_" & Cells(i, 2).Value & "_" & Cells(i, 3).Value
    If Cells(i, 1) <> "" Then MkDir "d:\daten\" & sPfad
  Next

End Sub

Der dritte ist klar, da ist die Ordnerabfrage dabei.

P.S. Hab jetzt auch entdeckt, dass man einen PHP-Code ohne lästige Unterstriche einfügen kann ;)
 
Das:
sPfad = Cells(i, 1).Value & "_" & Cells(i, 2).Value & "_" & Cells(i, 3).Value
Damit wird der Variablen sPfad der jew. Ordnername zugeteilt.

Die Codes sind von der Funktionsweise identisch. Ich finds aber etwas übersichtlicher, wenn man separat den Ordnernamen in eine Variable speichert, und diese weiterverwendet. Ist v.a. hilfreich, wenn man den Ordnernamen im Skript nochmal verwendet, dann braucht man nicht den ganzen Rattenschwanz, sondern nur die eine Variable.
 
Zuletzt bearbeitet:
Aha :D

Noch einmal ein großes Dankeschön!
 
Zurück
Oben