VBA Excel Label ändern per Click?

1 Antwort

Die Frage ist etwas knapp formuliert - wenn ich es falsch verstanden habe, bitte noch mal genauer beschreiben.

Ein Label bzw. den angezeigten Text kannst Du mit .caption ändern.
userform1.caption1.label = "mein Text"

Das ist aber vermutlich noch nicht die Herausforderung. Du musst festhalten, wo man im jeweiligen Stück gerade steht. Im einfachsten Fall also wie oft man schon eine Taste gedrückt hat. Der Ablauf, der mit dem Button ausgelöst wird, kann es sich nicht merken. Dieser Ablauf ist mit end Sub vorbei. Einen Wert übergreifend zu speichern  geht mit einer globalen Variablen (public) oder indem man eine Zelle der normalen Tabelle nutzt, um dort die Anzahl zu hinterlegen.

Im Zweifel musst Du noch mal nachhaken oder googlen, wenn das zu knapp ist. Globale Variable als public in einem Modul(!) deklarieren und beim Starten der Userform auf den Anfangswert setzen (z.B. 0 - noch keine Taste gedrückt). bei jedem Tastaturanschlag dann hochzählen. Mit einer case Struktur kannst Du dann den Wert der Variablen abfragen und die nächsten Noten anzeigen.

Das ginge auch mit Bildern, wenn Du nicht die Note als D# anzeigen willst, sondern eben als Bild im Notensystem.

datei = Range("A1").Value & ".jpg"
UserForm1.Image1.Picture = LoadPicture(datei)
Range("A1").Value = Range("A1").Value + 1

Nur als Beispiel: Das läuft ohne globale Variable - in A1 wird die Anzahl der bisherigen Tastaturanschläge hinterlegt. Es wird dann jeweils das Bild 1.jpg, 2.jpg etc. geladen und angezeigt.

Public i As Integer

Sub taste()
Select Case i
Case 1 = userform1.label1.Caption = "C"
Case 2 = userform1.label1.Caption = "D"
End Select
i = i + 1
End Sub

Vermutlich ist jede Taste ein Button. Dann kannst Du die Logik für das Bild bzw. Label in eine eigene Unterprozedur packen (Sub Noteanzeigen) und aus den diversen Abläufen, die hinter der jeweiligen Taste liegen aufrufen (call noteanzeigen)

Ninombre  02.03.2017, 16:37

userform1.caption1.label = "mein Text"

ist natürlich Quark. userform1.label1.caption = "blabla"

0