Excel VBA msgbox und checkbox

Hi,
ich habe ein Problem das eigentlich sehr einfach ist.

Ich will den Benutzer des makros fragen, ob er 3-4 bestimmte Dinge machen will.
Ich weiß ungefähr wie das geht.
ne msgbox in der checkboxen drin sind.
Wenn die Checkbox getickt bleibt, kann ich die Variable abfragen und dann das Makro dementsprechen steuern.
Und nun bin ich mit meinem Latein am ende.

option explicit
sub abfrage()
Dim Option1, Option2, Option3, Option4 as checkbox 



If option1.checked then 
 Douselessstuff
Endif
...
If option4.checked then 
 Douselessstuff
Endif

Ich will das die Möglichekit hochpopt, die Checkboxen ausgefüllt sind (standart).
Das ist doch eingentlich nicht soo schwer, nur finde ich nirgendwo etwas vernünftiges.
Vielen Danke für Eure Hilfe,

Hallo Winter,
wir haben scheinbar ein Kommunikationsproblem, ich verstehe grad nur das Gebäude an dem die Bahnhofsuhr hängt :smile:
Vielleicht, wenn du die Anfrage neu formulierst…
Gruß
Reinhard

Ich glaube, Dein Problem ist, dass Du es mit der Messagebox probieren willst, also mit MsgBox. Damit kannst Du natürlich keine Checkboxen realisieren.

Billiglösung: InputBox. Da kann man zwar auch keine Checkboxen integrieren, aber man kann den Nutzer bitten, 1, 2, 3 oder 4 einzugeben. Die Auswahlmöglichkeiten schreibt man dann in den Prompt (mit Zeilenumbrüchen).

Richtige Lösung: Eigenes Formular erstellen. Ist auch nicht schwer. Das Formular wird dann geladen (in diesem Falle als kleiner Dialog), das Ergebnis abgefragt und entsprechend weitergemacht.

Welchen Weg willst Du gehen?

Kristian

Ich will den Benutzer des makros fragen, ob er 3-4 bestimmte
Dinge machen will.
Ich weiß ungefähr wie das geht.
ne msgbox in der checkboxen drin sind.
Wenn die Checkbox getickt bleibt, kann ich die Variable
abfragen und dann das Makro dementsprechen steuern.
Und nun bin ich mit meinem Latein am ende.

Hi Winter,
du brauchst eine UF und 4 Checkboxen.
Im Modul der Userform könnte dies stehen:

Option Explicit
'
Private Sub CheckBox1\_Click()
Call MeinMakro(1, CheckBox1.Value)
End Sub
'
Private Sub CheckBox2\_Click()
Call MeinMakro(2, CheckBox2.Value)
End Sub
'
Private Sub CheckBox3\_Click()
Call MeinMakro(3, CheckBox3.Value)
End Sub
'
Private Sub CheckBox4\_Click()
Call MeinMakro(4, CheckBox4.Value)
End Sub
'
Private Sub CommandButton1\_Click()
Call MeinMakro2
End Sub
'
Private Sub CommandButton2\_Click()
Unload UserForm1
End Sub
'
Private Sub UserForm\_Initialize()
Application.EnableEvents = False
Nein = True
CheckBox1.Value = True
CheckBox2.Value = True
CheckBox3.Value = True
CheckBox4.Value = True
Nein = False
Application.EnableEvents = True
End Sub

in Modul1 könnte stehen:

Option Explicit
Public Nein As Boolean
'
Sub MeinMakro(cb, wert)
If Nein Then Exit Sub
MsgBox "checkbox " & cb & " hat den wert: " & wert
End Sub
'
Sub MeinMakro2()
If UserForm1.CheckBox1.Value = True Then MsgBox "Checkbox1 ist true"
End Sub

Die Variable Nein brauchte ich weil sich UserForm_Initialize nicht um EnableEvents schert :frowning:
Hilft dir das weiter?
Gruß
Reinhard

Ich glaube, Dein Problem ist, dass Du es mit der Messagebox
probieren willst, also mit MsgBox. Damit kannst Du natürlich
keine Checkboxen realisieren.

natürlich

Billiglösung: InputBox. Da kann man zwar auch keine Checkboxen

Richtige Lösung: Eigenes Formular erstellen. Ist auch nicht
schwer. Das Formular wird dann geladen (in diesem Falle als
kleiner Dialog), das Ergebnis abgefragt und entsprechend
weitergemacht.

Kristian

Hi,
Danke für Deine Antwort.
Werde die Lösung mit dem Formular gehen. Aber ich befürchte da werdet Ihr den Code schreiben müssen. Aber da ich das nicht will, (will ja nur Hilffe zu Selbsthilfe), muss ich erst mal ein wenig in irgend einem Buch kramen.
Wenn ich dann konkrete Fagen habe, melde ich mich wieder.
Danke für Deine Hilfe
Winter

Hi Winter,
du brauchst eine UF und 4 Checkboxen.
Im Modul der Userform könnte dies stehen:
… CODE …
Die Variable Nein brauchte ich weil sich UserForm_Initialize
nicht um EnableEvents schert :frowning:
Hilft dir das weiter?

hi Reinhard,
Danke für Deine Antwort.
ich denke ja.
Ungetestet, da momentan 100 Tausend andere Sachen einbrechen.
Danke, ich werde es testen und bei Bedarf mich wieder melden.
mfg
Winter