Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Platzhalter in vba Auswahl der Blattnamen

Platzhalter in vba Auswahl der Blattnamen
29.04.2014 14:02:04
Peter
Hallo,
ich möchte über VBA bestimmte Tabellenblätter auswählen. Der Name der gewünschten Tabellenblätter lautet immer 'irgendwas abc'.
Ich möchte nun die Tabellenblätter auswählen, die am Ende abc stehen haben. Leider krige ich die Syntax mit dem Platzhalter '*abc' nicht hin. Wie muss ich das in VBA formulieren?
Gruß,
Peter

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
LIKE "*abc" owT
29.04.2014 14:11:19
Rudi

AW: LIKE "*abc" owT
29.04.2014 14:24:16
Peter
Ich habe es versucht, aber in meinem Kontext muss ich wohl etwas anders machen. Hier mal der Code mit dem Versuch
Sub CBFuellen()
'füllt die ComboBox mit den Werten aller benötigten Tabellenblätter
'Einträge der Combobox werde aktualisert wenn:
'Workbook geöffnet wird, Zieltabelle aktiviert wird, Datenübertragung durchgeführt wurde
Dim ws As Worksheet
Sheets("Zieltabelle").CBTabellen.Clear
For Each ws In Worksheets
Select Case ws.Name
Case "Zieltabelle", "Auswertung", "Ergebnis", "pbsvss gesamt", ws.Name Like "* _
pbsvss"
Case Else
If ws.Range("I1")  "schon exportiert" Then _
Sheets("Zieltabelle").CBTabellen.AddItem ws.Name
End Select
Next ws
'IF Anweisung verhindert Abbruch, falls Combobox leer
'Bei Änderungen wird immer der erste Eintrag der Liste angezeigt.
If Sheets("Zieltabelle").CBTabellen.ListCount = 0 Then
Sheets("Zieltabelle").CBTabellen.ListIndex = -1
Else
Sheets("Zieltabelle").CBTabellen.ListIndex = 0
End If
End Sub

Anzeige
So natürlich nicht, ...
29.04.2014 15:31:58
Luc:-?
…Peter,
denn Like ist ein VglsOperator (VBE-HilfeStichwort Operator Like ), da kommt nur True oder False raus und so wird ja wohl kein Blatt bei dir heißen… ;->
Du musst/kannst das also als eigene, zusätzliche Abfrage mit If … Then unter Case Else unterbringen.
Gruß Luc :-?
Besser informiert mit …

Anzeige
AW: So natürlich nicht, ...
29.04.2014 15:53:37
Peter
Ich habe es jetzt mal so geändert:
Case Else
If ws.Range("I1") "schon exportiert" And Not ws.Name Like "*pbsvss*" Then _
Sheets("Zieltabelle").CBTabellen.AddItem ws.Name
Es funktioniert. Danke für die wertvollen Tipps.

Alternative zeigt Rudi: alle Cases auf Boolean ...
29.04.2014 20:47:08
Luc:-?
…umstellen, Peter;
aber so, wie du es jetzt hast, ist es den Meisten doch vertrauter… ;-)
Gruß Luc :-?

Anzeige
AW: LIKE "*abc" owT
29.04.2014 15:41:29
Rudi
Hallo,
  For Each ws In Worksheets
Select Case True
Case ws.Name = "Zieltabelle", _
ws.Name = "Auswertung", _
ws.Name = "Ergebnis", _
ws.Name = "pbsvss gesamt", _
ws.Name Like "*pbsvss"
Case Else
If ws.Range("I1")  "schon exportiert" Then _
Sheets("Zieltabelle").cbtabellen.AddItem ws.Name
End Select
Next ws

Gruß
Rudi
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Platzhalter in VBA zur Auswahl von Blattnamen verwenden


Schritt-für-Schritt-Anleitung

Um in VBA Tabellenblätter auszuwählen, die einen bestimmten Platzhalter im Namen haben, kannst du die Like-Anweisung verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject" und wähle "Einfügen" > "Modul".

  3. Kopiere und füge den folgenden Code ein:

    Sub BlattAuswählen()
       Dim ws As Worksheet
       For Each ws In Worksheets
           If ws.Name Like "*abc" Then
               ' Hier kannst du etwas mit dem Blatt machen
               MsgBox ws.Name
           End If
       Next ws
    End Sub
  4. Starte das Makro: Drücke F5, um das Makro auszuführen. Alle Tabellenblätter, die mit "abc" enden, werden angezeigt.

Das obige Beispiel zeigt, wie du Platzhalter in den Blattnamen verwenden kannst, um bestimmte Blätter auszuwählen.


Häufige Fehler und Lösungen

  • Fehler 1: „Typenkonflikt“
    Lösung: Stelle sicher, dass du den Code in einem Modul und nicht in einem Arbeitsblattmodul schreibst.

  • Fehler 2: „Blatt nicht gefunden“
    Lösung: Überprüfe, ob das Blatt tatsächlich existiert und dass du den richtigen Namen verwendest.

  • Fehler 3: „Syntaxfehler“
    Lösung: Achte darauf, dass die Syntax für Like richtig ist. Zum Beispiel: If ws.Name Like "*abc".


Alternative Methoden

Eine alternative Methode zur Verwendung von Platzhaltern ist die Verwendung von Select Case. Hier ein Beispiel:

Sub AlternativeBlattAuswählen()
    Dim ws As Worksheet
    For Each ws In Worksheets
        Select Case True
            Case ws.Name Like "*abc"
                MsgBox ws.Name
        End Select
    Next ws
End Sub

Mit dieser Methode kannst du die Blätter ebenfalls nach spezifischen Mustern filtern.


Praktische Beispiele

Hier sind einige praktische Beispiele, die du in deinem VBA-Code verwenden kannst:

  1. Auswahl aller Blätter, die mit „Daten“ beginnen:

    If ws.Name Like "Daten*" Then
       ' Aktion hier
    End If
  2. Tabellenblätter filtern, die „Test“ enthalten:

    If ws.Name Like "*Test*" Then
       ' Aktion hier
    End If

Diese Beispiele zeigen, wie flexibel die Verwendung von Platzhaltern in VBA sein kann.


Tipps für Profis

  • Verwende Option Explicit: Dies hilft dir, alle Variablen zu deklarieren und Fehler im Code frühzeitig zu erkennen.
  • Nutze Debug.Print: Wenn du den Code testest, kannst du mit Debug.Print ws.Name die Namen der Blätter im Direktfenster ausgeben.
  • Strukturierte Fehlerbehandlung: Implementiere On Error Resume Next und On Error GoTo 0, um Fehler zu behandeln, ohne das gesamte Makro zu stoppen.

FAQ: Häufige Fragen

1. Kann ich mehrere Platzhalter kombinieren?
Ja, du kannst mehrere Bedingungen in einem If- oder Select Case-Block kombinieren.

2. Funktioniert das auch in Excel 365?
Ja, dieser VBA-Code funktioniert in Excel 365 sowie in früheren Versionen.

3. Was ist der Unterschied zwischen Like und =?
Like ermöglicht die Verwendung von Platzhaltern, während = eine exakte Übereinstimmung erfordert.

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