Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1052to1056
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Scripting.FileSystemObject-Probl. beim Dateikopier

Scripting.FileSystemObject-Probl. beim Dateikopier
24.02.2009 16:16:28
Tobias
Hello allerseits,
Untenstehende Funktion liesst Ordnernamen in Spalte A aus und schreibt die Unterordner kommagetrennt in Spalte B. Das klappt auch gut, nur:
Sobald ich die Exceldatei in ein anderes Verzeichnis kopiere, klappts nicht nicht mehr.
Erst wieder, wenn ich auf: Speichern unter ... Gleicher Dateiname ... Ersetzen gehe und das makro nochmal starte, klappts.
Ich vermute das hat was mit dem Scripting.FileSystemObject zu tun, das beim kopieren der Datei offenbar nicht aktualisiert wird ? Oder ein Excel-Bug?
Grüsse,
Tobias
-------
Option Explicit

Sub find_folder_exp()
ActiveSheet.Unprotect Password:="yyy"
Dim Fso, f, Sf, fldr, folderlist
Dim i
Set Fso = CreateObject("Scripting.FileSystemObject")
For i = 9 To 1000  'Assuming less than 1000 lines!
If (Cells(i, 1)  "") Then
'Cells(I, 2) = ""                         'Clears existing data
If (Fso.folderexists(Cells(i, 1))) Then  'Avoids errors if folder does not exist
folderlist = ""                      'Clears list from previous folder
Set f = Fso.GetFolder(Cells(i, 1))   'Gets folder data from A
Set Sf = f.SubFolders                'Gets list of subfolders
For Each fldr In Sf
If (folderlist = "") Then        'First folder doesn't need a (,)
folderlist = fldr.Name       '
Else
folderlist = folderlist & ", " & fldr.Name
End If
Next fldr
If (Cells(i, 2)  folderlist) Then   ' check if subfolderlist is up-to-date
Cells(i, 2) = ""                     'clears old list before adding list
Cells(i, 2) = folderlist             'Add list to cell
End If
End If
End If
Next i
ActiveSheet.Protect Password:="yyy"
ActiveSheet.EnableAutoFilter = True
End Sub


13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Was steht in A9:B9 ?
24.02.2009 16:28:26
NoNet
Hallo Tobias,
was (welche Werte) steht denn zu Beginn des Makros in den Zellen A9 und B9 ?
Gruß, NoNet
AW: Scripting.FileSystemObject-Probl. beim Dateikopier
24.02.2009 16:59:02
Ramses
Hallo
WAS funktioniert denn nicht ?
Das Makro aktualisiert doch nicht selbstständig die Liste. Es muss auf jeden Fall manuell gestartet werden.
... und die Pfade in A9 bis A1000 müssen natürlich vorhanden sein, ... und richtig geschrieben sein.
Gruss Rainer
AW: Scripting.FileSystemObject-Probl. beim Dateikopier
24.02.2009 17:50:04
Tobias
Nollet: In A9 ud B9 stehen z.b. noch die alten werte.
(Ich hab aber noch ein 2tes Makro-Button, mit dem ich die StammOrdnernamen einlesen kann in A:A1000)
Ramses: Ja, das Makro wird manuell über button gestartet.
Wenn ich es in der Kopierten Datei starte, passiert gar nichts (auch keine fehlermeldung)
Aber ist der entscheidende Punkt nicht der:
1.) Excel_Datei liegt an Ort A:
Makro funktioniert.
2.) kopiere Excel_Datei auf Ort B und öffne sie:
Makro funktioniert nicht. Egal was in Zellen A9 und B9 steht.
Es gibt keine Fehlermeldung, Makro läuft durch.
3.) Ich gehe auf
* Speichern unter
* Dateiname: Derselbe
* Ersetzen: Ja
Öffne Makro:
Funktioniert.
Das ist doch merkwürdig, oder?
PS: Natürlich könnte ich das Problem lösen, wenn ich Speichern-unter ins Makro mit einbaue,
Allerdings möchte ich nicht, das zwingend an dieser Stelle gespeichert wird.
gruss,
tobias
Anzeige
EXCEL 2007 !!!!
24.02.2009 18:00:26
Ramses
Hallo
"...Wenn ich es in der Kopierten Datei starte, passiert gar nichts (auch keine fehlermeldung).."
Ist der neue Speicherort als Vertrauenswürdiger Speicherort für Dateien mit Makros definiert ?
Wenn nicht, unterbindet E2007 JEGLICHE Makroaktionen automatisch
Office Symbol anklicken
Excel Optionen
Vertrauensstellungscenter
Button "Einstellungen für Vertrauenstellungscenter"
Option "Vertrauenswürdige Speicherorte"
Gruss Rainer
AW: EXCEL 2007 !!!!
24.02.2009 18:13:47
Tobias
Nee, das ist es nicht.
(dann würde speichern-unter - selber speicherort - das problem ja auch nicht lösen)
Makros gehen generell schon. Nur dieses nicht. Very strange.
Anzeige
AW: EXCEL 2007 !!!!
24.02.2009 18:19:31
Ramses
Hallo
Hast du es auch als Excel Mappe MIT Makros gespeichert ?
Gruss Rainer
AW: EXCEL 2007 !!!!
24.02.2009 18:24:10
Tobias
jep.
wie gesagt, es sind andere makros in der mappe, die funktionieren von anfang an. (ohne speichern).
Für mich deutet alles auf Bug hin.
Der aber vielleicht umschifft werden kann...
gruss tobias
Stochern im Nebel....
24.02.2009 18:33:02
Ramses
Hallo
Speichere mal eine Datei so dass sie nicht funktioniert und lade sie mal hoch
Gruss Rainer
AW: Stochern im Nebel....
25.02.2009 11:54:24
Tobias
Kleine Korrektur der Fehlerbeschreibung:
Meistens tritt der fehler schon auf, wenn ich die Datei einfach nur schliesse und wieder öffne.
Was aber bleibt: In 95% der Fälle ist das Problem gelöst, wenn ich Manuell auf
Speichern- Speichern unter - selber Name (ersetzen)
gehe.
Hab jetzt auch probiert, beim Öffnen dieses speichern zu automatisieren, klappt aber auch nicht.
Offenbar nur, wenn ich es händisch erledige. (?)
Zur Erklärung:
es geht um das Makro find_folder_exp
im Modul Read_Subfolders
Der Button heißt: "Titel auslesen"

Zusatzinfo:
Die Spalte A kann über das Makro Hypa_Hypa
im Modul Read_Rootfolder
mit den Stamm-Unterordnern ausgelesen werden.
Besten Dank für Hilfe im Voraus
Tobias
Hier nun also die Datei...
https://www.herber.de/bbs/user/59756.zip
(Hab die Ordnerstruktur integriert, da so alles verständlicher ist und das Testen auch funktioniert)
Anzeige
Weiß niemand Rat? o.T.
26.02.2009 15:32:52
Tobias
Weiß niemand Rat?
AW: Weiß niemand Rat? o.T.
27.02.2009 11:43:12
Tino
Hallo,
liegt wohl daran, dass Du nicht den kompletten Pfad angibst.
Ergänze das Makro find_folder_exp um diese Zeilen
Dim strPath As String
strPath = IIf(Right$(ThisWorkbook.path, 1) = "\", ThisWorkbook.path, ThisWorkbook.path & "\")

Verwende diesen Pfad in den Zeilen so

If (Fso.folderexists(strPath & Cells(i, 1))) Then

und
Set f = Fso.GetFolder(strPath & Cells(i, 1))
PS: im Kopf eines Makros sollten die Deklarierungen stehen kein Code.
Option Explicit
Sub find_folder_exp()
Dim Fso, f, Sf, fldr, folderlist
Dim i
Dim strPath As String
ActiveSheet.Unprotect Password:="unipress"


Gruß Tino
Anzeige
AW: Der Pfad wars, genau!!
27.02.2009 14:54:08
Tobias
Das war es, vielen herzlichen Dank !!!
Ich hab noch ein Problem bei dem anderen Auslesevorgang:
Im Makro show_folderlist im Modul Read_Rootfolders
Soll einfach nur alle Unterordner aus dem Mappen-Pfad in die spalte A (ab A9) schreiben.
Klappt auch, habe aber probleme mit den Hyperlinks...
Beim Schreiben:
If Cells(n, 1).Formula "=HYPERLINK(" & _
"""" & f1.Name & "\""," & _
"""" & f1.Name & """)" Then
Cells(n, 1).Formula = "=HYPERLINK(" & _
"""" & f1.Name & "\""," & _
"""" & f1.Name & """)"
Klappt nur, wenn die Zellen als ZAHLENFORMAT formatiert sind. Im Textformat wird das Komma leider nicht in ein semikolon umgewandelt und ich habe dann =HYPERLINK("xyz\","xyz") - wegen komma wird die formel nicht dargestellt.
Wenn ich das semikolon ins makro gebe:
Cells(n, 1).Formula = "=HYPERLINK(" & _
"""" & f1.Name & "\"";" & _
"""" & f1.Name & """)"
klappts leider auch nicht, ich bekomme Laufzeitfehler 1004.
(Manchmal bekomme ich den auch aus nicht nachvollziehbaren Gründen beim ausführen dieses Makros.)
Was läuft da falsch?
Vielen Dank im Voraus,
Tobias
Anzeige
Hat sich erledigt, vielen Dank nochmal! o.T.
27.02.2009 15:10:34
Tobias
thanx!

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige