Anzeige
Archiv - Navigation
904to908
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
904to908
904to908
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Filesearch VBA geht nicht mehr ...

Filesearch VBA geht nicht mehr ...
10.09.2007 14:46:00
Thomas
Hallo!
Ich hatte vor zwei Jahren mal einen VBA Code von euch bekommen, mit dem man Dateien in einem Verzeichnis löschen kann, die nicht in der Liste enthalten sind ...
LEIDER bin ich jetzt auf Excel 2007 umgestiegen und das teil geht nicht mehr ...
Hier der Code:

in spalte C stehen jetzt also die dateinamen mit vollständiger Pfadangabe?
Also sowas ähnliches wie:
C:\Programme\AppServ\www\oxid3\out\oxbaseshop\html\0\dyn_images\0\bild1.jpg ?
wenn das so ist müsste das hier laufen.
Sub test()
const pfad="C:\Programme\AppServ\www\oxid3\out\oxbaseshop\html\0\dyn_images\0"
Dim gefunden
With Application.FileSearch
.NewSearch
.LookIn = pfad
.SearchSubFolders = True
.Filename = "*"
.Execute
For Each gefunden In .FoundFiles
If WorksheetFunction.CountIf(Range("C:C"), gefunden) = 0 Then Kill (gefunden)
Next
End With
End Sub
wenn in spalte C nur die namen der dateien mit endung liegen sollte das hier gehen:
Sub test()
const pfad="C:\Programme\AppServ\www\oxid3\out\oxbaseshop\html\0\dyn_images\0"
Dim gefunden
With Application.FileSearch
.NewSearch
.LookIn = pfad
.SearchSubFolders = True
.Filename = "*"
.Execute
For Each gefunden In .FoundFiles
If WorksheetFunction.CountIf(Range("C:C"), dir(gefunden)) = 0 Then Kill (gefunden)
Next
End With
End Sub


. . . was muss man ändern damit das wieder geht?
(P.S.: von VBA habe ich keine Ahnung ...)

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

Betreff
Datum
Anwender
Anzeige
AW: Filesearch VBA geht nicht mehr ...
10.09.2007 15:20:00
Hans
Hallo Thomas,
die FileSearch-Methode wird in XL2007 nicht mehr unterstützt. Du musst auf die gute alte Dir-Methode zurückgreifen. Hier findest Du ein Beispiel, das sich leicht anpassen läßt:
https://www.herber.de/mailing/170002h.htm
gruss hans

AW: Filesearch VBA geht nicht mehr ...
10.09.2007 15:48:00
Thomas
Hallo!
Danke für die Antwort, aber wie gesagt ich habe 00000 - Ahrnung von VBA und weiss somit auch nicht was ich da wo rinkopieren/ändern soll ...
Schönen Gruß
Thomas

AW: Filesearch VBA geht nicht mehr ...
10.09.2007 16:10:46
Hans
Hallo Thomas,
versuche, den Code zu verstehen. VBA macht das Excel-Leben leichter.

Sub TestA()
Const csPath = "C:\Programme\AppServ\www\oxid3\out\oxbaseshop\html\0\dyn_images\0"
Dim arrFiles As Variant
Dim iFile As Integer
arrFiles = FileArray(csPath, "*.xls")
If arrFiles(1) = False Then Exit Sub
For iFile = 1 To UBound(arrFiles)
If WorksheetFunction.CountIf(Range("C:C"), csPath & "\" & arrFiles(iFile)) = 0 Then
Kill csPath & "\" & arrFiles(iFile)
End If
Next
End Sub



Sub TestB()
Const csPath = "C:\Programme\AppServ\www\oxid3\out\oxbaseshop\html\0\dyn_images\0"
Dim arrFiles As Variant
Dim iFile As Integer
arrFiles = FileArray(csPath, "*.xls")
If arrFiles(1) = False Then Exit Sub
For iFile = 1 To UBound(arrFiles)
If WorksheetFunction.CountIf(Range("C:C"), arrFiles(iFile)) = 0 Then
Kill csPath & "\" & arrFiles(iFile)
End If
Next
End Sub



Function FileArray(strPath As String, strPattern As String)
Dim arrDateien()
Dim intCounter As Integer
Dim strDatei As String
If Right(strPath, 1)  "\" Then strPath = strPath & "\"
strDatei = Dir(strPath & strPattern)
Do While strDatei  ""
intCounter = intCounter + 1
ReDim Preserve arrDateien(1 To intCounter)
arrDateien(intCounter) = strDatei
strDatei = Dir()
Loop
If intCounter = 0 Then
ReDim arrDateien(1)
arrDateien(1) = False
End If
FileArray = arrDateien
End Function


gruss hans

Anzeige
AW: Filesearch VBA geht nicht mehr ...
10.09.2007 16:30:00
Thomas
Hallo!
Also das killt alles ... leider ...
In Spalte C steht der Dateiname Beispiel: 4711 (ohne Dateiendung), dann habe ich den Code "angepasst" und eingefügt, aber der killt alles ....

Sub TestA()
Const csPath = "C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\Firmendaten\ _
Internet\Schuhgeschaeft\HW07\Bilder\Rohde\Netz 1"
Dim arrFiles As Variant
Dim iFile As Integer
arrFiles = FileArray(csPath, "*.jpg")
If arrFiles(1) = False Then Exit Sub
For iFile = 1 To UBound(arrFiles)
If WorksheetFunction.CountIf(Range("C:C"), csPath & "\" & arrFiles(iFile)) = 0 Then
Kill csPath & "\" & arrFiles(iFile)
End If
Next
End Sub
Sub TestB()
Const csPath = "C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\Firmendaten\ _
Internet\Schuhgeschaeft\HW07\Bilder\Rohde\Netz 1"
Dim arrFiles As Variant
Dim iFile As Integer
arrFiles = FileArray(csPath, "*.jpg")
If arrFiles(1) = False Then Exit Sub
For iFile = 1 To UBound(arrFiles)
If WorksheetFunction.CountIf(Range("C:C"), arrFiles(iFile)) = 0 Then
Kill csPath & "\" & arrFiles(iFile)
End If
Next
End Sub
Function FileArray(strPath As String, strPattern As String)
Dim arrDateien()
Dim intCounter As Integer
Dim strDatei As String
If Right(strPath, 1)  "\" Then strPath = strPath & "\"
strDatei = Dir(strPath & strPattern)
Do While strDatei  ""
intCounter = intCounter + 1
ReDim Preserve arrDateien(1 To intCounter)
arrDateien(intCounter) = strDatei
strDatei = Dir()
Loop
If intCounter = 0 Then
ReDim arrDateien(1)
arrDateien(1) = False
End If
FileArray = arrDateien
End Function


Anzeige
AW: Filesearch VBA geht nicht mehr ...
10.09.2007 17:05:00
Thomas
Sorry, hatte die Frage nicht als offen gezennzeichnet

AW: Filesearch VBA geht nicht mehr ...
10.09.2007 17:45:06
Thomas
Hat keiner eine Idee warum das alles löscht?
stehe ein wenig unter Zeitdruck und leider hab ich keine Ahnung was welcher Teil des VBA macht . . . !?!?!?!?
DANKE!
Thomas

AW: Filesearch VBA geht nicht mehr ...
10.09.2007 16:07:00
Hajo_Zi
Hallo Thomas,
vielleicht kommst Di mit dem Beispiel besser zu Recht. http://hajo-excel.de/chCounter3/getfile.php?id=21

Anzeige

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige