Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1200to1204
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
Inhaltsverzeichnis

dynamische Combobox Change-Ereignis

dynamische Combobox Change-Ereignis
Frank
Hallo Zusammen,
ich habe schon mal gegooglet , finde aber irgendwie nichts dazu.
aber ich bin mir sicher Ihr könnt mir helfen.
Und zwar erstelle ich in Abhängikeit einer Variable die entsprechende Anzahl von Comboboxen.
Wie kann ich diese Comboboxen mit einem Change-Ereignis ansprechen?
Hier mal der Code:
For k = 2 To AnzPrfMerkmale
Set ComboboxNeu = Controls.Add("Forms.Combobox.1", "Combobox" & k, Visible)
Set TextboxNeu = Controls.Add("Forms.Textbox.1", "Textbox" & k, Visible)
Set ListboxNeu = Controls.Add("Forms.Listbox.1", "Listbox" & k, Visible)
With ComboboxNeu
.Left = 18
.Height = 20
.Width = 132
.Top = j + 36
With TextboxNeu
.Left = 204
.Height = 20
.Width = 132
.Top = j + 36
With ListboxNeu
.Left = 372
.Height = 20
.Width = 132
.Top = j + 36
j = j + 36
arrDaten = Range(Cells(2, 6), Cells(Rows.Count, 8).End(xlUp))
ReDim Preserve arrDaten(1 To UBound(arrDaten), 1 To 4)

Vielen Dank schon mal für die Hilfe
Frank
AW: dynamische Combobox Change-Ereignis
22.02.2011 09:39:57
Jürgen
Hallo Frank,
ich würde alternativ zur Designzeit die maximale Anzahl Steuerelemente auf dem Dialog anlegen, mit Ereignis-Handlern versehen und sie auf Visible=False setzen. Zur Laufzeit brauchst Du sie dann nur wieder sichtbar zu machen, anstatt sie anzulegen.
Gruß, Jürgen
AW: dynamische Combobox Change-Ereignis
22.02.2011 09:53:59
Frank
Hallo Jürgen,
vielen dank für deine antwort.
Dies ist eine Möglichkeit die ich noch garnicht in Betracht gezogen hatte.
Da die Anzahl von Textboxen auch von der Anzahl der Comboboxen abhängt wird
es dann ganz schön unübersichtlich.
Bevorzugen würde ich da eigentlich lieber etwas dynamisches.
Wenn es keine Alternative gibt werde ich auf deinen Vorschlag zurückkommen
Gruß
Frank
Anzeige
AW: dynamische Combobox Change-Ereignis
22.02.2011 10:46:04
Frank
...hat keiner eine Idee?
Dann bleib mir wohl nur die Lösung von Jürgen.
Danke trotzdem
Frank
AW: dynamische Combobox Change-Ereignis
22.02.2011 11:14:46
M.
Hallo,
ich denke das hier Klassenprogrammierung für dich das richtige Stichwort ist.
Eine Einführung gibt es hier:
http://www.office-loesung.de/ftopic220336_0_0_asc.php
Vielleicht hift dir das ja schon ein Stück weiter, ich lasse die Frage offen.
Gruß
Rudi
AW: dynamische Combobox Change-Ereignis
22.02.2011 12:38:35
Frank
Hallo Rudi,
danke für den Hinweis.
habe mich mal dran probiert.
bin aber wohl zu doof dazu.
Bekomme immer die Fehlermeldung
Objektvariable oder With-Objektvariable nicht festgelegt in Zeile 2 des Codes
For i = 2 To AnzPrfMerkmale
Set Comboboxes(i) = New clsComboBox
Set Comboboxes(i).cmdCombobox = Me.Controls(i)
Next
Hier noch was ich in die Klasse geschrieben habe
Option Explicit
Dim Comboboxes(50) As clsComboBox
Public WithEvents cmdCombobox As Combobox
Gruß
Frank
Anzeige
...habs geschafft
22.02.2011 13:58:23
Frank
Hallo Rudi, hallo Jürgen,
nochmals vielen Dank für Eure Hinweise.
Habe es anhand der Anleitung von Rudi geschafft
Gruß
Frank
AW: ...habs geschafft
22.02.2011 14:02:01
Frank
war wohl doch noch zu früh.
Es wird keine Combobox hinzu gefügt
Mist
AW: ...habs geschafft
22.02.2011 14:03:41
M.
Danke für die Rückmeldung! Wollte dir gerade ein Beispiel zusammenbauen, aber so ist es natürlich noch besser! :-)
Gruß
Rudi
AW: ...habs geschafft
22.02.2011 14:23:03
Frank
Hallo Rudi,
war etwas zu schnell. Hat nicht funktioniert.
Bekomme immer die Meldung Typen unverträglich in folgenden Zeilen
Dim Comboboxes(50) As clsComboBox
If AnzPrfMerkmale > 1 Then
For i = 2 To AnzPrfMerkmale
Set Comboboxes(i) = New clsComboBox
Set Comboboxes(i).cmdCombobox = Me.Controls(i) 
Gruß
Frank
Anzeige
AW: ...habs geschafft
22.02.2011 15:45:25
M.
Ok, ich hab dir mal ein Beispiel erstellt:
https://www.herber.de/bbs/user/73680.xls
Du kannst angeben wieviele ComboBoxen dynamisch erstellt werden sollen. (Hab ich für das Beispiel mal auf 10 begrenzt). Und bekommst dann eine Meldung bei einem Change Ereignis der jeweiligen Box. Ich denke damit kommst du bestimmt weiter.
Viel Erfolg!
Gruß
Rudi
AW: ...habs geschafft
22.02.2011 15:48:25
Frank
Hallo Rudi,
danke für deine Hilfe.
ich werde mich morgen drüber her machen und gebe dann Rückmeldung.
Deswegen lasse ich die Frage noch offen.
Gruß
Frank
Anzeige
AW: ...habs geschafft
24.02.2011 08:52:24
Frank
Hallo Rudi,
vielen Dank für die tolle Hilfe. Habe es jetzt einigermaßen verstanden.
Und es funktioniert auch so weit.
Noch eine Frage hätte ich.
Wenn ich jetzt mehrere Comboboxen anlege, kann ich irgendwie ermitteln welche der dynamisch angelegten Boxen das Change-Ereignis ausgelöst hat?
Danke noch mal
Gruß
Frank
...wer lesen kann ist klar im Vorteil
24.02.2011 09:36:21
Frank
Hallo Rudi,
der Titel sagt alles
Nochmals vielen Dank
AW: ...wer lesen kann ist klar im Vorteil
24.02.2011 10:49:41
Frank
Hallo Rudi,
jetzt ist doch noch einen Frage aufgetaucht.
Kann man ähnlich wie die Comboboxen auch Variable dynamisch erstellen?
z.B. Anzahl Comboboxen = Anzahl Variable ( z.B. xyz(n))
Gruß Frank
Anzeige
AW: ...wer lesen kann ist klar im Vorteil
24.02.2011 14:13:40
M.
Hallo,
du kannst doch in der Klasse neben der ComboBox auch deine Variable anlegen. Der kannst du genauso einen Wert zuweisen, wie du der ComboBox aus der Klasse deine dynamisch erstellte ComboBox zugewiesen hast. Die ComboBox ist ja im Prinzip auch nichts anderes als eine Variable. Hoffe ich habe dein Frage richtig verstanden.
lg
Rudi
AW: ...wer lesen kann ist klar im Vorteil
24.02.2011 14:26:40
M.
Ich hab mal die Klasse aus meiner Beispieldatei erweitert:
Option Explicit
Public WithEvents objComboBox As MSForms.ComboBox
Public strMeinWert As String
Private Sub objComboBox_Change()
MsgBox objComboBox.Name & ": Changeereignis ausgelöst!"
strMeinWert = objComboBox.Value
MsgBox "Ausgewähler Wert: " & strMeinWert
End Sub
So hast du zu jeder ComboBox die du anlegst automatisch auch noch eine Stringvariable zur Verfügung.
lg
Rudi
Anzeige
Danke
28.02.2011 08:07:59
Frank
Hallo Rudi,
ich wollte mich nur noch einmal kurz für deine Hilfe bedanken.
Durch deine Beispiele bin ich schon ein ganzen Stück weiter gekommen.
Gruß Frank
Danke für die Rückmeldung! owT
28.02.2011 14:15:52
M.
.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige