Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
652to656
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
652to656
652to656
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

2 Comboxen Change-Ereignisse in einem Makro

2 Comboxen Change-Ereignisse in einem Makro
18.08.2005 13:37:36
Moe
Ich habe ein Problem mit 2 ComboBoxen die ich auf einem neuen Toolbar erstellt habe.
Die beiden ComboBoxen sind mit einer Tabelle verknüpft und man kann jeweils 1 Wert auswählen, dann wird ein Diagram erstellt und man kann beide Werte optisch vergleichen.
Nun mein Problem: ich habe die Beiden Comboboxen über die Funktion "Makro zuweisen" jeweils mit einem Sub verbunden der die Auswahl zurückgibt. Wenn man aber das Excel Dokument kopiert, sind die Comboboxen noch mit dem Makro des alten Dokuments verbunden deshalb will ich das über Combobox_change machen. Mit einer Combox ist das auch kein Problem, doch ich schaffe es nicht auch ein change Ereignis für die zweite Combobox zu schreiben da das Makro immer nur feststellt, dass eine Combobox verändert wurde, aber nicht erkennt welche. Ich füge den Code den ich schon habe hier mit an und bitte um die Hilfe der erfahrenen Makroprogramierer. Vielen Dank schon an dieser Stelle.
MfG
Moe
Modul1:
Sub ComboBoxCreator()
'Erstes ComboBoxfeld erstellen
ThisWorkbook.Activate
Worksheets(1).Activate
Set newBar = Application.CommandBars.Add(Name:="TestVergleicherCommandBar")
Dim Combo1 As Office.CommandBarComboBox
Set Combo1 = newBar.Controls.Add(Type:=msoControlComboBox, ID:=1)
With Combo1
iRowL = Cells(Rows.Count, 1).End(xlUp).Row
For iRow = 6 To iRowL
If Not IsEmpty(Cells(iRow, 1)) Then
.AddItem Cells(iRow, 1).Value
End If
Next iRow
.DropDownWidth = 200
.ListHeaderCount = 0
End With
ctlComboBoxHandler.SyncBox Combo1
'Zweites ComboBoxfeld erstellen
ThisWorkbook.Activate
Worksheets(1).Activate
Dim combo2 As Office.CommandBarComboBox
Set combo2 = newBar.Controls.Add(Type:=msoControlComboBox, ID:=1)
With combo2
iRowL = Cells(Rows.Count, 1).End(xlUp).Row
For iRow = 6 To iRowL
If Not IsEmpty(Cells(iRow, 1)) Then
.AddItem Cells(iRow, 1).Value
End If
Next iRow
.DropDownWidth = 200
.ListHeaderCount = 0
End With
CBH.SyncBox4 combo2
End Sub
Klassenmodul("ComboBoxEvent"):
Private WithEvents ComboBoxEvent As Office.CommandBarComboBox
Public Sub SyncBox(box As Office.CommandBarComboBox)
Set ComboBoxEvent = box
If Not box Is Nothing Then
MsgBox "Synced1 " & box.Caption & " ComboBox events."
End If

End Sub
Public Sub SyncBox4(box As Office.CommandBarComboBox)
Set ComboBoxEvent2 = box
If Not box Is Nothing Then
MsgBox "Synced2 " & box.Caption & " ComboBox events."
End If

End Sub

Private Sub Class_Terminate()
Set ComboBoxEvent = Nothing
End Sub


Private Sub ComboBoxEvent_Change(ByVal Ctrl As Office.CommandBarComboBox)
MsgBox ("Erste ComboBox verändert")
End Sub



Private Sub ComboBoxEvent2_Change(ByVal Ctrl As Office.CommandBarComboBox)
MsgBox ("Zweite ComboBox verändert")
End Sub

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 2 Comboxen Change-Ereignisse in einem Makro
18.08.2005 14:43:04
Nepumuk
Hi,
3 Möglichkeiten.
1. Setzt beim erstellen die Tag - Eigenschaften der Boxen unterschiedlich. Die kannst du in deiner Ereignisroutine abfragen.
2. Benutze zwei Objektvariablen.
3. Benutze zwei Klassen.
Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige