Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema SpinButton
BildScreenshot zu SpinButton SpinButton-Seite mit Beispielarbeitsmappe aufrufen

Mit Move eine Datei verschieben

Betrifft: Mit Move eine Datei verschieben von: Reinhard
Geschrieben am: 18.08.2008 18:31:37

Hallo Wissende,

in einem festgelegten Verzeichnis sollen alle xls-Dateien überprüft werden (alle gleich aufgebaut) ob sie Kriterien entsprechen, wenn nicht sollen sie in ein Unterverzeichnis dieses Verzeichnisses verschoben werden.
So wie es sich mir darstellt, funktioniert die Erstellung des Unterverzeichnisse "Schlecht" gut, auch die Überprüfung der Kriterien scheint gut zu klappen.

Mein Problem ist diese Zeile

.FoundFiles(F).Move Pfad & "\Schlecht\" & Dateiname

die mag der Debugger nicht :-( Fehler 424, Objekt erforderich

.FoundFiles(F) hat zu diesem Zeitpunkt den Inhalt: H:\kwMessdaten\abc..xls
Pfad hat zu diesem Zeitpunkt den Inhalt: H:\kwMessdaten
Dateiname hat zu diesem Zeitpunkt den Inhalt: abc.xls

Irgendwie benutze ich "Move" falsch, hab auch schon einiges ausprobiert, naja ergebnislos. Und ja, die Vba-Hilfe zu Move habe ich mir angeschaut, vielleicht habe ich da an Irgendwas wichtigem vorbeigeschielt *gg*

Hier der Code:

Option Explicit
'
Sub SpreuUndWeizen()
Dim fs, F, Pfad, Dateiname
Pfad = "H:\kwMessDaten"
If Dir(Pfad & "\Schlecht/nul") = "" Then MkDir Pfad & "\Schlecht"
Set fs = Application.FileSearch
With fs
   .LookIn = Pfad
   .SearchSubFolders = False
   .Filename = "*.xls"
   If .Execute() > 0 Then
      For F = 1 To .FoundFiles.Count
         Workbooks.Open .FoundFiles(F)
         Dateiname = ActiveWorkbook.Name
         If Gut(ActiveWorkbook.Worksheets(1)) = False Then
            ActiveWorkbook.Close savechanges:=False
            MsgBox .FoundFiles(F)
            .FoundFiles(F).Move Pfad & "\Schlecht\" & Dateiname
         Else
            ActiveWorkbook.Close savechanges:=False
         End If
      Next F
   End If
End With
End Sub
'
Function Gut(Blatt As Worksheet) As Boolean
Dim Zähler As Byte, Zei As Long
For Zei = 7 To 35 Step 2
   If Blatt.Cells(Zei, 2) >= Blatt.Cells(3, 2) Then
      If Blatt.Cells(Zei, 2) <= Blatt.Cells(4, 2) Then Zähler = Zähler + 1
   End If
Next Zei
If Zähler = 15 Then Gut = True
End Function


Danke ^ Gruß
Reinhard

  

Betrifft: AW: Mit Move eine Datei verschieben von: Tino
Geschrieben am: 18.08.2008 18:43:12

Hallo,
das verschieben gehört zum FileSystemObject

Hier mal ein Beispiel

Dim fso As Object, F1 As Object
quelle = "c:\test\a\a.txt"
ziel = "c:\test\b\"
Set fso = CreateObject("Scripting.FileSystemObject")
Set F1 = fso.GetFile(quelle)
F1.Move (ziel)




Gruß Tino


  

Betrifft: AW: Mit Move eine Datei verschieben von: Reinhard
Geschrieben am: 18.08.2008 18:52:31

Hallo Tino,

danke dir, ich gehe sehr davon aus, das kriege ich eingebaut.

Schade, ich dachte Vba könnte das in einem Einzeiler so wie bei Dos, bei Chdir usw. klappts ja auch, und ich hätte nur einen "bedienungsfehler" beim Move gemacht.

Gruß
Reinhard


  

Betrifft: geht auch einfacher. ;-) von: Tino
Geschrieben am: 18.08.2008 19:13:53

Hallo,
geht natürlich auch einfacher, bin nur auf deinen Code eingegangen.
Dabei kannst du auch die Datei gleich umbenennen wen du möchtest bei Ziel einfach einen anderen Namen vergeben.

Dim quelle As String
Dim Ziel As String
quelle = "J:\Test\Datei.xls"
Ziel = "J:\Test\Test\Datei.xls"
Name quelle As Ziel




Gruß Tino


  

Betrifft: AW: geht auch einfacher. ;-) von: Reinhard
Geschrieben am: 19.08.2008 07:59:09

Moin Tino,

Name so benutzt kannte ich nicht, dankeschön.

Gruß
Reinhard


 

Beiträge aus den Excel-Beispielen zum Thema "Mit Move eine Datei verschieben"