Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Comboboxen anwählen
#1
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.


Angehängte Dateien
.xlsx   Beispiel_Combobox.xlsx (Größe: 29,29 KB / Downloads: 3)
Antworten Top
#2
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
Antworten Top
#3
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.
Antworten Top
#4
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.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#5
Hallo André,

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

Gruß Uwe
Antworten Top
#6
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
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste