Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1344to1348
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
Inhaltsverzeichnis

Makro um Datei zu löschen

Makro um Datei zu löschen
10.01.2014 20:04:39
TomDD
Hallo zusammen,
ich brauche mal eure Hilfe. Ich lese via Makro alle Dateinamen mit Pfad aus bestimmten Verzeichnissen in eine EXCEL Tabelle ein. Funktioniert super.
Nun möchte ich, wenn der Pfad (in Spalte C) angeklickt wird, diese ausgewählte Datei über ein weiteres Makro aus dem Verzeichnis löschen. Am besten wäre es noch, wenn mehrere Dateien ausgewählt werden könnten und diese dann gelöscht werden.
Hat da jemand eine Idee?
Gruß aus Elbflorenz
Tom

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
benutze die Kill-Anweisung ... owT
10.01.2014 20:44:12
Matthias

AW: benutze die Kill-Anweisung ... owT
10.01.2014 20:55:03
TomDD
Habs jetzt mal so gelöst.
Sub Datei_löschen()
Dim strFile As String
strFile = ActiveCell
If MsgBox(strFile & (" wirklich löschen?"), vbYesNo) = vbNo Then Exit Sub
Kill strFile
End Sub

ich würde den Doppelklicj benutzen ...
10.01.2014 21:21:05
Matthias
Hallo (Anrede zu Beginn klingt doch nett. oder?)
Würde ich eher so machen:
Doppelklick in die Zelle mit dem Pfad + DateiName in Spalte("C")
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
On Error GoTo FileError
Cancel = True
If Target.Column = 3 Then
If MsgBox("Datei: " & Target.Value & " wirklich löschen", vbYesNo) = vbYes Then
Kill (Target.Value)
End If
End If
Exit Sub
FileError:
MsgBox "Diese Datei gibt es nicht"
End Sub
Weiterhin schlage ich vor, solche Dinge zum Testen immer in einem Temp-Ordner mit TestDateien zu probieren.
Gruß Matthias (Gruß am Ende klingt auch nett, oder?)

Anzeige
AW: ich würde den Doppelklicj benutzen ...
10.01.2014 22:18:39
TomDD
Hallo Matthias,
irgendwie bekomme ich deinen Code nicht zum laufen. Wenn ich den in Tabelle1 einfüge und doppelklicke passiert nichts. Wahrscheinlich mein Fehler. Hab meinen Code noch etwas erweitert um evtl. Fehler abzufangen.
Sub KillFile()
Dim strFile As String
On Error GoTo Errorhandler
strFile = ActiveCell
If MsgBox(strFile & (" wirklich löschen?"), vbYesNo) = vbNo Then Exit Sub
Kill strFile                    'Datei aus Verzeichnis löschen
ActiveCell.EntireRow.Delete     'Aktive Zeile aus Tabelle löschen
MsgBox "Datei gelöscht!", vbInformation, "Löschen erfolgreich..."
Errorhandler:
Exit Sub
End Sub

Vielleicht kannste mir mal auf die Sprünge helfen, wie ich deinen Code zum laufen bringe um mal zu testen.
Grüße aus Elbflorenz
Tom

Anzeige
Diesen Code habe ich aber nicht gepostet owT
10.01.2014 22:32:59
Matthias

AW: Diesen Code habe ich aber nicht gepostet owT
10.01.2014 22:38:52
TomDD
Hallo Matthias,
das weiß ich, das ist meine erweiterte Variante.
Deinen Code würde ich gern testen, bekomme ihn aber wie gesagt nicht zum laufen. Wenn ich deinen Code einfüge, passiert nichts. Wenn ich ihn im Einzelschrittverfahren durchgehe, bleibt er schon bei Cancel=true hängen, da Cancel nicht deklariert ist. Was mache ich falsch?
Grüße aus Elbflorenz
Tom

Das kann nicht stimmen, da Cancel im Kopf ...
10.01.2014 22:51:21
Luc:-?
…dieser EreignisProzedur deklariert ist. Tom;
du schreibst, dass du das Pgm auf Blatt1 eingefügt hast. Das wäre richtig, wenn du damit das entsprd Dokument-Klassenmodul meinst. Übrigens, die Prozedur darf nicht umbenannt wdn, sonst fktioniert sie nicht!
Gruß Luc :-?

Anzeige
stimmt Luc...
10.01.2014 22:59:51
TomDD
...mein Fehler. Hatte die Prozedur umbenannt und somit konnte es natürlich nicht mehr funktionieren. Aber auch wenn ich den Code im Original in Tabelle1 einfüge und dann ein Doppelklick mache, passiert wie gesagt nichts. :-(
Was mache ich falsch. Würde den Code von Matthias gern auch noch testen.
Grüße aus DD
Tom

in welche Spalte klickst Du ?
10.01.2014 23:10:36
Matthias
Hallo
Zitat:

Aber auch wenn ich den Code im Original in Tabelle1 einfüge und dann ein Doppelklick mache, passiert wie gesagt nichts
in welche Zelle klickst Du denn?
Sollte doch Spalte("C") sein, sonst passiert eben nix.
Gruß Matthias

Anzeige
ja klar...
10.01.2014 23:18:52
TomDD
klicke ich in Spalte C, Luc.
Egal jetzt. Wird wohl heute nichts mehr. Ich mach die Kiste jetzt aus. Danke trotzdem euch beiden.
Gute Nacht sagt Tom aus DD

AW: ja klar...
11.01.2014 12:11:12
Matze
Hallo Tom.
warum nutzt du nicht die Vorgabe von Matthias L. ?
Schreib es so in das Klassenmodul der Tabelle
Option Explicit
Dim strFile As String
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
On Error GoTo FileError 'Fehlerabfrage
Cancel = True
strFile = ActiveCell
If Target.Column = 3 Then ' Wenn Zielspalte
If MsgBox("Datei: " & Target.Value & " wirklich löschen", vbYesNo) = vbYes Then
Kill (Target.Value) 'mache das
End If 'beende mach das
End If 'beende Spaltenziel
Exit Sub 'gehe zum Ausgang
FileError: 'Sprungmarke wenn Fehler aufgetreten ist
MsgBox "Diese Datei gibt es nicht" ' Meldung wenn Fehler"
End Sub
Gruß Matze

Anzeige
Danke an alle...
11.01.2014 15:39:46
TomDD
für die Hilfe. Jetzt läuft auch das Makro von Matthias. Ich war wohl schon etwas müde gestern Abend.
Schönes Wochenende wünscht
Tom

Danke für Deine Rückmeldung :-) kwT
11.01.2014 16:48:45
Matthias

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige