Excel VBA: Dateien löschen
#1
Hallo zusammen,

ich möchte Euch fragen ob es eine Möglichkeit gibt aus einer Tabelle heraus, in der Dateien aus Verzeichnissen aufgelistet sind, diese Dateien durch Auswählen (auch Mehrfachauswahl) der entsprechenden Zellen, dann zu löschen. Die Dateinamen liegen mehrfach/identisch vor ....aber mit unterschiedlichen Formaten (z.B. txt, jpg...usw)
Dateien mit bestimmten "ext" benötige ich nicht und will diese komfortabel löschen.

Die Tabelle ist wie folgt aufgebaut:
Datei ext Pfad Größe

Meine Idee ist nun die Datei-ext zu markieren und die Datei dann per VBA zu löschen. Es sollte möglich sein mehrere "ext" auszuwählen und die entsprechenden Dateien in einem Aufwasch zu löschen.

Vielleicht hat mir jemand ein Code-Schnippsel für diese Aufgabe.

Vielen Dank!
Mit freundlichen Grüßen / Best regards
                          //
----------o00o---°(_)°---o00o----------------------

Erich
Antwortento top
#2
Hallo,

wenn man aus den Spalten den richtigen Windows- Pfad & Dateinamen zusammensetzt, löscht der vba-Befehl "kill" die Datei.

mfg
Antwortento top
#3
Hallöchen,

mit dem Code könntest Du mehrere Dateien in einem Rutsch löschen. Ich habe allerdings nicht die selektierten Zellen genommen, sondern filtere die Liste nach den Extentions und lösche dann die sichtbaren Zellen - beachte - ohne Nachfrage! Daher vorher eine Sicherheitskopie anlegen!
Code:
Sub DateienLoeschen()
'----------------------------------
'Achtung! Loeschen ohne Nachfrage!!
'----------------------------------
'Variablendeklarationen
'Long
Dim iCnt&
'Startzeile = 2
iCnt = 2
'Schleife, solange etwas in der Zelle steht
Do While Cells(iCnt, 1).Value <> ""
  'Loeschen der Datei, wenn sie vorhanden ist und die Zelle mit dem Eintrag sichtbar ist
  If Dir(Cells(iCnt, 1).Value) <> "" And Rows(iCnt).EntireRow.Hidden = False Then Kill Cells(iCnt, 1).Value
  'Schleifenzaehler hochsetzen
  iCnt = iCnt + 1
'Ende Schleife, solange etwas in der Zelle steht
Loop
End Sub

Meine nach pdf gefilterte Liste sieht z.B. so aus. G:\Alpha.pdf wurde bei mir nicht gelöscht. Das ist ein "provozierter" Fehler, die richtige Angabe wäre G:\Alfa.pdf.
Arbeitsblatt mit dem Namen 'Tabelle1'
 AB
1DateiExt
2G:\Alpha.pdfpdf
4G:\Beta.pdfpdf
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
[-] Folgende(r) 1 Benutzer sagt Danke an schauan für diesen Beitrag:
  • sharky51
Antwortento top
#4
(25.05.2016, 16:43)schauan schrieb: mit dem Code könntest Du mehrere Dateien in einem Rutsch löschen.

Super, vielen Dank werde es morgen mal testen.
Mit freundlichen Grüßen / Best regards
                          //
----------o00o---°(_)°---o00o----------------------

Erich
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste