Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Abbrechen wenn Tabelle nicht vorhanden (VBA)

Betrifft: Abbrechen wenn Tabelle nicht vorhanden (VBA) von: Henner
Geschrieben am: 05.10.2014 21:18:45

Hallo zusammen,

ich möchte mein bestehendes Makro dahingehend erweitern, dass es beendet wird wenn eine vorgegebene Tabelle nicht vorhanden ist. Dafür konnte ich als Lösungsansatz bereits folgende Codes zusammensuchen, bekomme aber leider nicht das gewünschte Ergebnis.

(Code: http://ms-excel.eu)

Sub Tabellenname_abfragen()
Dim i As Integer
For i = 1 To Worksheets.Count
    If Worksheets(i).Name = "Break" Then
        Worksheets(i).Activate
        MsgBox Worksheets(i).Name & " ist vorhanden"
    End If
Next
End Sub
Sub Tabelle_mit_Name_anlegen()
Dim WS As Worksheet
Dim Hinweis As Byte
For Each WS In Worksheets
    If WS.Name = "Break" Then
        WS.Activate
        MsgBox WS.Name & " ist vorhanden"
        Exit Sub
    End If
Next WS
Hinweis = MsgBox("Tabellenblatt existiert nicht. Anlegen?", 1, "Hinweis")
If Hinweis = 1 Then
    Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = "Break"
End If
End Sub

Ich habe bereits mehrere Versuche unternommen, entweder lande ich immer beim Exit Sub oder die Tabelle wird nicht gesehen obwohl sie da ist.

So soll der Code funktionieren:
Sub BestehendesMakro()
...
Mein bestehender Code
...
Abfrage existiert die Tabelle "Daten"?
Nein: msgBox, anschliessend Exit Sub
Ja: Code weiter ausführen
...
Mein bestehender Code
...
End Sub

Ich hoffe ich konnte mein Anliegen einigermassen Verständlich ausdrücken.

Besten Dank & Gruss, Henner

  

Betrifft: AW: Abbrechen wenn Tabelle nicht vorhanden (VBA) von: Adis
Geschrieben am: 06.10.2014 00:57:37

Hallo

ich denke die einfachste Lösung dürfte der untere Code sein.
Ich benutze gerne Const oder auch eine Zelle für den Suchwert.
Die Variable Blatt dient als Merker ob das Blatt gefunden wurde.

Const Suchname = "Daten"

Sub Tabellenname_abfragen()
Dim i As Integer, Blatt As String
'.... Code vor der Abfrage 
'Abfrage nach Tabellenblatt
For i = 1 To Worksheets.Count
    If Worksheets(i).Name = Suchname Then Blatt = "Ja": Exit For
Next
If Blatt = Empty Then MsgBox Suchname & "  nicht gefunden": Exit Sub
'....  weiter im Programm
End Sub
Gruss Adis


  

Betrifft: AW: oder so, nur ohne For-Schleife! von: Luschi
Geschrieben am: 06.10.2014 06:29:27

Hallo Werner,

ich mach das immer so:

Sub Tabelle_mit_Name_anlegen()
    Dim WS As Worksheet
    Dim Hinweis As Byte
    
    On Error Resume Next
       Set WS = ThisWorkbook.Worksheets("Break")
    On Error GoTo 0
    If WS Is Nothing Then
       Hinweis = MsgBox("Tabellenblatt 'Break' existiert nicht. Anlegen?", vbYesNo, "Hinweis")
       If Hinweis = vbYes Then
          Set WS = ThisWorkbook.Worksheets.Add(After:=Worksheets(Worksheets.Count))
          WS.Name = "Break"
       Else
          Exit Sub
       End If
    Else
        WS.Activate
        MsgBox WS.Name & " ist vorhanden"
    End If
    Set WS = Nothing
End Sub
Gruß von Luschi
aus klein-Paris


 

Beiträge aus den Excel-Beispielen zum Thema "Abbrechen wenn Tabelle nicht vorhanden (VBA)"