Clever-Excel-Forum

Normale Version: Comboboxen anwählen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,



gibt es eine möglichkeit alle comboboxen von mehreren Sheets die ein Kriterum erfüllen anzusprechen?



Z. B.



Code:
Dim Sheet_X as Worksheet
For Each Sheet_X in Worksheets

If Sheet_X.Cells(1,1) = "Ja"

Then Sheet_X.Combobox.value ="2020"

End IF

Es gibt je Tabellenblatt nur eine Combobox. Die Comboboxen heissen entweder alle Combobox2 oder Combobox2, Combobox3...

Die Tabellenblätter können beliebig oft kopiert werden, daher weiß ich in voraus nicht wie die Comboboxen heißen werden.
Hallo,
Sub Kuwer()
  Dim Sheet_X As Worksheet
  For Each Sheet_X In Worksheets
    If LCase(Sheet_X.Cells(1, 1).Value) = "ja" Then
      Sheet_X.OLEObjects("ComboBox1").Object.Value = "2020"
    End If
  Next Sheet_X
End Sub
Gruß Uwe
Hallo danke für deine Antwort,

ich habe die gleiche combobox in verschiedenen Tabellenblättern. Diese Tabellenblätter kann man bei Bedarf beliebig oft kopieren. Alle heißen combobox1 und bei jedem neuen Kopiervorgang von einem Tabellenblatt heißt die Combobox leider wieder Combobox1. Wenn ich von einer combobox den Wert umstelle sollen sich die anderen Comboboxen dem Wert anpassen.

Jedes mal Combobox1 ist ein doppeldeutiger Wert.

Ich bräuchte eig.:

1. Für jedes Tabellenblatt einen eindeutigen Comboboxnamen, der automatisch für jeden Tabellenblattkopiervorgang generiert wird.
2. Ein Makro der diese Combobox nicht anhand vom Namen erkennt.
Hallöchen,

im Prinzip auf Blattebene so:

Private Sub Worksheet_Activate()
Me.OLEObjects(1).Name = Me.Name
End Sub

oder unter DieseArbeitsmappe so

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Sh.OLEObjects(1).Name = Sh.Name
End Sub

Wenn Du ein Tabellenblatt per Kopie erzeugst, wird selbiges aktiviert und dabei der Code ausgeführt.
Es gibt zwar auch ein Ereignis Workbook_NewSheet, aber seltsamerweise scheint ein per Kopie erzeugtes Blatt für Excel nicht neu zu sein. Excel kennt es wohl schon Sad

Seltsamerweise 2: Ich muss bei mir neuerdings immer die Datei Speichern und Excel schließen und neu aufmachen, damit die Ereignismakros wirken Sad Ist vermutlich seit meinem Update von 2016 auf 2019 so.
Hallo André,

wenn Du auf 1) antwortest, solltest Du auch 2) beantworten. Wink

Gruß Uwe
Hallo Uwe,

ich bin felsenfest überzeugt Smile

2) OLEObjects(1) nimmt das erste Objekt, egal wie es heißt, und
1) weist ihm einen eindeutigen Namen zu

Seltsamerweise 2 hat damit nix zu tun, falls Du das meinst Huh