Microsoft Excel

Herbers Excel/VBA-Archiv

FileCopy macht nichts | Herbers Excel-Forum


Betrifft: FileCopy macht nichts von: Sven
Geschrieben am: 04.01.2010 09:49:45

Ich hab da ein kleines Problem:
Ich speichere mittels eines Dialoges den Dateinamen einer ausgewählten Datei in einer Zelle eines Excel-Arbeitsblattes.
In Zelle A2 steht dann zB der Text "C:\Documents and Settings\TE8954\My Documents\My Pictures\20071105\hagar_g.jpg"

An einer späteren Stelle lese ich diesen Wert wieder ein um eine Kopie der Datei in einem anderen Ordner zu erstellen:

    ende = Workbooks("qid_kommentare.xls").Sheets("vorlagen").Cells(Rows.Count, 1).End(xlUp). _
Row
    If ende > 1 Then
        'MkDir "L:\alert-daten\infos zu alerts\0002 fy 09-10\" & qi_id
        MkDir "c:\alertdbneu\infos zu alerts\0002 fy 09-10\" & qi_id
        For i = 2 To ende
            Extent = Right(Workbooks("qid_kommentare.xls").Sheets("vorlagen").Cells(i, 1).Value, _
 3)
            quelldatei = Workbooks("qid_kommentare.xls").Sheets("vorlagen").Cells(i, 1).Value
            zieldatei = "c:\alertdbneu\infos zu alerts\002 fy 09-10\" & qi_id & "\Bild" & i & ". _
" & Extent
            'FILECOPY FUNZT HIER NICHT! WARUM?
            'FileCopy Sheets("vorlagen").Cells(i, 1).Value, "L:\alert-daten\infos zu alerts\002  _
fy 09-10\" & qi_id & "\Bild" & i & "." & Extent
            FileCopy quelldatei, zieldatei
            'my.computer.FileSystem.CopyFile quelldatei, zieldatei
        Next i
    End If

Der Wert der Variablen ist hierbei unerheblich, in jedem Fall aber eine Zahl und vorhanden.
Der Code läuft ohne Fehlermeldung durch aber es wird keine Datei kopiert.
Das vorherige Anlegen des Ordners funktioniert einwandfrei.
Dam man sehen kann, dass ich es auch mit dem FSO Objekt 'CopyFile' probiert habe sei gesagt: Das klappt auch nicht.

Hat jemand eine Idee was da los und falsch ist?

  

Betrifft: stimmt der Pfad Quelle und Ziel? von: Tino
Geschrieben am: 04.01.2010 10:21:34

Hallo,
lass Dir mal beide Pfadangaben im Direktfenster ausgeben und prüfe ob der Pfad korrekt ist.

            Debug.Print quelldatei
            Debug.Print zieldatei
Gruß Tino


  

Betrifft: AW: stimmt der Pfad Quelle und Ziel? von: Sven
Geschrieben am: 04.01.2010 10:46:53

Hallo, das habe ich bereits im Überwachungsfenster probiert. Die Pfade sind komplett in Ordnung.
Der Ordner mit der 'qi_id' wird vorher auch korrekt erzeugt.


  

Betrifft: Dos kompatiblen Pfad, sonst keine Idee... von: Tino
Geschrieben am: 04.01.2010 11:25:51

Hallo,
viel kann ich jetzt auch nicht mehr dazu sagen.
Versuch mal den Pfad in einen Dos kompatiblen Pfad umzuwandeln.

Private Declare Function GetShortPathNameA Lib "kernel32" ( _
    ByVal lpszLongPath As String, _
    ByVal lpszShortPath As String, _
    ByVal cchBuffer As Long) As Long
Public Function ShortPath(sPath As String) As String
Dim n As Long
Dim strFile$

strFile = Right$(sPath, Len(sPath) - InStrRev(sPath, "\"))
sPath = Left$(sPath, Len(sPath) - Len(strFile))

  ShortPath = Space$(256)
  n = GetShortPathNameA(sPath, ShortPath, 255)
  ShortPath = Left$(ShortPath, n) & strFile
End Function
Vor Deinem FileCopy wandelst Du den Pfad um.
  '...
  '...
  quelldatei = ShortPath(quelldatei)
  zieldatei = ShortPath(zieldatei)
  FileCopy quelldatei, zieldatei
  '...
  '...
Sonst fällt mir dazu nichts ein, Schreibrechte wirst Du wahrscheinlich haben, oder?

Gruß Tino


  

Betrifft: AW: FileCopy macht nichts von: Detlef
Geschrieben am: 07.01.2010 11:12:43

Hallo Sven,

das kann so auch nicht funktionieren. Du legst das Vz mit

MkDir "c:\alertdbneu\infos zu alerts\0002 fy 09-10\" & qi_id

an und kopierst dann in der Zieldatei mit einer 0 weniger.

zieldatei = "c:\alertdbneu\infos zu alerts\002 fy 09-10\" & qi_id

Gruß Detlef


  

Betrifft: AW: FileCopy macht nichts von: Sven
Geschrieben am: 07.01.2010 11:16:57

Ups, ja danke *kopfkratz* Nu geht es. ;)