Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Label-Caption ändern


Betrifft: Label-Caption ändern
von: Alfred
Geschrieben am: 10.09.2019 20:01:51

Hallo,

ich brauche wieder einmal Hilfe. Zum besseren Verständnis lade ich mein Beispiel hoch.
https://www.herber.de/bbs/user/131963.xlsm

Alles läuft prima und so wie es soll.
Jetzt möchte ich
- entweder in Label6 (statt dem jetzigen Wert) oder
- in einem neuen Label7
folgendes - ohne Click-Ereignis - erreichen:

Wenn WorksheetFunction.RoundDown(((TextBox4.Value) / (Label4.Caption)), 3)
- größer/gleich 0.905 ist, soll im Label6 "immer" stehen.
- kleiner als 0.905 und größer gleich 0.705 ist, soll im Label6 "meistens" stehen.
- kleiner als 0.705 und größer/gleich 0.485, dann "teilweise"
- kleiner als 0.485 und größer/gleich 0.285, dann "kaum"
- kleiner als 0.285, dann "nicht erreicht"

Kann mir da jemand helfen. Ich würde mich sehr freuen.
Gruß,
Alfred

  

Betrifft: AW: Label-Caption ändern
von: 1712348.html
Geschrieben am: 10.09.2019 20:13:15

Hi,

teste mal:

Private Sub Label6_Click()
    Select Case WorksheetFunction.RoundDown(((TextBox4.Value) / (Label4.Caption)), 3)
        Case Is >= 0.905: Label6.Caption = "immer"
        Case Is >= 0.705: Label6.Caption = "meistens"
        Case Is >= 0.485: Label6.Caption = "teilweise"
        Case Is >= 0.285: Label6.Caption = "kaum erreicht"
        Case Else: Label6.Caption = "nicht erreicht"
    End Select
    End Sub
VG, Boris
  

Betrifft: AW: Label-Caption ändern
von: 1712349.html
Geschrieben am: 10.09.2019 20:17:21

Hi
ich würde so vorgehen:
1. statt der Labels nimmst du Listboxen und verknüpfst über die Eigenschaft RowSource mit einer Zelle
die Listboxen kann man so formatieren, dass sie wie Labels aussehen

2. Schreibe dann, wenn du die Labels mit Werten befüllen willst, die Werte nicht ins nicht mehr vorhandene Label, sondern in die Zelle, mit welcher die Listbox verknüpft ist

1 und 2 gilt für die Labels 1-4

3. verknüpfe die Textboxen ebenfalls mit einer Ausgabezelle, entweder über die Eigenschaft ControlSource oder indem du im Change-Event der Textbox den Zahlenwert in eine Zelle schreibst.

4. führe die notwendigen Berechnungen dann im Tabellenblatt mit einer Formel unter Verwendung dieser Zellen durch.

5. lege eine kleine Hilfstabelle an, in welcher du die oben erwänten Texte und deren Grenzwerte auflistest und zwar so:
0,000 nicht erreicht
0,285 kaum
0,485 teilweise
0,705 meintens
0,905 immer

6. schreibe dann in eine Zelle die SVerweisfomel, um das Berechnungsergebnis in den Text umzuwandeln

7. für die Anzeige in der Userform verwendest du wieder eine Listbox, die du über RowSource mit der Zelle mit der SVerweisformel vernküpfst.

Gruß Daniel
0,905

  

Betrifft: AW: Label-Caption ändern
von: 1712352.html
Geschrieben am: 10.09.2019 20:36:56

Hallo Daniel,
danke für Deine Antwort.
Das liest sich sehr gut, aber das übersteigt erst einmal meine Kenntnisse. Dazu bin ich vielleicht auch nicht fit genug.
In meinem einfachen Denken:
Ums Aussehen geht es mir nicht. Ich will nur, dass sich der Wert wie in Label5 bei Änderung in ComboBox1 oder in den Textfeldern 1-3 automatisch anpasst.
Ich hoffe, ich konnte mein Anliegen rüberbringen.
Gruß, Alfred

  

Betrifft: AW: Label-Caption ändern
von: 1712355.html
Geschrieben am: 10.09.2019 20:44:40

das was ich beschrieben habe, erfordert eigentlich die geringsten kenntnisse in VBA, weil du die Hauptarbeit in Excel mit Formeln erledigst.
Gruß Daniel

  

Betrifft: AW: Label-Caption ändern
von: 1712358.html
Geschrieben am: 10.09.2019 20:58:16

Hallo Daniel,
ich wollte vermeiden, dass ich etwas in eine Zelle schreibe, sondern alles in der Userform erledige und danach in das Tabellenblatt speichere.
Gruß, Alfred

  

Betrifft: AW: Label-Caption ändern
von: 1712365.html
Geschrieben am: 10.09.2019 21:26:45

kannst du machen, dass erfordert dann aber mehr Programmieraufwand und -wissen.
und das hast du ja deinen Angaben nach nur begrenzt, also habe ich dir eine Lösung angeboten, die das nur in geringem Umfang benötigt.
Solche Berechnungen kann man ja auf einem zweiten Blatt oder in einem Tabellenbereich, den man ausblendet, ausführen lassen.
Außerdem ist häufig sinnvoll, Werte die sich ändern können (wie beispielsweise die Wertgrenzen für deine Bewertungen) in einer Exceltabelle zu hinterlegen und nicht direkt im Code, weil man sie dann anpassen kann, ohne in den Code eingreifen zu müssen (oder jemand fragt dich, wie die Grenzen sind, dann kannst du einen Screenshot von der Tabelle machen und musst nicht in den Code einsteigen)

Gruß Daniel

  

Betrifft: Ich sehe gerade...
von: 1712374.html
Geschrieben am: 10.09.2019 23:00:53

Hi,

...dass das Change-Event der Combobox1 bereits vorhanden ist.
Bevor ich jetzt noch lange schreibe, habe ich Dir das mal eingebaut.

https://www.herber.de/bbs/user/131965.xlsm

VG, Boris

  

Betrifft: AW: Label-Caption ändern
von: 1712351.html
Geschrieben am: 10.09.2019 20:27:20

Hallo Boris,

das funktioniert so schon ganz super. Ich hätte aber gerne eine elegante Lösung wie mit Label5, denn ich weiß, der Klick wird zu 99,9% vergessen.
Mein jetziges Label6 ändert sich, ohne zu klicken.
Hast Du da eine Idee?
Gruß,
Alfred

  

Betrifft: Dann ändere das auslösende Event...
von: 1712353.html
Geschrieben am: 10.09.2019 20:40:36

Hi,

...z.B. nimm das TextBox-Change-Event.
Der Einfachheit halber hab ich mögliche Fehler erstmal "weggebügelt":

Private Sub TextBox4_Change()
  On Error Resume Next
  Select Case WorksheetFunction.RoundDown(((TextBox4.Value) / (Label4.Caption)), 3)
       Case Is >= 0.905: Label6.Caption = "immer"
       Case Is >= 0.705: Label6.Caption = "meistens"
       Case Is >= 0.485: Label6.Caption = "teilweise"
       Case Is >= 0.285: Label6.Caption = "kaum erreicht"
       Case Else: Label6.Caption = "nicht erreicht"
  End Select
  End Sub
VG, Boris
  

Betrifft: AW: Dann ändere das auslösende Event...
von: 1712356.html
Geschrieben am: 10.09.2019 20:51:26

Hallo Boris,

das funktioniert so, wie ich mir das wünsche.
Wenn ich meine Werte in den Textboxen eingebe, erscheint der richtige Text.
Ändere ich aber dann den Wert in der ComboBox, bleibt der "alte" berechnete Wert. Er sollte sich aber dann auch ändern.
Beispiel:
ComboBox: G
Textfelder 1-3: 10, 11, 12
Der richtige Wert wird berechnet.

Änderung ComboBox: E
Textfelder werden nicht geändert.
Labelwert ändert sich nicht, obwohl die Berechnung jetzt einen anderen Text ergeben muss!

Ich hoffe, ich konnte mein Problem verdeutlichen.

Gruß, Alfred

  

Betrifft: Dann füge der Einfachheit halber ...
von: 1712364.html
Geschrieben am: 10.09.2019 21:18:34

Hi,

...den selben Code zusätzlich in das Change-Ereignis der ComboBox ein.

VG Boris

  

Betrifft: AW: Label-Caption füllen
von: 1712357.html
Geschrieben am: 10.09.2019 20:54:48

Moin Andreas,

setze mal den Code von Boris in eine andere Ereignispozedur von Textbox4,
nachdem du den weiteren Label7 ins Userform eingefügt hast.

Private Sub TextBox4_AfterUpdate()
 Select Case WorksheetFunction.RoundDown(((TextBox4.Value) / (Label4.Caption)), 3)
     Case Is >= 0.905: Label7.Caption = "immer"
     Case Is >= 0.705: Label7.Caption = "meistens"
     Case Is >= 0.485: Label7.Caption = "teilweise"
     Case Is >= 0.285: Label7.Caption = "kaum erreicht"
     Case Else: Label7.Caption = "nicht erreicht"
 End Select
 End Sub

Gruß Gerd
  

Betrifft: AW: Label-Caption füllen
von: 1712360.html
Geschrieben am: 10.09.2019 21:06:30

Hallo Gerd,

ich habe das neue Label eingefügt. Bei der Wahl (ComboBox) und Eingabe in die Textboxen tut sich im Label7 nichts.
Gruß, Alfred

Beiträge aus dem Excel-Forum zum Thema "Label-Caption ändern"