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

Forumthread: Zellwerte als Ordner erstellen, Leerzeichen

Zellwerte als Ordner erstellen, Leerzeichen
20.07.2015 05:14:31
Bernd
Wünsche einen schönen guten Morgen,
Michael (migre) hat mir Super bei meinem Beitrag:
https://www.herber.de/forum/archiv/1436to1440/t1436325.htm
geholfen. Der Code funktioniert einwandfrei und erledigt auch meine Vorstellungen, wie nach Wunsch. Musste einen neuen Beitrag schreiben, da der alte nicht mehr zu finden war.
Eine winzige Kleinigkeit ist mir jedoch aufgefallen. Wenn nun in einer Zelle ein Doppelname mit einem Leerzeichen vorkommt, dann wird der Ordner aber ohne Leerzeichen erstellt.
z.B.: der Name lautet El Paso wird aber als Ordner mit ElPaso, ohne das Leerzeichen, erstellt.
Hier nochmals der VBA Code vom Michael:
Option Explicit
Sub OrdnerStapelanlage()
Dim Info As String
Dim Pfad As String
Dim LeZeile As Long
Dim Namensliste As Range
Dim Name As Range
Dim Ordner As String
Dim i As Integer
'[OPTIONAL] Benutzer-Info und Abbruchsmöglichkeit
Info = MsgBox("Für jeden in Spalte F ab Zeile 2 eingetragenen Namen " & _
"(Zellwert) wird nun ein Ordner in [D:\FLAG] angelegt." & vbCrLf & _
vbCrLf & "Das kann einige Zeit in Anspruch nehmen. Starten?", vbOKCancel, _
"Ordner Stapelanlage starten?")
If Info = vbCancel Then Exit Sub
'Hauptpfad in dem Ordner angelegt werden sollen
Pfad = PfadWahl
'Wenn Namensliste ggf. Leerzeilen enthält
LeZeile = ThisWorkbook.Worksheets("Tabelle1"). _
Cells(ThisWorkbook.Worksheets("Tabelle1").Rows.Count, 6).End(xlUp).Row
'Wo stehen die Ordnernamen
Set Namensliste = ThisWorkbook.Worksheets("Tabelle1").Range("F2:F" & LeZeile)
'Ordner nach Liste anlegen, ggf. "hochzählen"
For Each Name In Namensliste
Select Case Name.Value
Case Is = ""
'Leere Zellen überspringen
Case Else
Ordner = OrdnerSauber(Name.Value)
If Dir(Pfad & "\" & Ordner, vbDirectory) = "" Then
MkDir Pfad & "\" & Ordner
Else:
i = 2
Do Until Dir(Pfad & "\" & Ordner & "_" & i, vbDirectory) = ""
i = i + 1
Loop
MkDir Pfad & "\" & Ordner & "_" & i
End If
End Select
Next
'[OPTIONAL] Benutzer-Info und Hauptpfad nach Stapelanlage öffnen
Info = MsgBox("Ordner wurden angelegt. Verzeichnis wird geöffnet... ", vbInformation, _
"Stapelanlage abgeschlossen!")
Shell "Explorer.exe " & Pfad, vbNormalFocus
End Sub
Function OrdnerSauber(Name As String) As String
'Ordnernamen dürfen nur Buchstaben A-Z inkl. Umlaute enthalten
Dim i As Integer
Dim Klar As String
For i = 1 To Len(Name)
Select Case LCase(Mid(Name, i, 1))
Case Is = "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", _
"n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", _
Klar = Klar & Mid(Name, i, 1)
Case Else
Klar = Klar
End Select
Next i
OrdnerSauber = Klar
End Function
Function PfadWahl() As String
'Verzeichnis, in das Ordner per Stapelanlage erzeugt werden sollen, über
'Datei-Dialog wählen
Dim SuchDialog As FileDialog
Set SuchDialog = Application.FileDialog(msoFileDialogFolderPicker)
With SuchDialog
.Title = "Bitte Verzeichnis wählen"
.AllowMultiSelect = False
If .Show  -1 Then
MsgBox "Vorgang abgebrochen", vbInformation
Exit Function
Else: PfadWahl = .SelectedItems(1)
End If
End With
End Function

Frage?
Wie müsste denn der Code verändert werden, damit bei den Ordnernamen auch die Leerzeichen übernommen werden?
Hoffe es ist überhaupt machbar, ansonsten werde ich es auch so überleben da es ja nur eine Kleinigkeit ist.
Dann wünsche ich allen einen schönen Wochenstart und liebe Grüße aus Kärnten,
Bernd

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellwerte als Ordner erstellen, Leerzeichen
20.07.2015 07:16:32
Nepumuk
Hallo,
so:
Function OrdnerSauber(Name As String) As String
'Ordnernamen dürfen nur Buchstaben A-Z inkl. Umlaute enthalten
Dim i As Integer
Dim Klar As String
For i = 1 To Len(Name)
Select Case LCase(Mid(Name, i, 1))
Case Is = "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", _
"n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", _
Klar = Klar & Mid(Name, i, 1)
End Select
Next i
OrdnerSauber = Klar
End Function

Den Else-Zweig kannst du löschen, der macht keinen Sinn.
Gruß
Nepumuk

Anzeige
AW: Zellwerte als Ordner erstellen, Leerzeichen
20.07.2015 08:46:23
Bernd
Hi Nepumuk!
recht herzlichen Dank für Deine rasche und kompetente Hilfe.
Funktioniert einwandfrei mit Deinem Änderungsvorschlag.
Danke nochmals und lg,
Bernd
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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