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

Forumthread: Public Variable - Modul und Userform

Public Variable - Modul und Userform
13.11.2006 12:02:14
Susi79
Hallo,
ich habe schon wieder eine Frage. Es geht darum, dass in einem Programm die Zeilennummer variable vergeben wird, in dieser Zeile werden dann die jeweiligen Werte Spaltenweise eingetragen.
Nun soll über ein Userform unterschieden werden ob es sich um ein Produkt für das Inland oder Ausland handelt. Nach dieser Abfrage wird dann in der jeweiligen Spalte ein I oder A eingetragen. Nach dem Aufruf des Userforms, wird meine Zeilen-Variable allerdigs als Zeile = "" ausgegeben.
Public Zeile As String ist bereits gesetzt.
Kann mir jemand den Schubs in die richtige Richtung geben?
Vielen lieben Dank!
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Public Variable - Modul und Userform
13.11.2006 12:58:57
Ramses
Hallo
"Public Zeile As String "
gehört in ein Makro-Modul AUSSERHALB eines Makros in die erste Zeile, oder, wenn dort schon "Option Explicit" steht, eben in die zweite Zeile :-)
Dann sollte das tun
Gruss Rainer
AW: Public Variable - Modul und Userform
13.11.2006 13:10:36
Susi79
Hallo,
also es tut es noch nicht. Ich denke das Problem liegt bei dem Aufruf und der Übergabe an das Userform?
Hier einmal der Ablauf vereinfacht dargestellt. In "Programme" wird die Variable Zeile ebenfalls benötigt und da sie nicht feststehend ist, wie hier vereinfacht dargestellt, muss ich sie halt übergeben.
Option Explicit
Public Zeile As String

Sub Programm()
Zeile = 65
Call Userform2.show
End Sub

Userform2

Sub Optionsbutton1()
Call Export
End Sub


Sub Export()
spalte AJ = 24
Sheets("Tabelle2")
Cells(Zeile, spalteAJ) = "E"
End Sub

Vielleicht hilft euch das ja meine "verworrenen" Gedanken zuverfolgen ;-)
Vielen Dank für eure bisherige Hilfe.
Anzeige
AW: Public Variable - Modul und Userform
13.11.2006 13:27:18
Ramses
Hallo
Sei mir nicht böse, aber der Code wurde doch noch nicht mal annährend ausprobiert bzw. getestet.
Hab dir den Code mal korrigiert.
So läuft das bei mir problemlos
Option Explicit
Public Zeile As Integer

Sub Programm()
Zeile = 65
Userform2.show
End Sub

'Userform2

Sub Optionsbutton1()
Call Export
End Sub

Deine Variable kann so nicht funktioniert haben, das muss MINDESTENS so heissen
Dim spalteAJ as Integer
und eine Variable darf niemals auseinandergeschrieben sein :-)

Sub Export()
Dim spalteAJ as Integer
spalteAJ = 24
Sheets("Tabelle2").Cells(Zeile, spalteAJ) = "E"
End Sub

Gruss Rainer
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Verwendung von Public Variablen in Excel VBA für Userforms


Schritt-für-Schritt-Anleitung

Um eine Public Variable in Excel VBA korrekt zu verwenden, befolge diese Schritte:

  1. Öffne den VBA-Editor: Drücke ALT + F11.

  2. Füge ein Modul hinzu: Rechtsklicke auf "VBAProject" und wähle "Einfügen" > "Modul".

  3. Definiere die Public Variable: Schreibe die Zeile Public Zeile As Integer ganz oben im Modul, um sicherzustellen, dass die Variable im gesamten Modul verfügbar ist.

    Option Explicit
    Public Zeile As Integer
  4. Erstelle deine Subroutine: Innerhalb deines Moduls erstelle eine Subroutine, die die Variable verwendet:

    Sub Programm()
       Zeile = 65
       Userform2.Show
    End Sub
  5. Verwende die Variable im Userform:

    • Im Userform kannst du die Public Variable wie gewünscht verwenden. Achte darauf, dass das Userform korrekt initialisiert wird.

Häufige Fehler und Lösungen

  • Variable wird nicht erkannt: Stelle sicher, dass die Public Variable im richtigen Modul definiert ist. Sie sollte außerhalb von Subroutinen, aber innerhalb des Moduls platziert werden.

  • Typkonflikte: Wenn du eine Integer-Variable verwendest, stelle sicher, dass du auch den richtigen Typ in der Definition angibst. Zum Beispiel: Public Zeile As Integer.

  • Falsche Schreibweise von Variablennamen: Achte darauf, dass Variablen nicht auseinandergeschrieben werden, wie z.B. spalteAJ und nicht spalte AJ.


Alternative Methoden

Anstelle einer Public Variable kannst du auch Global Variablen verwenden, die in jedem Modul verfügbar sind. Um eine Global Variable zu deklarieren, schreibe:

Global Zeile As Integer

Diese sollte ebenfalls im Modul, aber außerhalb der Subroutinen platziert werden.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du eine Public Variable in einem Userform verwenden kannst:

Option Explicit
Public Zeile As Integer

Sub Programm()
    Zeile = 65
    Userform2.Show
End Sub

'Userform2
Sub Optionsbutton1()
    Call Export
End Sub

Sub Export()
    Dim spalteAJ As Integer
    spalteAJ = 24
    Sheets("Tabelle2").Cells(Zeile, spalteAJ) = "E"
End Sub

In diesem Beispiel wird die Public Variable Zeile verwendet, um Werte in eine bestimmte Zelle einzutragen, basierend auf der Auswahl im Userform.


Tipps für Profis

  • Verwende Option Explicit: Dies zwingt dich, alle Variablen zu deklarieren und hilft, Tippfehler zu vermeiden.
  • Kombiniere Public Variablen mit Userforms: Nutze Public Variables, um Daten zwischen verschiedenen Userforms und Modulen auszutauschen, ohne sie ständig neu zu deklarieren.
  • Dokumentiere deinen Code: Füge Kommentare hinzu, um die Verwendung von Public Variables klar zu machen, insbesondere wenn du mit mehreren Userforms arbeitest.

FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen Public und Global Variablen in VBA?
Public Variablen sind innerhalb eines Moduls verfügbar, während Global Variablen in allen Modulen verfügbar sind.

2. Warum wird meine Public Variable nicht aktualisiert?
Stelle sicher, dass die Variable korrekt deklariert ist und dass die Subroutine, die sie verwendet, tatsächlich aufgerufen wird.

3. Kann ich eine Public Variable in einem Userform verwenden?
Ja, Public Variablen können in Userforms verwendet werden, solange sie im richtigen Modul deklariert sind.

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