Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1016to1020
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

Application.Caller

Application.Caller
20.10.2008 15:57:10
uli
Hallo Experten,
ich habe eine Userform mit 23 Checkboxen. Wenn eine Checkbox aktiviert/deaktiviert wird (z.B. Checkbox1) wird der Code Checkbox1_Click() ausgeführt. Während dieser Code durchlaufen wird, wird das Makro "Test" über "Call Test" aufgerufen. In diesem Makro sollen nun in Abhängigkeit der gedrückten Checkbox unterschiedliche Dinge passieren. Dafür muss ich natürlich in Makro "Test" wissen, welche Checkbox gedrückt worden ist. Das Makro "Test" öffnet sich beim Drücken von allen Checkboxen.
Ich glaube, dass ich das irgendwie mit dem Befehl "Application.Caller" machen muss. Weiß allerdings nicht genau wie.
Kann mir da vielleicht jemand auf die Sprünge helfen?
Gruß
Uli

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Application.Caller
20.10.2008 16:37:00
Rudi
Hallo,
Caller geht nicht, da Test durch die Ereignisprozedur aufgerufen wird.
übergib die Checkbox als Prameter an Test.

Checkbox1_Click()
Call Test(Me.checkbox1)
End Sub



Sub test(cbx As Object)
MsgBox cbx.Caption
End Sub


Alternativ kannst du die Checkboxen auch in eine eigene Klasse packen.
Gruß
Rudi

AW: Application.Caller
20.10.2008 16:46:42
uli
Hallo Rudi
vielen Dank,
funktioniert perfekt.
ICh übergebe die Checkboxen als Parameter.
Den Unterschied zwischen Klassenmodulen und Modulen hab ich leider noch nicht verstanden. Kann ich die Checkboxen_Click() Prozedur in ein Modul eintragen? Wie mach ich vba dann klar, welche Checkbox1 aus welcher USerform ich meine?
Gruß
Uli
Anzeige
AW: Application.Caller
20.10.2008 16:49:00
Rudi
Hallo,

Kann ich die Checkboxen_Click() Prozedur in ein Modul eintragen? 


Nein! Die müssen im Klassenmodul der UF stehen.
Gruß
Rudi

AW: Application.Caller
20.10.2008 16:39:00
JogyB
Hallo.
Geht meines Wissens nur auf Arbeitsblättern, nicht in Userforms (lasse mich aber gerne eines besseren belehren).
In Deinem Fall wäre ein Klassenmodul die beste Lösung. Ein gutes Einstiegsbeispiel findest Du hier.
In Deinem konkreten Fall holft dann, dass innerhalb des Klassenmoduls die Checkbox als Objekt vorhanden ist und dann auch an "Test" übergeben werden kann.
Kleiner Tipp: Bei der Deklaration musst Du MSForms.CheckBox als Variablentyp verwenden, CheckBox alleine reicht nicht.
Gruss, Jogy
Anzeige
AW: Application.Caller
20.10.2008 16:45:17
Tino
Hallo,
übergebe den Namen oder eine Zahl an die Sub Test und werte diese im Makro entsprechend aus.
Beispiel:
Option Explicit

Private Sub CheckBox1_Click()
 If Me.CheckBox1 = True Then
  Call Test(1)
 End If
End Sub
Private Sub CheckBox2_Click()
 If Me.CheckBox2 = True Then
  Call Test(2)
 End If
End Sub

Sub Test(meBox As Integer)
Select Case meBox
 Case 1: MsgBox "mach was mit CheckBox" & meBox
 Case 2: MsgBox "mach was mit CheckBox" & meBox
End Select
End Sub


Bei sovielen Checkboxen, kannst Du Dir mal Gedanken darüber machen
dies über ein Klassenmodul zu lösen, dann brauchst du den Code nicht für jede Box zu schreiben.
Beispiele findest Du hier im Forum und im Archiv.
Gruß Tino

Anzeige
AW: Application.Caller
20.10.2008 17:03:00
uli
Hallo Tino und Jogi,
hmmmm, da ist wohl Beitrag verloren gegangen. Dann nochmal:
vielen Dank euch beiden für die Tipps. Hab schon den Tipp von Rudi ausprobiert. Werde mich jetzt aber mal mit Klassenmodulen auseinandersetzen. Bin denen bis jetzt immer aus dem Weg gegangen. Hab auch noch nicht den Unterschied zu normalen Modulen vestanden.
Gruß
Uli

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige