![]() |
![]() |
|
|
|||||||
| 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) | |
|
|