Clever-Excel-Forum

Normale Version: Datei Excel2010 copieren, verschieben in anderen Ordner
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
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 "
Code:
.FoundFiles


). 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...)
Hallo Charly,

da fehlt ein With mit einem Object.
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.
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
Hm. So geht das nicht, zu viele Kommentarzeichen?
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.
Hallo Charly,

(24.10.2015, 16:14)karomue schrieb: [ -> ]zu viele Kommentarzeichen?

das verstehe ich nicht, in diesem Beispiel von Ron de Bruin wird das genauso so verwendet.
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. Smile
Hallo ihr 2,

schönen So, da habe ich jetzt was zu tun...

Melde mich wieder, wenn getestet. Danke.
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?
Seiten: 1 2 3