Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1240to1244
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
Control über "OnAction" an Makro übergeben
Martin
Hallo,
ich versuche gerade mir ein eigenes UserForm-Kontextmenü für alle TextBoxen zu bauen. Das Kontextmenü funktioniert auch schon, aber leider gelingt es mir nicht die TextBox als Control über "OnAction" an ein Makro zu übergeben.
Bei folgendem Code komme ich nicht weiter:

With .Controls.Add(Type:=msoControlButton)
.Caption = "Alles markieren"
'Die folgende Zeile bereitet mir Probleme
.OnAction = "'AllesMarkieren(" & Box & ")'"
.BeginGroup = True
If Len(Box.Value) = 0 Then .Enabled = False
End With

"Box" ist die jeweilige TextBox im Klassenmodul. Ich habe die Datei auch vollständig hochgeladen:
https://www.herber.de/bbs/user/77954.xls
Viele Grüße
Martin
AW: Control über "OnAction" an Makro übergeben
13.12.2011 11:46:25
Beverly
Hi Martin,
vielleicht wäre das eine Möglichkeit:
            .OnAction = "AllesMarkieren" & Box.Name

und dann für jede TextBox ein eigenes Makro also
Sub AllesMarkierenTextBox1()
End Sub
Sub AllesMarkierenTextBox2()
End Sub
Sub AllesMarkierenTextBox3()
End Sub



Das ist leider keine dynamische Lösung...
13.12.2011 11:59:27
Martin
Hallo Karin,
vielen Dank für deine Antwort. Klar wäre dein Vorschlag eine Möglichkeit, aber damit wären für jede einzelne TextBox neue 4 Makros notwendig (...bei 20 TextBoxen also 80 Makros). Ich lasse die Frage mal offen, vielleicht findet jemand eine dynamische Lösung.
Viele Grüße
Martin
Anzeige
AW: Control über "OnAction" an Makro übergeben
13.12.2011 12:40:59
Eugen
Hallo Martin
Dein Menü muss so aussehen
With .Controls.Add(Type:=msoControlButton)
.Caption = "Alles markieren"
'--------------------------------------------------------
'Die folgende Zeile bereitet mir Probleme
'--------------------------------------------------------
.OnAction = "AllesMarkieren"
.Parameter = box.Name
.BeginGroup = True
If Len(box.Value) = 0 Then .Enabled = False
End With
und die entsprechende Callback Funktion so
Sub AllesMarkieren()
'UserForm1.Label1 = "Alles markieren"
MsgBox CommandBars("EditMenue").Controls(4).Parameter
End Sub
Mfg
Eugen
Anzeige
Vielen Dank! Zu Parameter habe ich noch eine Frage
13.12.2011 13:13:56
Martin
Hallo Eugen,
super, vielen Dank für deine Hilfe. "Parameter" war mir bislang unbekannt (...und eigentlich hätte ich auch auf die Idee mit "Tag" kommen können). Aber was ist der Unterschied zwischen Parameter und Tag? Wann sollte was eingesetzt werden?
Viele Grüße
Martin
AW: Control über "OnAction" an Makro übergeben
13.12.2011 13:18:31
Martin
Hallo Luschi,
vielen Dank für den Hinweis. Aber jetzt will ich wissen, ob ich es auch selbst lösen kann.
Wenn ich scheitere, dann greife ich auf die "zu Guttenberg"-Methode (Copy & Paste) zurück :-)
Viele Grüße
Martin
Anzeige
AW: Control über "OnAction" an Makro übergeben
13.12.2011 14:38:39
Martin
Hallo,
das Kontextmenü funktioniert jetzt. Ich habe aus Zeitgründen die Befehle (Kopieren, Ausschneiden, Einfügen, Alles Markieren) über SendKeys realisiert. Ist zwar nicht die sauberste Lösung, aber es funktioniert fehlerfrei: https://www.herber.de/bbs/user/77963.xls
Viele Grüße
Martin

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige