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

Label auf Userform immer aktualisieren

Forumthread: Label auf Userform immer aktualisieren

Label auf Userform immer aktualisieren
02.01.2005 20:08:50
Sascha
Hallo EXCEL-Experten,
ich habe eine Userform wo diverse Textboxes und Labels darauf sind. Die Werte die ich in die Textboxen eingebe werden auf meine Tabelle "Kostenvoranschlag" in die Zelle F21, G21 und H21 geschrieben. Diese geschriebenen Werte werden in meiner Zelle I21 zusammengerechnet. Das funktioniert auch soweit ganz gut. Nun habe ich aber auch ein Label in der Userform, welche mir diesen Wert am besten in Euros ständig aktualisiert.
Ich habeauch schon probiert bei mir:

Private Sub UserForm_Initialize()
Label8.Caption = Worksheets("Kostenvoranschlag").Range("I21")
DoEvents
End Sub

Nur leider funktioniert das nur wenn ich die UserForm öffne und nicht wenn diese offen bleibt! Kann mir jemand möglichst schnell helfen, da ich bis Samstag mein Projekt fertig haben muss.
Vielen Dank
Grüße Sascha
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Label auf Userform immer aktualisieren
02.01.2005 20:19:05
Matthias
Hallo Sascha,
hast das UserFrm die Eigenschaft "ShowModal" = False?
wenn nicht, wie wird denn der Inhalt von I21 geändert?
Gruß Matthias
AW: Label auf Userform immer aktualisieren
Sascha
Hallo Matthias,
ja ich hab ShowModal auf true. Zusammenrechnen tut EXCEL in dem ich die Formel =Summe... in die Zelle I21 vorher geschrieben habe.
Anzeige
AW: Label auf Userform immer aktualisieren
02.01.2005 20:30:18
Matthias
Hallo Sascha,
aber durch irgendwechen Code innerhalb der UF muss sich doch I21 ändern...
Hier musst du auch die Label-Caption ändern.
(z.B. TextBox1_Exit() oder so)
Gruß Matthias
AW: Label auf Userform immer aktualisieren
Sascha
Ach ja natürlich, also im Prinzip läuft das so ab:
Ich gebe in die Textbox3 die Stückzahl ein. Diese wird an [Kostenvoranschlag!F21] übergeben bei Textbox3_Change(). Das gleiche passiert mit Textbox4 mit dem Materialpreis wird so an Zelle G21 übergeben. Dann gibts noch eine Textbox für Rabatt in Prozent und diese wird an Zelle H21 übergeben. Und nun rechnet EXCEL mit der Formel in Zelle I21: =(G21+(100-H21)/100*F21).
Nun steht ja schon der richtig berechnete Wert in I21 und diesen dachte ich bei laufender UserForm mir auch gleich auf einem Label anzeigen zu lassen.
Gruß Sascha
Anzeige
AW: Label auf Userform immer aktualisieren
02.01.2005 20:40:55
Matthias
Hallo Sascha,
schreibe den Code zur aktualisierungdes Labels doch in jede Textbox_Change-Prozedur. Besser zu oft, als zu selten...
Gruß Matthias
P.S. Sorry bin etwas in Eile muss die Kinder versorgen :-)
AW: Label auf Userform immer aktualisieren
Sascha
Ja, Ich werd nochmal ein wenig grübeln müssen, da das ziemlich viele Textboxen sind (24) und ich da bereits Fallauswahlen getroffen habe wie z.B. ist das eine Zahl oder Zeichen u.s.w. Aber vielen lieben Dank und viel Spass mit den Kids
Anzeige
AW: Label auf Userform immer aktualisieren
02.01.2005 20:50:10
Matthias
Hallo nochmal,
oder du probierst es mit dem Calculate-Ereignis:
ins Tabellenblatt-Modul:

Private Sub Worksheet_Calculate()
UserForm1.Label8.Caption = Worksheets("Kostenvoranschlag").Range("I21")
End Sub

Gruß Matthias
AW: Label auf Userform immer aktualisieren
Sascha
Du bist ein Ass Matze,
das war es! Na genau so wie ich es haben möchte! Ein Suuuuper Tip.
Grüße Sascha
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Label auf Userform immer aktuell halten


Schritt-für-Schritt-Anleitung

  1. UserForm erstellen: Erstelle eine UserForm mit den benötigten Textboxen und Labels. Achte darauf, dass du ein Label für die Anzeige des Wertes in Euro hast.

  2. Textboxen verknüpfen: Füge in den Change-Ereignissen der Textboxen den Code hinzu, um die Werte in die Zellen F21, G21 und H21 zu übertragen:

    Private Sub TextBox3_Change()
       Worksheets("Kostenvoranschlag").Range("F21").Value = Me.TextBox3.Value
       UpdateLabel
    End Sub
    
    Private Sub TextBox4_Change()
       Worksheets("Kostenvoranschlag").Range("G21").Value = Me.TextBox4.Value
       UpdateLabel
    End Sub
    
    Private Sub TextBox5_Change()
       Worksheets("Kostenvoranschlag").Range("H21").Value = Me.TextBox5.Value
       UpdateLabel
    End Sub
  3. Label aktualisieren: Füge eine Methode hinzu, um das Label zu aktualisieren:

    Private Sub UpdateLabel()
       Me.Label8.Caption = Worksheets("Kostenvoranschlag").Range("I21").Value
    End Sub
  4. UserForm initialisieren: Stelle sicher, dass das Label bei der Initialisierung der UserForm gesetzt wird:

    Private Sub UserForm_Initialize()
       UpdateLabel
    End Sub
  5. ShowModal-Eigenschaft: Setze die Eigenschaft ShowModal der UserForm auf False, damit die UserForm während der Berechnungen offen bleibt.


Häufige Fehler und Lösungen

  • Label aktualisiert sich nicht: Stelle sicher, dass der Code zur Aktualisierung des Labels in jedem TextBox_Change-Ereignis enthalten ist. Wenn der Wert in Zelle I21 sich ändert, sollte das Label auch aktualisiert werden.

  • ShowModal richtig setzen: Wenn die UserForm nicht reagiert, überprüfe die ShowModal-Einstellung. Setze sie auf False, damit die UserForm im Hintergrund bleibt und die Berechnungen ausgeführt werden können.


Alternative Methoden

  1. Worksheet_Calculate-Ereignis: Eine alternative Methode wäre, das Label über das Worksheet_Calculate-Ereignis zu aktualisieren. Füge den folgenden Code in das Modul des Arbeitsblattes ein:

    Private Sub Worksheet_Calculate()
       UserForm1.Label8.Caption = Worksheets("Kostenvoranschlag").Range("I21").Value
    End Sub
  2. Timer verwenden: Du könntest auch einen Timer in der UserForm implementieren, um das Label in regelmäßigen Abständen zu aktualisieren. Dies ist jedoch weniger effizient als die oben genannten Methoden.


Praktische Beispiele

  • Wenn du in die Textbox für die Stückzahl (TextBox3) eine Zahl eingibst, wird der Wert in die Zelle F21 geschrieben. Der gesamte Preis wird dann in Zelle I21 berechnet und das Label zeigt diesen Wert an.

  • Beispielcode für die Berechnung in Zelle I21:

    = (G21 + (100 - H21) / 100 * F21)
  • Das Label zeigt dann den aktuellen Gesamtbetrag in Euro an, der in Zelle I21 steht.


Tipps für Profis

  • Verwende das DoEvents: Manchmal kann das Hinzufügen von DoEvents nach dem Aktualisieren des Labels helfen, die Benutzeroberfläche reaktionsschneller zu machen.

  • Vermeide unnötige Berechnungen: Aktualisiere das Label nur, wenn sich die relevanten Werte geändert haben, um die Performance zu optimieren.


FAQ: Häufige Fragen

1. Wie kann ich das Label in Echtzeit aktualisieren?
Indem du den Code zur Aktualisierung des Labels in jede TextBox_Change-Prozedur einfügst, stellst du sicher, dass das Label immer den aktuellen Wert anzeigt.

2. Was ist der Unterschied zwischen ShowModal = True und False?
Wenn ShowModal auf True gesetzt ist, blockiert die UserForm das Arbeitsblatt, bis sie geschlossen wird. Bei False kannst du weiterhin mit dem Arbeitsblatt interagieren, während die UserForm geöffnet bleibt.

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