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

Forumthread: Tabellen-Blätter in ComboBox einlesen

Tabellen-Blätter in ComboBox einlesen
VolkerM
Hallo
Mit folgendem Code lese ich sämtliche Tabellenblätter in eine UserForm – ComboBox ein. Dabei wird Tabelle 1 ausgeschlossen. Nun möchte ich aber zu Tabelle 1 noch eine weitere Tabelle ausschließen.

With cboWks
Dim wks As Worksheet
For Each wks In Worksheets
If Not wks.Name = "Tabelle1" Then
cboWks.AddItem wks.Name
End If
Next wks
End With

Private Sub cboWks_Change()
Worksheets(cboWks.Value).Select
Unload Me
End Sub

Hat jemand eine Idee. Besten Dank im Voraus.
Gruß Volker
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Tabellen-Blätter in ComboBox einlesen
Nepumuk
Hallo Volker,
einfache formale Logik:
If Not (wks.Name = "Tabelle1" Or wks.Name = "Tabelle3") Then
Gruß
Nepumuk
AW: Tabellen-Blätter in ComboBox einlesen
01.05.2004 09:49:38
VolkerM
Hallo Nepumuk
Vielen Dank; es funktioniert.
Gruß Volker
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Tabellen-Blätter in ComboBox einlesen


Schritt-für-Schritt-Anleitung

Um Tabellenblätter in eine ComboBox einer UserForm einzulesen und dabei bestimmte Blätter auszuschließen, kannst Du den folgenden VBA-Code verwenden. In diesem Beispiel wird "Tabelle1" und eine weitere Tabelle (zum Beispiel "Tabelle3") ausgeschlossen:

Private Sub UserForm_Initialize()
    With cboWks
        Dim wks As Worksheet
        For Each wks In Worksheets
            If Not (wks.Name = "Tabelle1" Or wks.Name = "Tabelle3") Then
                cboWks.AddItem wks.Name
            End If
        Next wks
    End With
End Sub

Private Sub cboWks_Change()
    Worksheets(cboWks.Value).Select
    Unload Me
End Sub

Füge diesen Code in das Code-Modul Deiner UserForm ein. Die ComboBox wird beim Initialisieren der UserForm mit allen Tabellenblättern gefüllt, die nicht ausgeschlossen sind.


Häufige Fehler und Lösungen

  1. Fehler: ComboBox bleibt leer

    • Lösung: Achte darauf, dass Du den Code im UserForm_Initialize-Ereignis platziert hast. Wenn der Code an einer anderen Stelle steht, wird er möglicherweise nicht ausgeführt.
  2. Fehler: Falsche Blattnamen

    • Lösung: Vergewissere Dich, dass die Namen der auszuschließenden Blätter exakt mit denen in der Arbeitsmappe übereinstimmen. Kleinere Abweichungen können dazu führen, dass der Code nicht wie gewünscht funktioniert.

Alternative Methoden

Eine alternative Methode, um Tabellenblätter in eine ComboBox einzulesen, wäre die Verwendung einer Array- oder Collection-Datenstruktur, um die Namen der Blätter zu speichern und dann in die ComboBox einzufügen. Dies könnte die Performance verbessern, besonders bei großen Arbeitsmappen.


Praktische Beispiele

Hier ein einfaches Beispiel, wie Du mehrere Tabellenblätter ausschließen kannst:

Private Sub UserForm_Initialize()
    With cboWks
        Dim wks As Worksheet
        For Each wks In Worksheets
            If Not (wks.Name = "Tabelle1" Or wks.Name = "Tabelle2" Or wks.Name = "Tabelle3") Then
                cboWks.AddItem wks.Name
            End If
        Next wks
    End With
End Sub

In diesem Beispiel werden die Blätter "Tabelle1", "Tabelle2" und "Tabelle3" von der ComboBox ausgeschlossen.


Tipps für Profis

  • Verwende Konstanten für die auszuschließenden Blattnamen, um den Code leichter wartbar zu machen.
  • Implementiere eine Fehlerbehandlung, um sicherzustellen, dass der Code auch bei unerwarteten Situationen stabil bleibt.
Const EXCLUDE_SHEET1 As String = "Tabelle1"
Const EXCLUDE_SHEET2 As String = "Tabelle3"

Private Sub UserForm_Initialize()
    On Error Resume Next
    With cboWks
        Dim wks As Worksheet
        For Each wks In Worksheets
            If Not (wks.Name = EXCLUDE_SHEET1 Or wks.Name = EXCLUDE_SHEET2) Then
                cboWks.AddItem wks.Name
            End If
        Next wks
    End With
    On Error GoTo 0
End Sub

FAQ: Häufige Fragen

1. Frage
Wie kann ich weitere Tabellenblätter ausschließen?
Antwort: Füge einfach weitere Bedingungen in die If Not-Bedingung ein, indem Du das Or-Schlüsselwort verwendest.

2. Frage
Warum wird die ComboBox nicht automatisch aktualisiert?
Antwort: Du musst sicherstellen, dass die UserForm_Initialize-Methode aufgerufen wird, wenn die UserForm geladen wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige