Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1084to1088
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
Gleiche Ereignisse für alle UF-Comboboxen
Martin
Hallo liebe Excel-Gemeinde,
ich verwende für alle Comboboxen und Textboxen in einer UserForm den gleichen Code für das "Enter" und das "Exit"-Ereignis:

Private Sub ComboBox36_Enter()
ComboBox36.BackColor = &H80FFFF
ComboBox36.BorderStyle = fmBorderStyleSingle
End Sub



Private Sub ComboBox36_Exit(ByVal Cancel As MSForms.ReturnBoolean)
ComboBox36.BackColor = vbWhite
ComboBox36.BorderStyle = 1
ComboBox36.SpecialEffect = fmSpecialEffectEtched
End Sub


Gibt es eine Möglichkeit diesen Code in einem "universellen" Enter- und Exit-Ereigniss für alle Comboboxen bzw. Textboxen zu schreiben?
Ich wäre für Ideen sehr dankbar!
Viele Grüße
Martin

AW: Gleiche Ereignisse für alle UF-Comboboxen
02.07.2009 13:29:56
Rudi
Hallo,
du musst die Boxen in eine eigene Klasse packen.
Gruß
Rudi
AW: Gleiche Ereignisse für alle UF-Comboboxen
02.07.2009 13:34:37
Martin
Hallo Rudi,
würdest Du mir bitte schreiben wie das geht? Mit Klassen kenne ich mich leider nicht aus. Ich vermute mal, dass ich ein "Klassenmodul" anlegen muss. Weiter weiß ich leider nicht....
Viele Grüße
Martin
AW: Gleiche Ereignisse für alle UF-Comboboxen
02.07.2009 13:56:03
Martin
Hallo Hajo,
vielen Dank. Das scheint mir komplizierter als erwartet, aber ich werde es mal versuchen. Wenn ich es nicht hinbekomme, mache ich die Formatierung doch für jede Textbox / Combobox manuell.
Aber vielen Dank für die Orientierung!
Viele Grüße
Martin
Anzeige
AW: Gleiche Ereignisse für alle UF-Comboboxen
02.07.2009 14:29:09
Jogy
Hi.
das ist viel einfacher als es aussieht, mit "VBA gut" sollte das kein Problem sein. Ich habe bei meinen ersten Versuchen mit Klassen keine 2h gebraucht, bis das gelaufen ist - und das war ein ähnlicher Fall wie bei Dir.
Nette Beispiele sind da auch auch im Wikibook zu VBA.
http://de.wikibooks.org/wiki/VBA_in_Excel_-_Grundlagen:_Klassenmodule
Gruss, Jogy
AW: Gleiche Ereignisse für alle UF-Comboboxen
02.07.2009 14:46:09
Martin
Hallo Jogy,
Vielen Dank für den interessanten Link!
Viele Grüße
Martin
AW: Gleiche Ereignisse für alle UF-Comboboxen
02.07.2009 15:54:16
Martin
Hallo,
nachdem ich es trotz aller Bemühungen leider nicht hinbekommen habe, bin ich auf die Suche nach weiteren Informationen gegangen und auf folgende Seite gestoßen:
http://www.office-loesung.de/ftopic310925_0_0_asc.php
Also offensichtlich geht es mit Klassen wohl doch nicht?!
Viele Grüße
Martin
Anzeige
AW: Gleiche Ereignisse für alle UF-Comboboxen
02.07.2009 16:01:36
Rudi
Hallo,
kommt darauf an, was du willst.
In Klassenmodulen stehen nicht alle Events zur Verfügung.
Change für Comboboxen geht aber.
Gruß
Rudi
AW: Gleiche Ereignisse für alle UF-Comboboxen
02.07.2009 16:08:53
Martin
Hallo Rudi,
ich wollte genau das, was in dem Link beschrieben war: Es sollen Comboboxen und TextBoxen im Enter-Ereignis gefärbt und im Exit-Ereignis wieder "entfärbt" werden. Aber genau diese beiden Ereignisse stehen im Klassenmodul leider nicht zur Verfügung. Scheinbar muss ich die Ereignisse nun doch für jede einzelne Textbox bzw. Combobox schreiben.
Viele Grüße
Martin
AW: Gleiche Ereignisse für alle UF-Comboboxen
02.07.2009 16:15:47
Rudi
Hallo,
dann schreib dir eine Prozedur und rufe diese im Ereignis auf.

Private Sub ComboBox1_Enter()
cbFaerben ComboBox1
End Sub
Private Sub ComboBox2_Enter()
cbFaerben ComboBox2
End Sub
Sub cbFaerben(cb As Object)
'Code
End Sub


Gruß
Rudi

Anzeige
AW: Gleiche Ereignisse für alle UF-Comboboxen
02.07.2009 16:35:32
Martin
Hallo Rudi,
stimmt, so spare ich doch ein wenig Code. Schade nur, dass nun doch für jede einzelne Combobox/Textbox ein Enter- bzw. Exit-Ereignis angelegt werden muss. Aber vielen Dank für Deinen Vorschlag!
Viele Grüße
Martin
AW: Gleiche Ereignisse für alle UF-Comboboxen
02.07.2009 13:59:19
Rudi
Hallo,
Prinzip
In der UF:

Dim objComboBox(1 To 10) As New clsComboBox 'anpassen
Private Sub UserForm_Initialize()
Dim objControl As Control, i As Integer
For Each objControl In Me.Controls
If TypeName(objControl) = "ComboBox" Then
i = i + 1
Set objComboBox(i).myComboBox = objControl
End If
Next
End Sub


Im Klassenmodul clsComboBox:


Public WithEvents myComboBox As MSForms.ComboBox
Private Sub myComboBox_Click()
MsgBox myComboBox.Name
End Sub

Gruß
Rudi

Anzeige
Rudi, vielen lieben Dank!!!
02.07.2009 14:11:26
Martin
Hallo Rudi,
vielen Dank, jetzt bekomme ich es bestimmt hin. Ich glaube das Prinzip jetzt verstanden zu haben!
Viele Grüße
Martin

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige