HERBERS Excel-Forum - das Archiv
FileCopy macht nichts
Sven

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?

stimmt der Pfad Quelle und Ziel?
Tino

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
AW: stimmt der Pfad Quelle und Ziel?
Sven

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.
Dos kompatiblen Pfad, sonst keine Idee...
Tino

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
AW: FileCopy macht nichts
Detlef

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
AW: FileCopy macht nichts
Sven

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