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

Forumthread: problem mit filesystemobject

problem mit filesystemobject
26.01.2007 11:33:49
chris
Hallo Excellianer,
ich habe heute schon wieder eine frage.
ich wollte mit unten stehendem Code ein bischen dazulernen.
Wie ich Ordner kopiere , verschiebe wie ich textdateien kopierenkann erstellen kann usw..
ich wollte einfach wissen wie mann mit fso umgeht.
ich konnte diesen code auch Problemlos auf meinem Rechner ausführen.
Habe mit F8 immer einzelschritt gemacht.
und auf einmal geht nichts mehr ?
es kommt hier
Set oFs = CreateObject("Scrpting.FileSystemObject")
immer der fehler: "Laufzeitfehler 429"
"Objecterstellung durch Activex komponente nicht möglich."
ich habe aber nichts geändert oder so an meinem PC.
Es ging und auf einmal kommt dieser fehler.
Was kann ich tun.
Vielen Dank schon im vorraus für eure guten Tipps.
P.s vieleicht noch eine abschlussfrage wo bekome ich raus oder wie sehen ich welche funktion ich nach dem . ausführen kann also ich meine wie hier z.b
oFs.copyFolder
der Wert copyFolder oder hier
oFs.MoveFolder
der Wert MoveFolder
wenn ich eingebe Ofs und dann einen Punkt kommt nicht wie abn und zuin excel eine kleine Hilfsauswahl welche möglich sind sondern es kommt nichts.
Const constkopieren_worein = "c:\testordner\"
Const constArchidatei = "c:\test1.txt"
Const constkopieren_welchenOrdner = "c:\test1"
'abstand

Sub ÄnderungenBlatt()
Dim oFs As Object 'object FileSystem für Zugriff auf Ordner
'kopieren
Set oFs = CreateObject("Scrpting.FileSystemObject")
oFs.copyFolder constkopieren_welchenOrdner, constkopieren_worein, False
'   Kopieren      ( was    /   worein )
Set oFs = Nothing
' verschieben
Set oFs = CreateObject("Scripting.FileSystemObject")
oFs.MoveFolder constkopieren_welchenOrdner, constkopieren_worein
'   verschieben      ( was    /   worein )
Set oFs = Nothing
'txt datei erstellen
Set Fs = CreateObject("Scripting.FileSystemObject")
Set a = Fs.CreateTextFile("c:\testfile.txt", True)
a.WriteLine ("der text der drinn steht")
a.Close
'datei verschieben
Set Fs = CreateObject("Scripting.filesystemobject")
For Each Fl In Fs.GetFolder(PF).Files
If Fl.DateCreated > LIMIT Then _
Fs.MoveFile Fl.Path, PF_TARGET
Next
End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: problem mit filesystemobject
26.01.2007 11:45:38
mumpel
Hallo!
Du hast ein i zu wenig, so müsste es gehen:
Set oFs = CreateObject("Scripting.FileSystemObject")
Gruss Rene
AW: problem mit filesystemobject
26.01.2007 12:13:36
chris
Danke das wars hab ich selbst nicht gesehen !
gruß Chris
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Umgang mit dem FileSystemObject in Excel VBA


Schritt-für-Schritt-Anleitung

Um das FileSystemObject in Excel VBA zu verwenden, folge diesen Schritten:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.

  2. Erstelle ein neues Modul: Rechtsklick auf "VBAProject (deineDatei.xlsm)" > "Einfügen" > "Modul".

  3. Füge den folgenden Code ein:

    Sub DateiOperationen()
       Dim oFs As Object
       Set oFs = CreateObject("Scripting.FileSystemObject")
    
       ' Beispiel: Ordner kopieren
       oFs.CopyFolder "C:\AlterOrdner", "C:\NeuerOrdner"
    
       ' Beispiel: Datei erstellen
       Dim a As Object
       Set a = oFs.CreateTextFile("C:\testfile.txt", True)
       a.WriteLine ("Hier steht ein Beispieltext")
       a.Close
    
       Set oFs = Nothing
    End Sub
  4. Führe den Code aus: Drücke F5 oder klicke auf "Ausführen".


Häufige Fehler und Lösungen

Ein häufiger Fehler, den du möglicherweise siehst, ist:

  • Laufzeitfehler 429: "Objekt-erstellung durch ActiveX-Komponente nicht möglich."
    • Lösung: Stelle sicher, dass du den Code korrekt eingibst. Achte darauf, dass du CreateObject("Scripting.FileSystemObject") schreibst und nicht CreateObject("Scrpting.FileSystemObject") (ein Buchstabe fehlt).

Alternative Methoden

Falls du kein FileSystemObject verwenden möchtest, kannst du auch die integrierten Funktionen von VBA nutzen, um einfache Dateioperationen durchzuführen:

  • Datei kopieren:

    FileCopy "C:\AlterOrdner\datei.txt", "C:\NeuerOrdner\datei.txt"
  • Ordner erstellen:

    MkDir "C:\NeuerOrdner"

Diese Methoden sind zwar nicht so flexibel wie das FileSystemObject, können aber für einfache Aufgaben ausreichen.


Praktische Beispiele

  1. Ordner verschieben:

    Sub OrdnerVerschieben()
       Dim oFs As Object
       Set oFs = CreateObject("Scripting.FileSystemObject")
       oFs.MoveFolder "C:\AlterOrdner", "C:\NeuerOrt"
       Set oFs = Nothing
    End Sub
  2. Dateien auflisten:

    Sub DateienAuflisten()
       Dim oFs As Object
       Dim oFolder As Object
       Dim oFile As Object
       Set oFs = CreateObject("Scripting.FileSystemObject")
       Set oFolder = oFs.GetFolder("C:\DeinOrdner")
    
       For Each oFile In oFolder.Files
           Debug.Print oFile.Name
       Next oFile
    
       Set oFs = Nothing
    End Sub

Tipps für Profis

  • Verwende With-Anweisungen: Dies vereinfacht den Code und macht ihn lesbarer.

    With CreateObject("Scripting.FileSystemObject")
      .CopyFolder "C:\AlterOrdner", "C:\NeuerOrdner"
    End With
  • Fehlerbehandlung: Implementiere On Error Resume Next, um Fehler elegant zu behandeln.


FAQ: Häufige Fragen

1. Warum funktioniert CreateObject("Scripting.FileSystemObject") nicht? Stelle sicher, dass du die richtige Schreibweise verwendest. Ein Tippfehler kann zu Laufzeitfehlern führen.

2. Wie kann ich die Funktionen des FileSystemObject herausfinden? Du kannst die IntelliSense-Funktion in VBA nutzen, indem du nach dem Punkt . bei einem FileSystemObject suchst, um die verfügbaren Methoden anzuzeigen.

3. Gibt es eine Möglichkeit, Dateien und Ordner zu löschen? Ja, du kannst oFs.DeleteFile oder oFs.DeleteFolder verwenden, um Dateien oder Ordner zu löschen. Achte darauf, dass die Objekte nicht mehr verwendet werden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige