Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datei verschieben

Forumthread: Datei verschieben

Datei verschieben
22.09.2002 17:36:17
skyglider
Hallo,
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
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Datei verschieben
23.09.2002 09:14:50
Roland Köstring
Hallo Skyglider,

Roland

Re: Datei verschieben
23.09.2002 17:50:07
skyglider
Hi Roland,
bin leider kein begnadeter Programmierer, bekomme leider immer die Fehlermeldung Syntaxfehler(erwartet THEN oder GOTO) bzw. Kompilierungsfehler. So sieht jetzt mein Makro aus:

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

Anzeige
Re: Datei verschieben
24.09.2002 10:35:32
Roland Köstring
Pardon, Skyglider:
es muss natürlich heissen:

In Deinem Makro musst Du bei den Dateibezeichnungen noch Hochkommas
und zwischen dem Pfad und der Datei ein "\" einfügen, also
FileSystemObject.CopyFile "c:\test\in Arbeit\" & Dateiname, "c:\test\gültig\" & Dateiname
Frage noch: bei "cells(b,4)" steht in b die Zeilennummer, ja?

Gruss Roland





Anzeige
Re: Datei verschieben
24.09.2002 10:45:35
Roland Köstring
PS:
COPYFILE kopiert, deshalb anschliessend noch KILL (löscht).
Habe keine Befehl für "Rename" gefunden.
Roland
Re: Datei verschieben
24.09.2002 11:59:42
skyglider
Hi 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

Anzeige
Re: Datei verschieben
24.09.2002 14:16:02
skyglider
Hi Roland,
bin jetzt doch etwas weiter gekommen. So sieht es bei mir jetzt aus.

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

Anzeige
Re: Datei verschieben
24.09.2002 19:53:40
Roland Köstring
Hallo Skyglider,
ich entschuldige mich für massiven Pfusch am Bau! Ich habe
die Sache einfach nicht ordentlich getestet. Jetzt aber gleich
zwei Versionen, die beide funktionieren:
(Bitte in ein Modul einstellen, wegen des Declare)

' 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



Anzeige
Re: Datei verschieben
25.09.2002 11:55:18
skyglider
Hi Roland
suuuuper jetzt klappt es
Danke Gruß skyglider
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige