Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
732to736
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
732to736
732to736
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Meldung nach einem Kick auf ein Objeckt

Meldung nach einem Kick auf ein Objeckt
Peter
Hallo VBA Freunde,
ich möchte eine Meldung ausgeben, wenn irgendein Objekt angeklickt wird.
Hierbei handelt es sich um eine Userform mit:
ComboBoxen, TextBoxen und CheckBoxen sowie CommandButtons in großer Anzahl.
Wenn ich das eine oder andere Objeckt anklicke oder verändere soll eine Meldung zurückgegeben werden. Ich möchte nicht jedes einzellne Objekt mit einer click oder change Prozedur versehen. Kennt jemand einen einfachen Vorgang ?
Danke im Voraus
Grüße Peter M.
AW: Meldung nach einem Kick auf ein Objeckt
19.02.2006 19:38:51
Nepumuk
Hallo Peter,
HÄÄÄÄÄÄÄÄÄ ?
Das Klick-Ereignis ist doch das Standardereignis fast aller Objekte.
Gruß
Nepumuk

AW: Meldung nach einem Kick auf ein Objeckt
19.02.2006 19:41:12
Ramses
Hallo Nepumuk
Ich glaube er meint eine globale Klasse in der ALLE Objecte drin stehen und das Click-Ereignis den GLEICHEN Code ausführen
Frag mich aber nun nicht, für was das gut sein soll ;-)
Gruss Rainer
AW: Meldung nach einem Kick auf ein Objeckt
19.02.2006 19:51:31
Peter
hallo Nepumuk, hallo Rainer,
Rainer Du hast es erfasst, ich brauche diese Rückmeldung um einen weiteren Befehl auszulösen.
Gruß Peter
AW: Meldung nach einem Kick auf ein Objeckt
19.02.2006 19:55:17
Nepumuk
Hallo Peter,
so eine Klasse ist mir nicht bekannt.
Gruß
Nepumuk

Anzeige
AW: Meldung nach einem Kick auf ein Objeckt
19.02.2006 19:55:51
Ramses
Hallo
Sei mir nicht böse, aber für was soll das gut sein ?
Du musst bei jedem Klick zuerst mal abfragen, von welchem Steuerelement es ausgelöst wird um dann das spezifische Makro auszulösen.
Das macht keinen Sinn.
Gruss Rainer
AW: Meldung nach einem Kick auf ein Objeckt
19.02.2006 21:47:05
Daniel
Hallo,
du mußt schon für jedes Objekt ein Klick- oder Change- Ereignis anlegen.
Sollte der Code allerdings immer der gleiche sein, schreibst du ihn nur einmal als normales Makro und rufst dann im Click-Ereignis eben dieses Makro auf.
Sollte das Makro trotzdem bei verschiedenen Objekten unterschiedlich reagieren sollen, kannst du das ja über ein Makro mit Parameterübergabe lösen oder mit der Funktion APPLICATION.CALLER ermitteln, welches Objekt den Makrostart ausgelöst hat.
Gruß, Daniel
Anzeige
AW: Meldung nach einem Kick auf ein Objeckt
19.02.2006 22:17:45
Gerd
APPLICATION.CALLER bei Controls im Userform?
mfg Gerd
AW: Meldung nach einem Kick auf ein Objeckt
19.02.2006 22:38:26
Daniel
ok, nicht in Userforms.
Bleibt immernoch Variante1.
Gruß, Daniel
AW: Meldung nach einem Kick auf ein Objeckt
19.02.2006 22:16:45
Gerd
Hi,
du brauchst min. für jedes unterschiedliche Objekt ein Klassenmodul. Sollte aber
für die paar Controls kein Problem sein.
mfg Gerd
Hier sind wohl die Ob-Jecken los! Gruß owT ;-))
20.02.2006 01:42:57
Luc:-?
:-?
AW: Hier sind wohl die Ob-Jecken los! Gruß owT ;-))
20.02.2006 22:29:03
Peter
Hallo Gerd,
ich bin nur ein Sonntags-VBAler, wie kann der Code aussehen mit deinen vorgeschlagenen Controls ?
kannst du mir ein Beispiel geben ?
Gruß Peter
AW: Hier sind wohl die Ob-Jecken los! Gruß owT ;-))
20.02.2006 22:34:48
Gerd
Hi,
für Klassenprogrammierung ist Nepumuk zuständig.
mfg Gerd
AW: Hier sind wohl die Ob-Jecken los! Gruß owT ;-
20.02.2006 22:44:23
Josef
Hallo Peter!
Der tiefere Sinn entzieht sich zwar auch mir, aber Probier mal diesen Code.
Dem Klassenmodul musst du den namen "cUFC" geben!
' **********************************************************************
' Modul: cUFC Typ: Klassenmodul
' **********************************************************************

Option Explicit
'Idea by Thomas Risi
'http://rtsoftwaredevelopment.de/

Private WithEvents cmdBtn As MSForms.CommandButton
Private WithEvents txtBox As MSForms.TextBox
Private WithEvents chkBox As MSForms.CheckBox
Private WithEvents optBtn As MSForms.OptionButton
Private WithEvents lstBox As MSForms.ListBox
Private WithEvents cmbBox As MSForms.ComboBox


Public Function Create(cntrl As MSForms.Control) As Object
Set Create = Nothing
If TypeOf cntrl Is MSForms.CommandButton Then
  Set cmdBtn = cntrl
  Set Create = Me
ElseIf TypeOf cntrl Is MSForms.TextBox Then
  Set txtBox = cntrl
  Set Create = Me
ElseIf TypeOf cntrl Is MSForms.CheckBox Then
  Set chkBox = cntrl
  Set Create = Me
ElseIf TypeOf cntrl Is MSForms.OptionButton Then
  Set optBtn = cntrl
  Set Create = Me
ElseIf TypeOf cntrl Is MSForms.ListBox Then
  Set lstBox = cntrl
  Set Create = Me
ElseIf TypeOf cntrl Is MSForms.ComboBox Then
  Set cmbBox = cntrl
  Set Create = Me
End If
End Function


Private Sub chkBox_Click()
All_Click chkBox
End Sub


Private Sub cmbBox_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
All_Click cmbBox
End Sub


Private Sub cmdBtn_Click()
All_Click cmdBtn
End Sub


Private Sub lstBox_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
All_Click lstBox
End Sub


Private Sub optBtn_Click()
All_Click optBtn
End Sub


Private Sub txtBox_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
All_Click txtBox
End Sub


Private Sub All_Click(cntrl As MSForms.Control)
MsgBox "ControlTyp:" & vbTab & TypeName(cntrl) & vbLf & vbLf & _
  "Controlname:" & vbTab & cntrl.Name
End Sub


' **********************************************************************
' Modul: UserForm1 Typ: Userform
' **********************************************************************

Option Explicit

Dim UFControls() As cUFC

Private Sub UserForm_Initialize()
Dim item As MSForms.Control
Dim n%: n = -1
For Each item In Me.Controls
  n = n + 1
  Redim Preserve UFControls(n)
  Set UFControls(n) = New cUFC
  UFControls(n).Create item
Next
End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: Hier sind wohl die Ob-Jecken los! Gruß owT ;-
20.02.2006 22:58:38
Peter
Hallo Josef,
Danke für deine Mühe. Ich werde es morgen mal ausprobieren.
sieht aufwendig auf :-(
Gruß Peter

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige