Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Abfrage automatisch mit ja beantworten

Forumthread: Abfrage automatisch mit ja beantworten

Abfrage automatisch mit ja beantworten
10.06.2004 19:50:24
marionW
Hallo,
ich moechte ein Sheet per Macro loeschen. Hierbei kommt eine ja nein Abfrage. Weiss irgendwer wie ich diese automatisch mit nein beantworten kann?
Falls das sheet nicht existiert gibt es eine Fehlermeldung. Kann ich diese automatisch ignorieren lassen?
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abfrage automatisch mit ja beantworten
10.06.2004 20:13:17
Nepumuk
Hallo Marion,
das geht so:


Public Sub loeschen_ohne_Nachfrage()
    Dim myWorksheet As Worksheet
    On Error Resume Next
    Set myWorksheet = Worksheets("Tabellex")
    If Not myWorksheet Is Nothing Then
        Application.DisplayAlerts = False
        myWorksheet.Delete
        Application.DisplayAlerts = True
    End If
    Set myWorksheet = Nothing
End Sub


Gruß
Nepumuk
Anzeige
AW: Abfrage automatisch mit ja beantworten
10.06.2004 20:14:20
Uwe
Hallo Marion,
probier es mal damit:

Sub BlattLoeschen()
Dim wsSheet As Worksheet
Dim strWsName As String
strWsName = "Tabelle4"
Application.DisplayAlerts = False
For Each wsSheet In ActiveWorkbook.Worksheets
If wsSheet.Name = strWsName Then wsSheet.Delete
Next wsSheet
Application.DisplayAlerts = True
End Sub

Gruß Uwe
Anzeige
AW: Abfrage automatisch mit ja beantworten
Ulf
Option Explicit

Sub loeschen_ohne_Nachfrage()
On Error Resume Next
Application.DisplayAlerts = False
Worksheets("Tabelle1").Delete
Application.DisplayAlerts = True
End Sub

Ulf
AW: Abfrage automatisch mit ja beantworten
11.06.2004 21:30:58
MarionW
Vielen Dank, der Code funktioeniert ausgezeichnet. ICh wuerde aber gerne dass jedesmal wenn cih das macro aufrufe der Cahart der erstellt wird vorher geloescht wird. Irgendwie wird jetzt wenn schon ein Chart mit dem Namen bestht ein neuer Chart erstellt.
Anzeige
;
Anzeige

Infobox / Tutorial

Abfrage automatisch mit Ja beantworten in Excel


Schritt-für-Schritt-Anleitung

Um eine Abfrage in Excel automatisch mit "Ja" zu beantworten, kannst Du ein Makro verwenden, das die DisplayAlerts-Eigenschaft auf False setzt. Hier ist ein einfacher VBA-Code, der die Abfrage beim Löschen eines Arbeitsblatts automatisch umgeht:

Public Sub loeschen_ohne_Nachfrage()
    Dim myWorksheet As Worksheet
    On Error Resume Next
    Set myWorksheet = Worksheets("Tabellex")
    If Not myWorksheet Is Nothing Then
        Application.DisplayAlerts = False
        myWorksheet.Delete
        Application.DisplayAlerts = True
    End If
    Set myWorksheet = Nothing
End Sub

Dieser Code prüft, ob das Arbeitsblatt existiert, und löscht es, ohne eine Bestätigungsabfrage anzuzeigen.


Häufige Fehler und Lösungen

  1. Fehlermeldung: Arbeitsblatt nicht gefunden

    • Lösung: Stelle sicher, dass der Name des Arbeitsblatts im Code korrekt geschrieben ist.
  2. Abfrage erscheint trotzdem

    • Lösung: Überprüfe, ob Application.DisplayAlerts korrekt auf False gesetzt wird, bevor Du das Arbeitsblatt löschst.
  3. Code funktioniert nicht in älteren Excel-Versionen

    • Lösung: Teste den Code in einer neueren Version von Excel, da einige Funktionen in älteren Versionen möglicherweise nicht unterstützt werden.

Alternative Methoden

Eine weitere Methode, um Arbeitsblätter zu löschen, kannst Du mit einer Schleife verwenden. Hier ist ein Beispiel:

Sub BlattLoeschen()
    Dim wsSheet As Worksheet
    Dim strWsName As String
    strWsName = "Tabelle4"
    Application.DisplayAlerts = False
    For Each wsSheet In ActiveWorkbook.Worksheets
        If wsSheet.Name = strWsName Then wsSheet.Delete
    Next wsSheet
    Application.DisplayAlerts = True
End Sub

Diese Methode durchläuft alle Arbeitsblätter und löscht das angegebene Arbeitsblatt, ohne eine Bestätigung anzuzeigen.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du den Code anpassen kannst:

  1. Lösche ein Arbeitsblatt mit einem bestimmten Namen:

    • Ersetze Tabellex oder Tabelle4 durch den Namen des Arbeitsblatts, das Du löschen möchtest.
  2. Automatisches Löschen eines Diagramms:

    • Wenn Du sicherstellen möchtest, dass ein Diagramm vor dem Erstellen eines neuen Diagramms gelöscht wird, kannst Du diesen Code verwenden:
Sub DiagrammLoeschen()
    On Error Resume Next
    Charts("MeinDiagramm").Delete
    On Error GoTo 0
End Sub

Tipps für Profis

  • Verwende On Error Resume Next mit Bedacht: Diese Anweisung kann dazu führen, dass andere Fehler übersehen werden. Stelle sicher, dass Du sie nur dort verwendest, wo es notwendig ist.
  • Code modular halten: Teile Deinen Code in kleinere Funktionen auf, um die Wiederverwendbarkeit zu erhöhen.
  • Sichere Deine Arbeitsmappe: Bevor Du ein Makro ausführst, das Daten löscht, solltest Du immer eine Sicherungskopie Deiner Arbeitsmappe anfertigen.

FAQ: Häufige Fragen

1. Wie kann ich ein Arbeitsblatt löschen, ohne eine Bestätigungsabfrage?
Du kannst die Application.DisplayAlerts-Eigenschaft auf False setzen, bevor Du das Arbeitsblatt löschst.

2. Was passiert, wenn das Arbeitsblatt nicht existiert?
Wenn das Arbeitsblatt nicht existiert und Du On Error Resume Next verwendest, wird der Fehler ignoriert und der Code läuft weiter.

3. Funktioniert dieser Code in allen Excel-Versionen?
Die meisten dieser Codes funktionieren in Excel 2007 und später, aber teste sie in Deiner spezifischen Version, um sicherzugehen.

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