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

Datei löschen wenn...

Forumthread: Datei löschen wenn...

Datei löschen wenn...
19.04.2007 13:30:54
Andre´
Hallo alle zusammen,
wenn eine Excel Datei geöffnet wird, dann soll abgefragt werden ob der Ordnername in dem sich die Datei befindet z.B. Test heißt. Wenn nicht, dann soll diese ExcelDatei gelöscht werden.
Hat jemand dafür ein Makro.
Danke im voraus!
MFG Andre

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Datei löschen wenn...
19.04.2007 13:45:00
Jens
Hallo Andre
Das wird nicht ohne weiteres funzen, da sich die Datei nicht selber löschen kann.
Oder gibt es schon suizide XLS-Files? ;-)
MfG
Jens

AW: Datei löschen wenn...
19.04.2007 13:45:05
Andi
Hi,
wenn ich das richtig verstehe, dann möchtest Du, dass sich die Datei per Makro selber löscht?
Das geht nicht. Du kannst überhaupt keine geöffneten Dateien löschen, weder per VBA noch manuell.
Eine beliebige geschlossene Datei kannst Du mit
KILL "C:\Eigene Dateien\Test\Mappe1.xls"
löschen.
Schönen Gruß,
Andi

Anzeige
AW: Datei löschen wenn...
19.04.2007 14:40:00
Andre´
Danke für die Meldung.
Die Excel-Arbeitsmappe soll nur an einer bestimmten Stelle im Netz funktionieren. Ich wollte damit erreichen, dass die Excel Datei von einem bestimmten Laufwerk kopiert wird und woanders gespeichert und bearbeitet wird. Wenn dann diese Kopie geöffnet wird, dann sollte die Abfrage über den Ordnername kommen, da das meist ein anderse Verzeichnis ist sollte sich die Datei schließen und aus dem Verzeichnis gelöscht werden so ähnlich wie bei der User Abfrage beim öffnen der Arbeitsmappe, wo dann aber nur die Arbeitsmappe geschlossen und nicht gelöscht wird.
MFG Andre

Anzeige
AW: Datei löschen wenn...
19.04.2007 14:48:26
Andi
Hi,
Du kannst natürlich im WorkbookOpen-Ereignis den Pfad abfragen, und wenn der nicht passt, die Mappe postwendend zwangsweise schliessen. Dadurch ist gewährleistet, dass außerhalb des Original-Ordners niemand was mit der Mappe anfangen kann. Nur löschen kann sich eine Datei nicht selbst.
Die erwähnte Abfrage funktioniert natürlich auch nur dann, wenn Makros aktiv sind. Wie man dies sicherstellen kann, ist über die Recherche zu finden.
Schönen Gruß,
Andi

Anzeige
AW: Datei löschen wenn...
Orakel
Hallo,
doch, das geht:

Sub Datloesch()
Application.DisplayAlerts = False
ActiveWorkbook.ChangeFileAccess xlReadOnly
Kill ActiveWorkbook.FullName
Application.DisplayAlerts = True
ThisWorkbook.Close False
End Sub


Grüße Orakel

Anzeige
AW: komplett:
Orakel

Sub Datloesch()
If ActiveWorkbook.Path = "D:\Test" Then
GoTo Ende
Else
Application.DisplayAlerts = False
ActiveWorkbook.ChangeFileAccess xlReadOnly
Kill ActiveWorkbook.FullName
Application.DisplayAlerts = True
ThisWorkbook.Close False
End If
Ende:
End Sub


Anzeige
AW: komplett: DANKE :-)
19.04.2007 20:28:58
Andre´
Hallo,
vielen DANK!!! genau das was ich gesucht habe.
MFG Andre

AW: gern geschehn o.T.
Orakel
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Datei löschen, wenn der Ordnername nicht stimmt


Schritt-für-Schritt-Anleitung

Um eine Excel-Datei zu löschen, wenn der Ordnername nicht dem gewünschten Namen entspricht, kannst Du folgendes VBA-Makro verwenden. Dieses Makro überprüft den Pfad der geöffneten Datei und schließt sie, wenn der Ordnername nicht "Test" ist. Danach wird die Datei gelöscht.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code in das Modul ein:

    Sub Datloesch()
       If ActiveWorkbook.Path = "D:\Test" Then
           GoTo Ende
       Else
           Application.DisplayAlerts = False
           ActiveWorkbook.ChangeFileAccess xlReadOnly
           Kill ActiveWorkbook.FullName
           Application.DisplayAlerts = True
           ThisWorkbook.Close False
       End If
    Ende:
    End Sub
  4. Schließe den VBA-Editor und speichere die Datei als Makro-aktivierte Arbeitsmappe (*.xlsm).

  5. Aktiviere die Makros, wenn Du die Datei öffnest.


Häufige Fehler und Lösungen

  • Fehler: Excel-Datei kann nicht gelöscht werden.

    • Stelle sicher, dass die Datei nicht von einer anderen Anwendung verwendet wird. Wenn die Datei geöffnet ist, kann sie nicht gelöscht werden, da Excel geöffnete Dateien nicht löschen kann.
  • Fehler: Makros sind deaktiviert.

    • Gehe zu den Excel-Optionen und aktiviere die Makros unter „Trust Center“.
  • Fehler: Pfad stimmt nicht.

    • Überprüfe den Pfad im Code und stelle sicher, dass er korrekt ist. Es muss genau der Ordnername angegeben werden, in dem die Datei liegen soll.

Alternative Methoden

Wenn Du Dateien in Access verwalten möchtest, kannst Du auch VBA für Access nutzen, um eine Datei zu löschen, falls sie nicht in einem bestimmten Verzeichnis ist:

Sub AccessDatloesch()
    If CurrentProject.Path <> "C:\DeinPfad" Then
        Kill "C:\DeinPfad\DeineDatei.accdb"
    End If
End Sub

Diese Methode funktioniert ähnlich wie die Excel-Methode. Achte darauf, dass die Datei nicht geöffnet ist.


Praktische Beispiele

Angenommen, Du hast eine Datei in "D:\Test" und möchtest sicherstellen, dass sie nur aus diesem Ordner geöffnet und bearbeitet wird. Wenn jemand versucht, die Datei von einem anderen Ort zu öffnen, wird sie gelöscht. Dies ist besonders nützlich in Unternehmensumgebungen, um unautorisierte Zugriffe zu vermeiden.


Tipps für Profis

  • Verwende Application.DisplayAlerts = False, um Warnmeldungen zu unterdrücken, wenn Du eine Datei löschst. Dies macht den Prozess reibungsloser.
  • Teste Dein Makro gründlich in einer Testumgebung, bevor Du es in einer produktiven Umgebung einsetzt, um unbeabsichtigte Datenverluste zu vermeiden.
  • Achte darauf, dass die Datei, die Du löschen möchtest, nicht von anderen Benutzern verwendet wird, um Konflikte zu vermeiden.

FAQ: Häufige Fragen

1. Kann ich eine geöffnete Datei mit VBA löschen? Das Löschen einer geöffneten Datei ist nicht möglich. Du musst die Datei zuerst schließen, um sie mit Kill zu löschen.

2. Was passiert, wenn die Datei nicht gefunden wird? Wenn die Datei nicht vorhanden ist, gibt es einen Laufzeitfehler. Du kannst Fehlerbehandlung in Deinen Code einfügen, um dies zu vermeiden.

3. Wie kann ich sicherstellen, dass Makros aktiviert sind? Du kannst unter „Datei“ > „Optionen“ > „Trust Center“ > „Einstellungen für das Trust Center“ die Makros aktivieren. Stelle sicher, dass die Einstellung „Alle Makros aktivieren“ ausgewählt ist.

4. Funktioniert dieses Makro auch in Access? Ja, ähnliche Logik kann auch in Access verwendet werden, um eine Datei zu löschen, wenn sie nicht im gewünschten Verzeichnis liegt.

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