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
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen