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

Forumthread: Public Variablen zurücksetzen

Public Variablen zurücksetzen
22.02.2014 08:59:18
Hannelore
Guten Morgen Spezialisten,
in einer UF habe ich mehrere Public Variablen eingesetzt.
Je nach Aufruf durch Button werden die Variablen neu benannt (as String).
z.B Public ZAEHLERSTART = 1000, Public TEXTvZAEHLER = "Proj", Public ZEICHEN= "-"
oder
z.B Public ZAEHLERSTART = 2000, Public TEXTvZAEHLER = "Angebot", Public ZEICHEN= "/"
Dannach werden Combo, oder TextBoxen mit den Variablen eingelesen.
Das klapp alles.
Je nach Eingaben in Comboboxen oder TextBoxen werden die Variablen in einer
TextBox Gesamt angezeigt.
z.B TextBox1 = ZAEHLERSTART & ZEICHEN & TEXTvZAEHLER
Anzeige in TextBox1 = 1000 - Proj
Wenn ich nun die Aufruf ändere werden jedoch die Werte in Textbox1 zunächst beibehalten.
Anzeige in TextBox1 = 2000 - Proj
Ich habe versuch die Variablen zurück zu setzen mit
Die Textbox1 setzte ich immer mit .Value ="" zurück
TEXTvZAEHLER = ""
TEXTvZAEHLER = Empty
TEXTvZAEHLER = vbNullString
Wo liegt hier mein Denkfehler?
Danke!
Gruß und einen schönen Samstag
Hanni

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Public Variablen zurücksetzen
22.02.2014 09:54:09
Hajo_Zi
Hall Hanni,
Du schreibst die neuen Werte nicht in die TextBox. Warum TextBox, sie sollen doch nicht da geändert werden.
Variablen kannst Du nicht neu benennen.

AW: Public Variablen zurücksetzen
22.02.2014 10:53:00
Hannelore
Hallo Hajo,
danke erstmals für Deine Antwort!
Ich habe mich falsch ausgedrückt.
Ich möchte nicht die Variablen neu benennen.
Public ZAEHLERTSTART As String
Public ZEICHEN As String
Public TEXT As String
Public DATUM as string
Private Sub CMD_A1_Click()
ZAEHLERSTART = ""
Zeichen = ""
TEXT = ""
ZAEHLERSTART = 1000
TEXTvZAEHLER = "Proj"
With CBOProj
.AddItem = (ohne)
.Additem = "Proj"
.Additem = "ProjNr"
end with
With CboZeichen
.Additem = ""
.Additem ="-"=
.Additem ="/"=
.listindex = 1
End with
With CboDatum
.Additem = ""
.Additem ="Datum"
.Additem ="DatumNeu"
.listindex = 1
End with
End Sub

Private Sub CBOProj_Change()
Select Case CBOProj.ListIndex
Case 0
TEXT = ""
Case 1
TEXT= "Proj"
Case 2
TEXT= "ProjNr"
end select
call Vorschau
End Sub

Private Sub CBODatum_Change()
Select Case CBODatum.ListIndex
Case 0
DATUM = ""
Case 1
DATUM= "Datum"
Case 2
DATUM= "DatumNeu"
end select
call Vorschau
End Sub

Private Sub CBOZeichen_Change()
Select Case CBOZeichen.ListIndex
Case 0
ZEICHEN = ""
Case 1
ZEICHEN = "-"
Case 1
ZEICHEN = "/"
end select
call Vorschau
End Sub
Sub Vorschau()
Textbox1.value = ""
Textbox1.value = ZAEHLERWERT & ZEICHEN & TEXT & ZEICHEN & DATUM
End Sub
Anzeige in Textbox1 = "1000 - Proj - Datum"
Das ist richtig!
Wenn ich jetzt den Aufruf ändere dann werden die Variablen wieder eingelesen!
Private Sub CMD_A2_Click()
ZAEHLERSTART = ""
ZEICHEN = ""
TEXT = ""
DATUM = ""
ZAEHLERSTART = 2000
TEXTvZAEHLER = "Angebot"
Dann folgt die Prozedur von oben
wenn jetzt das Makro
Call Vorschau dann steht in Textbiox1
Anzeige in Textbox1 = "2000 - Proj - Datum"
Die Anzeige in TextBox1 müsse lauten "2000-Angebot-Monat"
Warum funktioniert das nicht, bzw werden die Werte falsch übernommen.
Danke!
Gruß
Hanni

Anzeige
AW: Public Variablen zurücksetzen
22.02.2014 11:42:22
Hajo_Zi
Hallo Hanni,
Ich baue keine Datei nach, die Zeit hat schon jemand investiert.
Ein Nachbau sieht bestimmt anders aus als das Original.
Ein Link zur Datei wäre nicht schlecht.
Von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)
Der Dateiname sollte was mit dem Problem zu tun haben.
Ich habe mir z.B. einen Ordner angelegt in dem ich alle Dateien aus dem Internet speichere. Bei Dateinamen wie Test..., Mappe…, Beispiel… wird eine vorhandene überschrieben.
Schaue hier, [URL=http://www.ms-office-forum.net/forum/showthread.php?t=58538&highlight=Beitrags-Nr#3]Dateiname im Beitrag[/URL]
das ist nun das Word -Forum, das gilt hier aber auch.
Mal ein Zitat von Hasso:
"Stell dir mal vor, deine Oma schreibt dir zum Geburtstag und sagt, die Geschenke findest du im Päckchen. Darin sind dann aber nur Bilder von den Geschenken - dann wärst du genauso begeistert wie wir jetzt."

Anzeige
AW: Public Variablen zurücksetzen
22.02.2014 12:06:47
Hannelore
Hallo Hajo,
nachfolgend ein Teilauszug meiner UF.
Nach öffen ditte Firmenkunden oder Privat anklicken
und danach die Auswahlen treffen.
Wenn jetzt der Button gewechselt wird und der Zählerstart neu eingetragen dann kommt der Fehler den ich meine.
Danke!
Gruß
Hanni
https://www.herber.de/bbs/user/89389.xlsm

Anzeige
AW: Public Variablen zurücksetzen
22.02.2014 12:06:56
Hannelore
Hallo Hajo,
nachfolgend ein Teilauszug meiner UF.
Nach öffen ditte Firmenkunden oder Privat anklicken
und danach die Auswahlen treffen.
Wenn jetzt der Button gewechselt wird und der Zählerstart neu eingetragen dann kommt der Fehler den ich meine.
Danke!
Gruß
Hanni
https://www.herber.de/bbs/user/89389.xlsm

Anzeige
AW: Public Variablen zurücksetzen
22.02.2014 12:20:29
Hajo_Zi
Hallo Hanni,
das kann ich nicht nachvollziehen, bei mir kommt kein Fehler.
Gruß Hajo

AW: Public Variablen zurücksetzen
22.02.2014 12:27:44
Hannelore
Hallo Hajo,
bei mir kommt der Fehler immer,
Du musst mehrmals zwischen den Firmen und Privatkunden wechseln.
In meiner Original UF habe ich die gleiche Anordnung für 8 verschieden Aufrufe.
Dann muss es an dem Excel 15 liegen oder würde es mir helfen wenn ich die Public Anweisungen
in Dim umwandle und in jedem Steuerelement definiere?
Danke!
Gruß
Hanni

Anzeige
AW: Public Variablen zurücksetzen
22.02.2014 12:40:59
Hajo_Zi
Hallo Hanni,
ich bin dann raus, ich kann keinen Fehler simulieren. Ich benutze auch Version 2013.
Gruß Hajo

Funkt aber sehr unpraktisch
22.02.2014 22:12:10
Hannelore
Hallo,
nachdem ich im Internet auch keine Lösung gefunden habe, habe ich die
UF umgebaut.
Es geht darum dass die UF geöffnet bleibt und man zwischen den Button wählt.
Die Public-Anweisungen in Dim-Anweisungen in die UF gesetzt und alle Sub Anweisungen
ebenfalls in die UF eingebaut.
Beim Button Privatkunden habe ich die Variablen mit ="" geleert.
Beim Firmenbutton habe ich dies nicht getan und dann bleibt der Fehler erhalten.
Die Variablen behalten Ihren Wert bei.
Gibt es keine andere Lösung?
https://www.herber.de/bbs/user/89393.xlsm
Schönen Abend noch,
Gruß
Hanni
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Public Variablen in Excel VBA zurücksetzen


Schritt-für-Schritt-Anleitung

Um Public Variablen in Excel VBA zurückzusetzen, kannst Du folgende Schritte befolgen:

  1. Definiere Deine Public Variablen: Stelle sicher, dass Deine Variablen korrekt im Modul definiert sind, z.B.:

    Public ZAEHLERSTART As String
    Public TEXTvZAEHLER As String
    Public ZEICHEN As String
    Public DATUM As String
  2. Leere die Variablen im Button-Click-Ereignis: Nutze den Code, um die Variablen zurückzusetzen:

    Private Sub CMD_A1_Click()
       ZAEHLERSTART = ""
       ZEICHEN = ""
       TEXTvZAEHLER = ""
       DATUM = ""
       ZAEHLERSTART = 1000
       TEXTvZAEHLER = "Proj"
       ' Weitere Logik hier
    End Sub
  3. Setze die TextBox zurück: Du solltest auch sicherstellen, dass die TextBox, die die Variablen anzeigt, ebenfalls zurückgesetzt wird:

    Private Sub Vorschau()
       TextBox1.Value = "" 
       TextBox1.Value = ZAEHLERSTART & ZEICHEN & TEXTvZAEHLER & ZEICHEN & DATUM
    End Sub
  4. Verwende die Variablen in anderen Subroutinen: Achte darauf, dass Du die Variablen in den entsprechenden Event-Handlern korrekt verwendest, wie z.B. in CBOProj_Change oder CBOZeichen_Change.


Häufige Fehler und Lösungen

  1. Variablen behalten ihren Wert: Wenn die Werte in den Variablen nicht zurückgesetzt werden, stelle sicher, dass Du die Zuweisungen wie ZAEHLERSTART = "" im richtigen Kontext ausführst.

  2. TextBox zeigt falsche Werte an: Überprüfe, dass alle Variablen vor dem Aufruf der Vorschau-Subroutine geleert sind.

  3. Unterschiedliche Excel-Versionen: Manchmal kann der Fehler aufgrund von Unterschieden zwischen Excel-Versionen auftreten. Stelle sicher, dass Du in einer kompatiblen Version arbeitest.


Alternative Methoden

Falls die oben genannten Methoden nicht funktionieren, kannst Du auch die folgenden Ansätze ausprobieren:

  • Verwendung von Dim statt Public: Definiere die Variablen lokal in den Subroutinen, um sicherzustellen, dass sie nicht außerhalb des Kontexts beibehalten werden.

  • Array-Variablen: Wenn Du mehrere Werte speichern möchtest, solltest Du in Erwägung ziehen, Arrays zu verwenden und diese nach jedem Button-Click zurückzusetzen.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie Du die Variablen zurücksetzen kannst:

Public ZAEHLERSTART As String
Public ZEICHEN As String
Public TEXTvZAEHLER As String

Private Sub CMD_A1_Click()
    ZAEHLERSTART = "1000"
    ZEICHEN = "-"
    TEXTvZAEHLER = "Proj"
    Call Vorschau
End Sub

Private Sub CMD_A2_Click()
    ZAEHLERSTART = "2000"
    ZEICHEN = "/"
    TEXTvZAEHLER = "Angebot"
    Call Vorschau
End Sub

Private Sub Vorschau()
    TextBox1.Value = ZAEHLERSTART & ZEICHEN & TEXTvZAEHLER
End Sub

Tipps für Profis

  • Verwalte Deine Variablen: Eine gute Praxis ist es, alle Variablen, die Du in Deinem VBA-Projekt verwendest, in einer zentralen Stelle zu definieren. Das macht die Verwaltung einfacher.

  • Nutze Null oder Empty: Wenn Du eine Variable leeren möchtest, kannst Du auch Set variable = Nothing oder variable = Empty verwenden, um sicherzustellen, dass sie wirklich zurückgesetzt wird.


FAQ: Häufige Fragen

1. Wie kann ich alle Variablen auf einmal leeren?
Du kannst eine Subroutine erstellen, die alle Variablen auf einmal zurücksetzt. Zum Beispiel:

Sub AlleVariablenLeeren()
    ZAEHLERSTART = ""
    ZEICHEN = ""
    TEXTvZAEHLER = ""
    DATUM = ""
End Sub

2. Warum funktionieren meine Änderungen nicht?
Überprüfe, ob Du die Variablen im richtigen Kontext bearbeitest und ob Du alle notwendigen Subroutinen aufrufst, um die Änderungen sichtbar zu machen.

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