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

Forumthread: VBA-Variable in UserForm ändern,im Modul verwenden

VBA-Variable in UserForm ändern,im Modul verwenden
02.04.2019 10:20:33
Tobias
Hallo zusammen,
ich möchte eine Variable aus einem Modul in einem UserForm ändern und anschließend damit im Modul weiterarbeiten.
Das UserForm soll als Auswahlmenü gelten und das Resultierende aus dem UserForm soll verarbeitet werden.
Mein Code sieht so aus:

Public Sub FehlerButton_Click()
Dim Fehlerort As Integer ' Variable
FehlerortAmProdukt.Show ' UserForm
Debug.Print Fehlerort ' Check ob Variable korrekt
If Fehlerort  0 Then
MsgBox ("Fehler wurde protokolliert!")
End If
End Sub

Im Userform sieht der Code so aus:

Public Sub BeschriftungButton_Click()
Fehlerort = 120
Unload Me
End Sub

Was vergesse ich bzw. was mache ich falsch?
Vielen Dank und viele Grüße
Tobias
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA-Variable in UserForm ändern,im Modul verwenden
02.04.2019 10:30:15
Nepumuk
Hallo Tobias,
du musst die "Fehlerort" als öffentliche Variable in deinem Modul deklarieren.
Gruß
Nepumuk
AW: VBA-Variable in UserForm ändern,im Modul verwenden
02.04.2019 11:40:07
Tobias
Hallo Nepumuk,
wie genau mache ich das?
Aus den Lösungen im Internet werde ich nicht schlau..... Ich dachte dadurch das mein Sub Public ist geht das schon. Und die Variable selbst nochmals public machen geht ja nicht.
Viele Grüße
Tobi
Anzeige
AW: VBA-Variable in UserForm ändern,im Modul verwenden
02.04.2019 12:09:19
Torsten
doch das geht schon. Im Modul nach ganz oben in die erste Zeile schreiben:
Public Fehlerort As Integer
Gruss Torsten
AW: VBA-Variable in UserForm ändern,im Modul verwenden
02.04.2019 12:58:47
Tobias
Hallo Torsten,
das habe ich gemacht.
Jedoch bleibt der Wert nur innerhalb des UserForms erhalten und außerhalb der UserForm ist es nicht mehr verfügbar.
Woran könnte das liegen?
Viele Grüße
Tobias
Anzeige
AW: VBA-Variable in UserForm ändern,im Modul verwenden
02.04.2019 12:58:48
Tobias
Hallo Torsten,
das habe ich gemacht.
Jedoch bleibt der Wert nur innerhalb des UserForms erhalten und außerhalb der UserForm ist es nicht mehr verfügbar.
Woran könnte das liegen?
Viele Grüße
Tobias
AW: VBA-Variable in UserForm ändern,im Modul verwenden
02.04.2019 13:18:26
Nepumuk
Hallo Tobias,
du musst die Deklaration der Variablen in der Prozedur löschen.
Gruß
Nepumuk
Anzeige
AW: VBA-Variable in UserForm ändern,im Modul verwenden
02.04.2019 13:22:18
Torsten
ach ja. Das natuerlich auch. ;-)
AW: VBA-Variable in UserForm ändern,im Modul verwenden
02.04.2019 13:21:22
Torsten
Du musst natuerlich den Wert aus der Userform wieder an die Variable uebergeben.
Als Beispiel:
Du willst die Variable fuellen aus einer Textbox. Dann vielleicht mit einem Button ausloesen. so der code z.B.:
Private Sub CommandButton1_Click()
a = TextBox1.Value
Call check_Var
End Sub
dann koenntest du im Modul checken, ob der Wert in der Variablen ist:
Sub check_Var()
MsgBox Fehlerort
End Sub
Probier das mal
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA-Variable in UserForm ändern und im Modul verwenden


Schritt-für-Schritt-Anleitung

  1. Deklaration der globalen Variable: Zuerst musst du die Variable als öffentliche Variable im Modul deklarieren. Dies geschieht, indem du ganz oben im Modul folgende Zeile hinzufügst:

    Public Fehlerort As Integer
  2. UserForm erstellen: Erstelle ein UserForm, das als Auswahlmenü dient. Füge einen Button hinzu, um den Wert für die Variable festzulegen.

  3. Wert im UserForm setzen: Im UserForm kannst du den Wert der Variable setzen, indem du den folgenden Code in den Button einfügst:

    Public Sub BeschriftungButton_Click()
       Fehlerort = 120 ' Setze den Wert der globalen Variable
       Unload Me ' Schließe das UserForm
    End Sub
  4. Wert im Modul verwenden: Im Modul kannst du die Variable nach dem Schließen des UserForms verwenden. Hier ein Beispiel:

    Public Sub FehlerButton_Click()
       FehlerortAmProdukt.Show ' Zeige das UserForm an
       Debug.Print Fehlerort ' Überprüfe den Wert der Variable
       If Fehlerort <> 0 Then
           MsgBox ("Fehler wurde protokolliert!") ' Zeige eine Nachricht an
       End If
    End Sub

Häufige Fehler und Lösungen

  • Fehler: Variable bleibt nur innerhalb des UserForms
    Lösung: Stelle sicher, dass die Variable im Modul als Public deklariert ist und die Deklaration innerhalb des UserForms gelöscht wird.

  • Fehler: Wert wird nicht richtig übergeben
    Lösung: Überprüfe, ob der Wert nach dem Schließen des UserForms korrekt zugewiesen wurde und dass die richtige Variable verwendet wird.


Alternative Methoden

Eine alternative Methode zur Verwendung von Variablen in VBA ist die Nutzung von Properties in UserForms. Du kannst öffentliche Eigenschaften erstellen, die den Zugriff auf die Variablen ermöglichen.

Public Property Get GetFehlerort() As Integer
    GetFehlerort = Fehlerort
End Property

Praktische Beispiele

Hier ist ein Beispiel, wie du eine TextBox verwenden kannst, um einen Wert in die Variable zu setzen:

Private Sub CommandButton1_Click()
    Fehlerort = TextBox1.Value ' Fülle die globale Variable mit dem Wert aus der TextBox
    Call check_Var
End Sub

Sub check_Var()
    MsgBox Fehlerort ' Zeige den Wert der Variable an
End Sub

Tipps für Profis

  • Nutze Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler bei der Verwendung von vba userform variable zu vermeiden.
  • Verwende Debug.Print, um die Werte der Variablen während der Entwicklung zu überprüfen. Dies ist besonders nützlich, um sicherzustellen, dass deine variables in vba korrekt gesetzt sind.
  • Halte deinen Code sauber und gut strukturiert, indem du die Logik in verschiedene Subroutinen aufteilst.

FAQ: Häufige Fragen

1. Wie mache ich eine Variable in einem UserForm global?
Um eine Variable in einem UserForm global zu machen, musst du sie im Modul als Public deklarieren und darauf achten, dass sie nicht innerhalb des UserForms erneut deklariert wird.

2. Warum funktioniert mein Code nicht, wenn ich die Variable im UserForm setze?
Stelle sicher, dass du die Variable im Modul als öffentliche Variable deklariert hast und dass du den Wert nach dem Schließen des UserForms korrekt abfragst.

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