Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
932to936
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
932to936
932to936
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Variable

Variable
17.12.2007 12:27:35
Walter
Hallo,
habe folgendes Makro :

Private Sub CommandButton6_Click()
Dim ab   As String
ab = UserForm1.OptionButton.Characters.Caption
MsgBox ab
Suchen = ab
Makro ausführen ....
End Sub


Natürlich Fehlermeldung.
Wie erhalte ich den Namen zurück.
Möchte dann das automatisch ein Makro gestarten wird.
mfg Walter

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable
17.12.2007 12:36:23
Daniel
Hi
normalerweise sollte dashier funktionnieren:
ab = UserForm1.OptionButton.Caption
wobei "Optionbutton" schon genau dem Namen des gewünschten Steuerelements entsprechen muss.
könnte es sein, daß du "Optionbutton1" meinst?
ein Makro ruft man auf, in dem man einfach den Makronamen hinschreibt
besser ist eigentlich die Variante, daß man noch CALL davor schreibt, dann ist deutlicher, was gemeint ist.
also CALL MeinMakro
wichtig ist, daß wenn sich dieses Makro in einem anderen Modul befindet, es als PUBLIC SUB und nicht als PRIVATE SUB deklariert ist.
Gruß, Daniel

Anzeige
Habe mich Falsch ausgedrückt
17.12.2007 13:00:27
Walter
Hallo Daniel,
ich brauch eigentlich den Namen des Activen OptionsButton auf der UF, den ich angeklickt habe!
So habe ich den Namen des Buttons (Schaltfläche) auf einer Tabelle, auch nicht von mir aber klappt !
Dim ww As String
ww = ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Caption
Msgbox ww
mfg Walter

AW: Habe mich Falsch ausgedrückt
17.12.2007 13:09:18
Daniel
Hi
da müsstest du jeden Optionbutton einzeln abfragen, ob sein Wert gerade TRUE oder FALSE ist, also

with userform1
if .optionbutton1 then ab = .optionbutton1.caption
if .optionbutton2 then ab = .optionbutton2.caption
if .optionbutton3 then ab = .optionbutton3.caption
end with


einfacher ist es, wenn du viele Optionbuttons hat, anstelle der vielen Optionbuttons eine Listbox zu verwenden.
wenn du die Eigenschaft "ListStyle" auf 1-fmListstyleOption setzt, sieht sie auch fast aus wie eine Gruppe von Optionbuttons.
die Variablenzuweisung wäre dann einfach:
ab = listbox1.value
Gruß, Daniel

Anzeige
Habe reingesetzt ...
17.12.2007 13:19:30
Walter
Hallo Daniel,
damit klappt es:
with userform1
if .optionbutton1 then ab = .optionbutton1.caption
if .optionbutton2 then ab = .optionbutton2.caption
if .optionbutton3 then ab = .optionbutton3.caption
...
...
end with
habe gedacht mit einer Zeile, na ja.
Könntest Du mir mal ein Beispiel mit der Listbox schicken ?
Habe nicht so recht Verstanden,
mfg Walter

Habe mal was gefunden
17.12.2007 13:13:00
Walter
Hallo Daniel,
habe dies gefunden:

Private Sub OptionButton11_Click()
Dim bn As String
bn = OptionButton11.Caption
MsgBox bn
'Makro:
Call Kopieren           


mfg Walter

Anzeige
AW: Habe mal was gefunden
17.12.2007 13:25:00
Daniel
Hi
probiers mal mit
Application.Run ("Mein Makro")
hier kann mit Stringvariablen gearbeitet weden.
allerdings ist es in den meisten Fällen nicht sinnvoll, für jeden Optionbutton ein eigenes Makro zu schreiben, da oft viele Teile für alle Makro gleich sind (wenn da ein Fehler drin ist, korrigirst du dir nen Wolf)
effektiver ist es meist, genau 1 Makro zu schreiben, den Wert als Parameter ans Makro zu übergeben und dann innerhalb des Makros darauf zu reagieren:
Beispiel:

Sub Marko1
Call Makro2(1)
end Sub



sub Makro2 (Nummer as integer)
select Case Nummer
Case 1
Case 2
Case 3
end select
msgbox 100 * Nummer
end sub


gruß Daniel

Anzeige
Danke für die Tips -)
17.12.2007 14:53:58
Walter
Hallo Daniel,
danke für die Tips, werde jetzt mal Stück für Stück lesen un testen,
mfg Walter

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige