Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
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

Label Caption ändern


Betrifft: Label Caption ändern von: Michael
Geschrieben am: 13.06.2019 12:10:17

Hallo,

ich habe eine UserForm erstellt und in dieser ein Label, das seine Bezeichnung (Caption) aus einer Zelle bekommt, so weit so gut. Nun soll über einen Button die Bezeichnung eine Zeile weiter gehen, also sozusagen die nächste Zeile einer Datenbank aufrufen. Ich habe es mit einer For - next Schleife probiert, da rattert es aber nur bis zum Ende durch, ohne Zwischenhalt.

Private Sub CommandButton1_Click()
Dim i As Long
letztezeile = Cells(Rows.Count, 2).End(xlUp).Row

For i = 2 To letztezeile
i = i + 1
Bezeichnung.Caption = Range("B" & i).Value
Next

'UserForm1.Repaint

End Sub

Ich hoffe es kann mir jemand helfen.
Grüße
Michael

  

Betrifft: AW: Label Caption ändern von: Rudi Maintaire
Geschrieben am: 13.06.2019 12:19:59

Hallo,
geht zwar auch eleganter, aber ...

Private Sub CommandButton1_Click()
Dim i As Long
letztezeile = Cells(Rows.Count, 2).End(xlUp).Row

For i = 2 To letztezeile
  if bezeichnung.Caption=cells(i,2) then
    Bezeichnung.Caption = cells(i+1,2).Value
    exit for
  end if
Next

'UserForm1.Repaint

End Sub
Gruß
Rudi


  

Betrifft: AW: Label Caption ändern von: Michael
Geschrieben am: 13.06.2019 12:25:21

Hallo Rudi,

eleganter ist immer schöner, ich würde ja gerne mehr lernen. Deine Version läuft die Zeilen nicht alle nacheinander ab. Es startet immer wieder nach ca. fünf (mal mehr mal weniger) Klicks neu.


  

Betrifft: AW: Label Caption ändern von: Michael
Geschrieben am: 13.06.2019 12:45:05

Ich habe den Grund für das Springen nach 5 Zeilen gefunden. In der Spalte können die gleichen Namen auftauchen und dann fängt es wieder oben an.


  

Betrifft: AW: Label Caption ändern von: Werner
Geschrieben am: 13.06.2019 12:59:02

Hallo Michael,

oder so:

Private Sub CommandButton1_Click()
Dim loLetzte As Long

loLetzte = Cells(Rows.Count, 2).End(xlUp).Row
If Me.Label1.Tag = loLetzte Then
    Me.Label1.Tag = 1
    Me.Label1.Caption = Range("B" & Me.Label1.Tag)
Else
    Me.Label1.Tag = Me.Label1.Tag + 1
    Me.Label1.Caption = Range("B" & Me.Label1.Tag)
End If

End Sub
Wenn der letzte Eintrag erreicht ist, fängt er wieder von vorne an.

Gruß Werner


  

Betrifft: was vergessen von: Werner
Geschrieben am: 13.06.2019 14:06:12

Hallo Michael,

etwas kürzer und vergessen, dass du natürlich im Initialize-Ereignis der Userform den Tag setzen mußt.

Private Sub CommandButton1_Click()
Dim loLetzte As Long

loLetzte = Cells(Rows.Count, 2).End(xlUp).Row
If Me.Label1.Tag = loLetzte Then
    Me.Label1.Tag = 1
Else
    Me.Label1.Tag = Me.Label1.Tag + 1
End If

Me.Label1.Caption = Range("B" & Me.Label1.Tag)

End Sub

Private Sub UserForm_Initialize()
Me.Label1.Tag = 1
Me.Label1.Caption = Cells(1, 2)
End Sub
Gruß Werner


  

Betrifft: AW: Label Caption ändern von: Rudi Maintaire
Geschrieben am: 13.06.2019 12:51:29

Hallo,
dann versuch das:

Private Sub CommandButton1_Click()
  Dim rng As Range
  Set rng = Columns(2).Find(what:=Bezeichnung.Caption, lookat:=xlWhole, LookIn:=xlValues)
  If Not rng Is Nothing Then Bezeichnung.Caption = rng.Offset(1)
End Sub
Gruß
Rudi


  

Betrifft: AW: Label Caption ändern von: Daniel
Geschrieben am: 13.06.2019 15:24:31

Hi
mal als Ansatz:
verwende anstelle des Labels eine Listbox und schreibe die Adresse der verknüpften Zelle in die Eigenschaft ROWSOURCE, am besten in der Form 'Tabelle1'!A1

jetzt wird diese Zelle in der Listbox angezeigt.
Wenn du die Listbox etwas umformatierst (SpecialEffects), sieht sie auch aus wie ein Label.

wenn du jetzt eine Zeile tiefer willst, geht das einfach beispielsweise so:

dim Zelle as Range
set Zelle = Range(Listbox1.RowSource).Offset(1, 0)
Listbox1.RowSource = "'" & Zelle.Worksheet.name & "'!" & Zelle.address
Gruß Daniel


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