Clever-Excel-Forum

Normale Version: Fehler beim kopieren und umbenennen von Ordnern über VBA
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Zusammen,

vielleicht kann mir jemand weiter Helfen:

Über ein Steuerelement soll ein bestehender Ordner kopiert und in Abhängigkeit der Zellen B und C in einer ausgewählten Zeile umbenannt werden, was mit dem bestehenden Code bereits funktioniert, aber:
Ist der Ordner für eine bestimmte Zeile bereits angelegt und ich betätige das Steuerelement aus versehen nochmals, wird der bestehende Ordner nochmals kopiert und der bestehende Ordner dadurch "überschrieben".

Bspw: Zeile 5 Spalte B = 077436, C= Stamm --> Betätigen des Steuerelements kopiert den "Strukturordner" und erstellt den Ordner "077436 Stamm"
         Bei nochmaliger Betätigung des Steuerelements wird der "Strukturordner" nochmals kopiert, umbenannt und Daten aus  "077436 Stamm" damit 
         überschrieben.

Code:
Private Sub CommandButton21_Click()
         
     If Dir(Cells(ActiveCell.Row, 2).Value & " " & Cells(ActiveCell.Row, 3).Value, vbDirectory) = "" Then
        CreateObject("Scripting.FileSystemObject").CopyFolder "C:\Test\Strukturordner", "C:\Test\" & Cells(ActiveCell.Row, 2).Value & " " & Cells(ActiveCell.Row, 3).Value
        MsgBox "Ordner " & Cells(ActiveCell.Row, 2).Value & Cells(ActiveCell.Row, 3).Value & " wurde angelegt"
     Else
         MsgBox "Ordner " & Cells(ActiveCell.Row, 2).Value & Cells(ActiveCell.Row, 3).Value & " ist bereits vorhanden"
     End If
 End Sub


Vielen Dank bereits im voraus!

Grüße,
Cei
Hallo,

fehlt da nicht das Laufwerk?
Hi,

das Laufwerk ist ja mit der C-Festplatte in der 3. Zeile enthalten, oder meinst es muss eine weitere Zuordnung gemacht werden?

 CreateObject("Scripting.FileSystemObject").CopyFolder "C:\Test\Strukturordner", "C:\Test\" & Cells(ActiveCell.Row, 2).Value & " " & Cells(ActiveCell.Row, 3).Value

grün = Ort des "Strukturordners"
blau = Ort des umbenannten Ordners
Hallo,

statt

Code:
If Dir(Cells(ActiveCell.Row, 2).Value & " " & Cells(ActiveCell.Row, 3).Value, vbDirectory) = "" Then

so

Code:
If Dir("C:\Test\" & Cells(ActiveCell.Row, 2).Value & " " & Cells(ActiveCell.Row, 3).Value, vbDirectory) = "" Then
Hi,
ja klar, stimmt sonst gleicht der des ja immer mit dem Standardpfad ab und denkt, hey da ist ja nichts.

Cool, danke dir!!!