![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Master
![]() |
![]() Hallo Leute!
Ich hab ein kleines Problem mit diesem Code: Code:
Sub Schaltfläche6_Klicken() Dim i As Integer Dim sPfad As String Dim fso, Ordnername Set fso = CreateObject("Scripting.FileSystemObject") 'Prüfen ob Ordner 'daten' existiert. Wenn nicht, neu anlegen If Len(Dir("c:\Firma", vbDirectory)) = 0 Then MkDir "c:\Firma" For i = 3 To 1000 sPfad = Cells(i, 7).Value & " " & Cells(i, 6).Value Ordnername = Cells(i, 7).Value & " " & Cells(i, 6).Value If (fso.FolderExists(Ordnername)) = False Then MkDir ("c:\Firma\" & sPfad) Else On Error Resume Next End If Next End Sub Jetzt gibt es den Ordner schon dennoch springt mit Excel in die Zeile Code:
MkDir ("c:\Firma\" & sPfad) Bitte um Unterstützung. Danke! ![]() |
![]() |
![]() |
![]() |
#2 |
Master
![]() Registriert seit: 22.03.2000
Alter: 66
Beiträge: 550
|
![]() Hi!
Zuerst solltest du etwas Ordnung in den Code bringen. Dann ist er leichter zu verstehen, und Fehler sind leichter zu erkennen. Ich würde sagen die Variable Ordnername enthält keinen gültigen Pfad. mfg WB |
![]() |
![]() |
![]() |
#3 |
Master
![]() |
![]() danke, ja hat gestimmt ... ein kollege hat mir zeitgleich den Fehler gezeigt
hier ist der richtige code: Code:
Sub Schaltfläche6_Klicken() Dim i As Integer Dim sPfad As String Dim fso, Ordnername Set fso = CreateObject("Scripting.FileSystemObject") 'Prüfen ob Ordner 'daten' existiert. Wenn nicht, neu anlegen If Len(Dir("c:\Firma", vbDirectory)) = 0 Then MkDir "C:\Firma" Else 'do nothing End If For i = 3 To 1000 sPfad = Cells(i, 7).Value & " " & Cells(i, 6).Value Ordnername = Cells(i, 7).Value & " " & Cells(i, 6).Value If sPfad = "" Then Else If (fso.FolderExists("C:\Firma\" & Ordnername)) = False Then MkDir ("C:\Firma\" & sPfad) Else On Error Resume Next End If End If Next End Sub *closed* |
![]() |
![]() |
![]() |
#4 |
Inventar
![]() Registriert seit: 23.03.2000
Ort: Graz
Alter: 71
Beiträge: 3.567
|
![]() Hi
Na ja, "richtiger Code" ist hier wohl ein wenig übertrieben. Eine erste Verbesserung wäre: Code:
Public Sub Schaltfläche6_Klicken() Dim i As Integer Dim RootDir As String Dim NewDir As String Dim Ordnername As String Dim fso RootDir = "C:\Firma" Set fso = CreateObject("Scripting.FileSystemObject") 'Prüfen ob Ordner 'daten' existiert. Wenn nicht, neu anlegen If Len(Dir(RootDir, vbDirectory)) = 0 Then MkDir RootDir End If 'Jetzt das Ganze für die Unterordner For i = 3 To 1000 Ordnername = Cells(i, 7).Value & " " & Cells(i, 6).Value If Trim$(Ordnername) <> "" Then NewDir = RootDir & "\" & Ordnername If (fso.FolderExists(NewDir)) = False Then MkDir (NewDir) End If End If Next End Sub ![]()
____________________________________
Ciao |
![]() |
![]() |
![]() |
#5 |
Master
![]() |
![]() @FranzK
Thx ... verstehe zwar nicht alle optimierungen, aber das ist ja nicht so tragisch hauptsache der code funktioniert. habe ihn für mich angepasst und funzt super. ![]() |
![]() |
![]() |
![]() |
#6 | |
Inventar
![]() Registriert seit: 23.03.2000
Ort: Graz
Alter: 71
Beiträge: 3.567
|
![]() Zitat:
![]()
____________________________________
Ciao |
|
![]() |
![]() |
![]() |
#7 |
Master
![]() |
![]() stimmt ... klingt logisch
![]() |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|