Registriert seit: 19.07.2015
Version(en): 365/2016
Hallo beisammen. Bin mal wieder hier. Das Problem "leere Zelle" konnte ich leider nicht lösen, ist nicht weiter tragisch denn ich habe inzwischen einen anderen Weg erarbeitet. Aber, auch da gibt es Probleme, die Datei wird momentan in einem "Ersatzverzeichnis" gespeichert, da es dorthin wo es sein sollte nicht klappt (gebe gelegentlich mal an warum m.E. das nicht geht). Ersatzweise bin ich dabei zu ve Code: Sub CopyAusgaben() Dim Quellpfad As String Dim Zielpfad As String Dim Suchmuster As String Dim FilesC As String Dim NewPath As String Quellpfad = "C:\Benutzer\karomue\HausDateien\" Zielpfad = "C:\Benutzer\karomue\EigeneDokumente\Aktenkoffer\" Suchmuster = "Ausgaben2015.xlsm" '"*.txt" FilesC = Dir(Quellpfad & Suchmuster) 'A = CheckDir(NewPath) For i = 1 To .FoundFiles.Count NewPath = Left(.FoundFiles(i), Len(.FoundFiles(i)) - Len(Dir(.FoundFiles(i)))) NewPath = ZielPath & Right(NewPath, Len(NewPath) - Len(QuellPath)) If CheckDir(NewPath) = False Then MsgBox "Kopieren fehlgeschlagen!" Exit Sub Else FileCopy .FoundFiles(i), ZielPath & Right(.FoundFiles(i), Len(.FoundFiles(i)) - Len(QuellPath)) End If Next Do While Files <> "" FileCopy Quellpfad & Files, Zielpfad & Files Files = Dir() Loop End Sub
rsuchen, die erstellte Datei per VBA zu verschieben. Aber alles was ich dazu bilang gefunden habe, geht nicht. Z.B. das, was hier dazwischengerutscht ist. Fehlermeldung: Fehler beim Kopilieren (Zeile " ). Kann ich da was tun? Und Sorry, den Umgang mit dem Forum scheine ich auch verlernt zu haben. Benutze E2010. (und nun mal schauen ob meine mal erstellte Signatur noch geht...)
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Charly,
da fehlt ein With mit einem Object.
Gruß Stefan Win 10 / Office 2016
Registriert seit: 19.07.2015
Version(en): 365/2016
Hallo Steffl,
hm, schön, was könnte da hinpassen? Das war irgendein "Kollege" aus dem Internet, ist nicht auf meinem Mist gewachsen. Weiß aber nicht mehr wo das stand. Hatte zunächst die Vermutung, dass es evtl. ein Versionsunterschied sein könnte. Danke übrigens. Wir sind aber hier wohl schon in einem Forum wo so etwas garnicht hingehört - vermute ich mal. Da habe ich falsch angefangen. Kann man das ändern? Nicht, dass ich noch zusätzlichen Ärger bekomme.
Registriert seit: 11.04.2014
Version(en): Office 2007
24.10.2015, 16:22
(Dieser Beitrag wurde zuletzt bearbeitet: 24.10.2015, 16:43 von Steffl.
Bearbeitungsgrund: Code nachträglich eingefügt
)
Hallo Charly, ich kenne FoundFiles vom FileSearch-Object her. Das Problem hier ist aber ab Excel 2007 geht FileSearch nicht mehr. Versuche mal nach "FileSearch ersetzen" zu googeln. Nachtrag: Ich habe selber mal gegoogelt und den Code von dir ein wenig geändert. Könntest Du mal testen? Code: Sub CopyAusgaben() 'entnommen aus 'http://www.ms-office-forum.net/forum/showthread.php?t=226263 Dim objFSO As Object Dim Quellpfad As String Dim Zielpfad As String Dim Suchmuster As String ' Dim FilesC As String ' Dim NewPath As String Quellpfad = "C:\Benutzer\karomue\HausDateien\" Zielpfad = "C:\Benutzer\karomue\EigeneDokumente\Aktenkoffer\" Suchmuster = "Ausgaben2015.xlsm" '"*.txt" 'entnommen aus 'http://www.ms-office-forum.net/forum/showthread.php?t=226263 Set objFSO = CreateObject("Scripting.FileSystemObject") ' fso.MoveFile "C:\Test\DeineDatei.xls", "C:\Test\Ablage\" objFSO.MoveFile Quellpfad & Suchmuster, Zielpfad ' ' FilesC = Dir(Quellpfad & Suchmuster) ' 'A = CheckDir(NewPath) ' ' For i = 1 To .FoundFiles.Count ' NewPath = Left(.FoundFiles(i), Len(.FoundFiles(i)) - Len(Dir(.FoundFiles(i)))) ' NewPath = ZielPath & Right(NewPath, Len(NewPath) - Len(QuellPath)) ' If CheckDir(NewPath) = False Then ' MsgBox "Kopieren fehlgeschlagen!" ' Exit Sub ' Else ' FileCopy .FoundFiles(i), ZielPath & Right(.FoundFiles(i), Len(.FoundFiles(i)) - Len(QuellPath)) ' End If ' Next ' ' Do While Files <> "" ' FileCopy Quellpfad & Files, Zielpfad & Files ' Files = Dir() ' Loop End Sub
Gruß Stefan Win 10 / Office 2016
Registriert seit: 19.07.2015
Version(en): 365/2016
Hm. So geht das nicht, zu viele Kommentarzeichen?
Registriert seit: 19.07.2015
Version(en): 365/2016
Hallo Steffl, Code: Sub Dir1()
Dim Datei1, Pfad1, Name1 ' Unter Microsoft Windows: ' Liefert "WIN.INI" (unter Microsoft Windows), falls die Datei existiert. Datei1 = Dir("C:\WINDOWS\WIN.INI")
' Liefert einen Dateinamen mit der angegebenen Erweiterung. Existieren ' mehrere Dateien mit der Erweiterung .INI, so wird der erste gefundene ' Dateiname zurückgegeben. Datei1 = Dir("C:\WINDOWS\*.INI")
' Dir erneut ohne Argumente aufrufen, um die nächste Datei mit der ' Erweiterung .INI im selben Verzeichnis zurückzugeben. Datei1 = Dir
' Die erste versteckte Datei mit der Erweiterung *.TXT zurückgeben. Datei1 = Dir("*.TXT", vbHidden)
' Namen in C:\ anzeigen, die Verzeichnisse darstellen. 'Pfad1 = "C:\Benutzer\karomue\HausDateien" ' Pfad setzen. 'Pfad1 = "c:\" ' Pfad setzen. Pfad1 = "C:\Benutzer\" ' Pfad setzen.
Name1 = Dir(Pfad1, vbDirectory) ' Ersten Eintrag abrufen. 'Name1 = Dir(Pfad1) ' Ersten Eintrag abrufen. Do While Name1 <> "" ' Schleife beginnen. ' Aktuelles und übergeordnetes Verzeichnis ignorieren. If Name1 <> "." And Name1 <> ".." Then ' Mit bit-weisem Vergleich sicherstellen, daß Name1 ein ' Verzeichnis ist. If (GetAttr(Pfad1 & Name1) And vbDirectory) = vbDirectory Then Debug.Print Name1 ' Eintrag nur anzeigen, wenn es sich End If ' um ein Verzeichnis handelt. End If Name1 = Dir ' Nächsten Eintrag abrufen. Loop
End Sub
Das ist ein Beispiel aus der Hilfe. Es läuft der 1. Teil mit der Suche im Root (Windows), sobald man aber ein Verzeichnis tiefer eingibt kommt als Datei1 nur noch "". Verstehe ich jetzt gerade nicht.
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Charly, (24.10.2015, 17:14)karomue schrieb: zu viele Kommentarzeichen? das verstehe ich nicht, in diesem Beispiel von Ron de Bruin wird das genauso so verwendet.
Gruß Stefan Win 10 / Office 2016
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Charly, Steffl hat ja auf Ron de Bruin hingewiesen. Dort gibt es zwei Beispiele. Für das Verschieben von Dateien solltest Du das zweite nehmen: Zitat:Code: Sub Move_Rename_One_File() 'You can change the path and file name Name "C:\Users\Ron\SourceFolder\Test.xls" As "C:\Users\Ron\DestFolder\TestNew.xls" End Sub
Ansonsten musst Du Fehler schon genauer beschreiben: Zitat:Hm. So geht das nicht, zu viele Kommentarzeichen? So geht das nicht. Zu wenige Informationen.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 19.07.2015
Version(en): 365/2016
Hallo ihr 2,
schönen So, da habe ich jetzt was zu tun...
Melde mich wieder, wenn getestet. Danke.
Registriert seit: 19.07.2015
Version(en): 365/2016
25.10.2015, 12:36
Jetzt wirds aber schon arg komisch, das ist nicht das 1. Mal: der Folder existiert nicht - Meldung bei mir.
Jetzt müssen wir wohl mal darüber nachdenken, was bei meinem Excel nicht stimmt, muss ich irgendwas freischalten?
Ich habe auf einem 2. NB Office365 - da wollte ich ursprünglich mal hin umziehen - da werde ich das nochmal probieren. Dazu muss ich aber die beiden Ordnerstrukturen erstellen, kopieren, und das dauert wohl ein wenig...
Aber vielleicht weiß ja jemand von Euch, was bei meinem Excel2007 nicht "stimmt", kann ja nicht sein, dass solche Construkte bei vielen laufen nur beim mir nicht. Muss also den Fehler wohl bei mir suchen. Nur wo?
|