Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1460to1464
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

Mesagebox mit Auswahl

Mesagebox mit Auswahl
30.11.2015 22:34:49
Tobi
Guten Abend.
Ich benötige eine Messagebox mit zwei Auswahlfeldern.
Feld 1 = Auto
Feld 2 = Bus
Nach Auswahl soll die Auswahl in die Variable Auswahl gespeichert werden.
Wie kann man das hinbekommen?
Schönen Abend Tobias

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

Betreff
Datum
Anwender
Anzeige
AW: Mesagebox mit Auswahl
30.11.2015 23:49:17
Matthias
Hallo Tobi,
nimm dafür am besten eine Userform, dort kannst du dir die entsprechenden Buttons basteln. Oder du änderst deine Fragestellung so dass sie mit Ja/Nein beantwortet werden kann, dann kann man auch die herkömliche Messagebox nehmen.
Die Userform wird wie in der Beispielmappe ( https://www.herber.de/bbs/user/101916.xlsm ) über dein Makro gestartet und per Buttonklick einer Variablen (hier "sFahrzeug") ein Wert zugewiesen. Damit diese nach dem Schließen der Userform erhalten bleibt muss sie öffentlich deklariert sein, was erreicht wird indem man statt "Dim" "Public" vor die Variable schreibt und diese Zeile oberhalb des eigentlichen Makros im Modul stehen hat.
Das führt aber auch dazu dass du bei mehrfacher Ausführung Probleme kriegen kannst wenn du die Variable am Ende deines Makros nicht auf Anfang setzt, denn sie behält ja ihren letzten Wert. Bedenke dass bei einem Klick auf das kleine X die Userform geschlossen werden kann ohne einen Wert zu übergeben und du desshalb einen falschen Wert (den vom vorherigen Ausführen) oder auch einen leeren String haben kannst.
lg Matthias

Anzeige
AW: Mesagebox mit Auswahl
01.12.2015 09:27:27
Tobi
Hallo Matthias,
danke. Aber ich bekomme es nicht hin das die Variable sFahrzeug aus dem Userform ins Makro übergeben wird :(
Gruß
TObi

AW: Mesagebox mit Auswahl
01.12.2015 11:16:20
Rudi
Hallo,
für Matthias' Mappe:
in der UF:
Private Sub Commandbutton1_Click()
DeinMakro ActiveControl.Caption
Hide
End Sub
Private Sub Commandbutton2_Click()
DeinMakro ActiveControl.Caption
Hide
End Sub
im Modul:
Sub DeinMakro(sFahrzeug As String)
If sFahrzeug = "" Then
MsgBox "Es wurde kein Fahrzeug gewählt!"
Else
MsgBox "Gewähltes Fahrzeug: " & sFahrzeug
End If
End Sub
Sub start()
UserForm1.Show
End Sub
Gruß
Rudi

Anzeige
AW: Mesagebox mit Auswahl
01.12.2015 11:27:15
Tobi
Hallo, vielen Dank für die Antwort.
Ich müsste aber in das Makro zurück kehren.
Sub DeinMakro()
UserForm1.Show 'Hier wird Auto oder Bus ausgewählt
If sFahrzeug = "Auto" Then
End If
If sFahrzeug = "Bus" Then
End If
sFahrzeug = "" 'am Ende zurücksetzen
End Sub

Gruß Tobi

AW: Messagebox mit Auswahl
01.12.2015 11:56:31
Rudi
Hallo,
dann wie in Matthias Datei beschrieben.
Gruß
Rudi

AW: Messagebox mit Auswahl
01.12.2015 23:01:30
Matthias
Hallo Tobi,
dann nochmal Schritt für Schritt:
1. Userform erstellen und zwei Buttons und ein Bezeichnusfeld einfügen. Deren Beschriftung kannst du ändern indem du F4 drückst und in dem Eigenschaftsfenster die 'Caption' anpasst.
2. Die Klick-Ereignisse in die Userform einfügen. Dazu Rechtsklick auf die Userform - 'Code _ anzeigen'.

Private Sub Commandbutton1_Click()
sFahrzeug = "Auto"
Unload Me
End Sub
Private Sub Commandbutton2_Click()
sFahrzeug = "Bus"
Unload Me
End Sub
3. Die öffentliche Variable anlegen. Dazu folgende Zeile zwingend in ein Modul (nicht in ein _ Tabellenblatt) oberste Zeile kopieren, sonst funktioniert es nicht:

Public sFahrzeug As String
4. In dein Makro an der Stelle wo du deine "Messagebox" haben willst die Userform aufrufen:
UserForm1.Show
Ab jetzt sollte deine Variable den entsprechenden Wert haben und du kannst damit arbeiten.
5. Wir müssen sicherstellen, dass das Makro keinen Mist baut wenn die Userform mit dem kleinen _ X geschlossen wurde. Daher folgendes unter die Zeile UserForm1.Show:

If sFahrzeug = "" Then
MsgBox "Es wurde kein Fahrzeug gewählt!"
Exit Sub 'beende Makro (bzw. Grundeinstellungen vorher vornehmen)
End If
6. Als letzte Zeile in deinem Makro dann die Variable zurücksetzen:
sFahrzeug = ""
Hoffe es war jetzt verständlicher.
lg Matthias
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige