Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ComboBox Auswahl in eine Variable übergeben

Forumthread: ComboBox Auswahl in eine Variable übergeben

ComboBox Auswahl in eine Variable übergeben
26.03.2014 11:22:41
Christian
Servus,
folgendes: Ich habe eine Möglichkeit gefunden um die Auswahl vom meiner ComboBox
in eine Variable zu übergeben über folgende Möglichkeit:
Ich habe eine Form mit einer ComboBox und einem Commandbutton.
Beim drücken des Commandbuttons soll die ComboBox Auswahl einer Variable
übergeben werden und die Form soll sich schließen.
Sub PPCCleaner()
Dim regionSel As String
'Form öffnen
Region.Show
'Variable zuweisen
regionSel = Region.ComboBox1.Value
'Form schließen
Unload Region
End Sub
Private Sub CommandButton1_Click()
'Form "verstecken"
Region.Hide
End Sub

Punkt ist: Das Ganze funktioniert so auch, mich würde aber interessieren,
ob es möglich ist den Unload Befehl beim CommandButton_Click auszuführen, so dass die Variable trotzdem einen Wert bekommt.
Geht dies nur mit einer Public Variable?
Vielen Dank für die Infos

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ComboBox Auswahl in eine Variable übergeben
26.03.2014 11:33:30
Oberschlumpf
Hi Christian
du könntest vor dem Unload-Befehl eine andere Sub aufrufen, und den Inhalt der Variablen übergeben:
regionSel = Region.ComboBox1.Value
neueSub regionSel
Unload Region

Aber wenn so, kannst du dir die Variable auch sparen; du kannst ja den Wert aus ComboBox direkt übergeben

neueSub Region.ComboBox1.Value
Unload Region

Aber in beiden Fällen gilt, dass zuerst neueSub abgearbeitet wird, bevor das Userform(ular) region geschlossen wird.
Willst du zuerst das Userform schließen, dann musst du mit einer global deklarierten Variable arbeiten.
Hilfts?
Ciao
Thorsten

Anzeige
AW: ComboBox Auswahl in eine Variable übergeben
26.03.2014 15:47:25
Christian
Mmh ok, dann werde ich wohl auf die globale Variable ausweichen oder es so lassen.
Trotzdem Danke für die zügige Antwort.
;
Anzeige

Infobox / Tutorial

ComboBox Auswahl in eine Variable übergeben


Schritt-für-Schritt-Anleitung

  1. Form erstellen: Erstelle eine UserForm in Excel mit einer ComboBox und einem CommandButton.

  2. VBA-Code hinzufügen: Füge den folgenden VBA-Code in das Codefenster deiner UserForm ein:

    Private Sub CommandButton1_Click()
       Dim regionSel As String
       'Wert der ComboBox in die Variable übertragen
       regionSel = ComboBox1.Value
       'Form schließen
       Unload Me
    End Sub
  3. Form öffnen: Um die Form zu öffnen, kannst du eine andere Subroutine verwenden:

    Sub ShowRegionForm()
       Region.Show
    End Sub
  4. Testen: Führe die ShowRegionForm-Subroutine aus, um sicherzustellen, dass die ComboBox Auswahl korrekt in die Variable regionSel übergeben wird.


Häufige Fehler und Lösungen

  • Fehler: Variable erhält keinen Wert
    Wenn die Variable regionSel keinen Wert erhält, liegt das möglicherweise daran, dass das Formular vor dem Zuweisen des Wertes geschlossen wird. Stelle sicher, dass die Logik im CommandButton so gestaltet ist, dass der Wert vor dem Unload-Befehl zugewiesen wird.

  • Lösung: Deklariere die Variable als Public, wenn du den Wert in einer anderen Subroutine verwenden möchtest.


Alternative Methoden

  • Direkte Übergabe: Anstatt eine Variable zu verwenden, kannst du den Wert der ComboBox direkt an eine andere Subroutine übergeben:

    Private Sub CommandButton1_Click()
       neueSub ComboBox1.Value
       Unload Me
    End Sub
  • Globale Variablen verwenden: Wenn du den Wert der ComboBox auch nach dem Schließen des Formulars benötigst, deklariere die Variable als global:

    Public regionSel As String
    
    Private Sub CommandButton1_Click()
       regionSel = ComboBox1.Value
       Unload Me
    End Sub

Praktische Beispiele

Angenommen, du möchtest den Wert der ComboBox in einer anderen Subroutine verwenden, um eine Nachricht anzuzeigen:

Sub neueSub(selectedValue As String)
    MsgBox "Die ausgewählte Region ist: " & selectedValue
End Sub

Wenn du die UserForm mit einer Auswahl öffnest und den Wert übergibst, erscheint beim Schließen der Form ein MessageBox mit der Auswahl.


Tipps für Profis

  • Verwende Option Explicit: Stelle sicher, dass du Option Explicit am Anfang deiner Module verwendest, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler frühzeitig zu erkennen.
  • Modularisiere deinen Code: Halte deinen Code sauber und modular, indem du logische Abschnitte in separate Subroutinen unterteilst.

FAQ: Häufige Fragen

1. Kann ich die ComboBox Auswahl ohne eine Variable speichern?
Ja, du kannst die Auswahl direkt an eine andere Subroutine übergeben, ohne eine temporäre Variable zu verwenden.

2. Was passiert, wenn ich die UserForm zu früh schließe?
Wenn die UserForm geschlossen wird, bevor der Wert zugewiesen wurde, erhält die Variable keinen Wert. Achte darauf, dass der Zuweisungsbefehl vor dem Unload-Befehl steht.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige