Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Globale Variable per UserForm definieren?

Globale Variable per UserForm definieren?
Jaffi
Hallo Forum,
und mal wieder hänge ich. Ich versuche eine globale Variable per UserForm zu definieren. Die Eingabe der Teamnummer soll dann von einer anderen Prozedur genutzt werden.
Folgender Code klappt leider nicht:

Option Explicit
Public varTeam As Integer
Private Sub CommandButton1_Click()
With UserFormteam
If UserFormteam.TextBox1.Value = "" Then
UserFormteam.Label2.Visible = True
UserFormteam.Label2.Caption = "Bitte geben Sie eine gültige Team-Nummer ein !"
Else
Set varTeam = UserFormteam.TextBox1.Value
Unload Me
End If
End With
End Sub

Er sagt "Objekt eforderlich" und markiert mit "varTeam"
Was mache ich falsch?
Danke für eure Hilfe!
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
lass SET weg! owT
15.07.2009 12:48:32
Rudi
AW: Globale Variable per UserForm definieren?
15.07.2009 13:52:35
Martin
Hallo,
darf ich neugierig fragen woran du programmierst? Hat es etwas mit Sport zu tun? Falls ja, welche Sportart?
Viele Grüße
Martin
AW: Globale Variable per UserForm definieren?
15.07.2009 13:52:38
Martin
Hallo,
darf ich neugierig fragen woran du programmierst? Hat es etwas mit Sport zu tun? Falls ja, welche Sportart?
Viele Grüße
Martin
Anzeige
AW: Globale Variable per UserForm definieren?
15.07.2009 14:19:11
Heinz
Hi,
deklarieren musst du sie in einem Standardmodul, wenn sie wirklich Public sein soll, die Wertzweisung
kannst du in der Userform machen, aber ohne Set.
mfg Heinz
AW: Globale Variable per UserForm definieren?
15.07.2009 18:14:25
Jaffi
Hallo,
das mit dem Set wars schon :/ wer ahnt denn sowas ;)
Vielen Dank!!
;

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

Globale Variablen in Excel VBA richtig definieren


Schritt-für-Schritt-Anleitung

Um eine globale Variable in Excel VBA zu definieren, die von einer UserForm aus genutzt werden kann, folge diesen Schritten:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11 in Excel.
  2. Füge ein Standardmodul hinzu:

    • Klicke im Menü auf Einfügen und wähle Modul.
  3. Deklariere die globale Variable:

    • Schreibe den folgenden Code in das Modul:
    Option Explicit
    Public varTeam As Integer
  4. Erstelle die UserForm:

    • Füge eine UserForm hinzu und platziere ein Textfeld (TextBox1) und einen Button (CommandButton1).
  5. Schreibe den Code für den Button:

    • Klicke auf den Button und füge den folgenden Code hinzu:
    Private Sub CommandButton1_Click()
       If TextBox1.Value = "" Then
           MsgBox "Bitte geben Sie eine gültige Team-Nummer ein!"
       Else
           varTeam = CInt(TextBox1.Value) ' Wert zuweisen ohne Set
           Unload Me
       End If
    End Sub
  6. Nutze die Variable in anderen Prozeduren:

    • Du kannst jetzt varTeam in anderen Modulen oder Prozeduren verwenden.

Häufige Fehler und Lösungen

  • Fehler: "Objekt erforderlich"

    • Lösung: Entferne das Set Schlüsselwort beim Zuweisen von Werten an die globale Variable. Es ist nur für Objekte erforderlich.
  • Fehler: Variable nicht definiert

    • Lösung: Stelle sicher, dass die Variable im richtigen Modul als Public deklariert ist, um sie global verfügbar zu machen.

Alternative Methoden

Wenn du keine globalen Variablen verwenden möchtest, kannst du auch:

  • Public Variable in einem Standardmodul verwenden, um die Sichtbarkeit zu erhöhen.
  • Parameterübergaben in Prozeduren nutzen, um Werte zwischen UserForms und Modulen auszutauschen.

Praktische Beispiele

Hier ist ein einfaches Beispiel, welches die Zuweisung einer Excel VBA globalen Variable demonstriert:

Public varTeam As Integer

Sub SetTeamNumber()
    varTeam = 5 ' Beispielwert zuweisen
End Sub

Sub ShowTeamNumber()
    MsgBox "Die Team-Nummer ist: " & varTeam
End Sub

In diesem Beispiel wird varTeam in der SetTeamNumber-Prozedur gesetzt und kann anschließend in der ShowTeamNumber-Prozedur verwendet werden.


Tipps für Profis

  • Nutze konstante Werte für unveränderliche Daten, indem du Public Const verwendest.
  • Halte deine globalen Variablen auf ein Minimum beschränkt, um den Code übersichtlich zu halten.
  • Verwende prägnante und aussagekräftige Namen für globale Variablen, um die Lesbarkeit des Codes zu verbessern.

FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen Public und Global in VBA? Public und Global haben die gleiche Funktionalität, aber Public wird bevorzugt, da es in einem spezifischen Modul deklariert werden kann.

2. Kann ich eine globale Variable auch in einer UserForm verwenden? Ja, du kannst eine globale Variable in einer UserForm verwenden, solange sie in einem Standardmodul als Public deklariert ist.

3. Was passiert, wenn ich eine globale Variable in einem Modul überschreibe? Die globale Variable behält ihren Wert, bis sie erneut überschrieben wird. Sie ist für alle Module und Prozeduren zugänglich.

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