wie kann ich abhängig vom Wert einer Zelle eine Datei in ein anderes Verzeichnis verschieben ? Dabei soll der Dateiname noch aus den Inhalten mehrerer Zellen ermittelt werden.
Dank im voraus.
Skyglider
If cells(b,4) > 3 AND cells(b,4) < 6
Dateiname = cells(c,4) & "-_" & cells(d,4)
FileSystemObject.CopyFile c:\test\in Arbeit & Dateiname, c:\test\gültig & Dateiname
Kill Dateiname
End If
Wird wirklich die Datei mit dem Befehl COPyfile ins neue Verzeichnis verschoben oder doch nur kopiert ?
Vielleicht kannst du nochmals helfen ?
Gruß
skyglider
Gruss Roland
die Zelldefinition habe ich korrigiert in: cells(4,2)( Zeile = 4, Spalte = B)
Bekomme aber immer noch die Fehlermeldung "Fehler beim Kompilieren , Außerhalb der Prozedur ungültig"
Gruß
skyglider
Sub a()
For I = 1 To 100
If Cells(I, 3) > 3 And Cells(I, 3) < 6 Then
Dateiname = Cells(I, 1) & "-_" & Cells(I, 2) & ".xls"
FileSystemObject.CopyFile "C:\in Arbeit\" & Dateiname, "C:\gültig\" & Dateiname
Kill Dateiname
End If
Next I
End Sub
Nun bekomme ich die Fehlermeldung bei FileSystemObject " Objekt erforderlich"
Habe aber alles kontrolliert. Pfad stimmt.
Gruß
skyglider
' Declare für Lösung 2
Declare Function CopyFile& Lib "kernel32" Alias "CopyFileA" _
(ByVal Kopierdatei As String, ByVal Neuedatei As String, _
ByVal DateischonDa As Long)
Sub a() ' Lösung 1
'
' Bei dieser Lösung muss erst ein FileSystemObject erzeugt werden,
' das hatte ich übersehen
'
Dim fs As Object
Set fs = CreateObject("Scripting.FileSystemObject")
For I = 1 To 100
If Cells(I, 3) > 3 And Cells(I, 3) < 6 Then
Dateiname = Cells(I, 1) & "-_" & Cells(I, 2) & ".xls"
fs.CopyFile "C:\in Arbeit\" & Dateiname, "C:\gültig\" & Dateiname
Kill "C:\in Arbeit\" & Dateiname
End If
Next I
End Sub
Sub b()
'
' Lösung 2 , abgekupfert von Reinke,Held, ...
' Microsoft Excel 2000 Programmierung, S.644
' (ein sehr empfehlenswertes Buch!)
'
' Diese Lösung benötigt das Declare Statement oben, ist aber dann m.E. eleganter
'
Dim rtn As Integer
For I = 1 To 100
If Cells(I, 3) > 3 And Cells(I, 3) < 6 Then
Dateiname = Cells(I, 1) & "-_" & Cells(I, 2) & ".xls"
rtn = CopyFile("C:\in Arbeit\" & Dateiname, "C:\gültig\" & Dateiname, False)
Kill "C:\in Arbeit\" & Dateiname
End If
Next I
End Sub
So, jetzt hoffe ich, dass es passt!
Gruss Roland