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

Forumthread: Userform mit Spinbutton

Userform mit Spinbutton
27.10.2017 10:07:05
Sigrid
Guten Morgen,
ich habe eine kleine Datenbank und damit eine Userform mit Textboxen
erstellt.
Label1 ist die Nummerierung der Datensätze die ab Zelle A3 anfängt.
Jetzt möchte ich gern mittels Spinbutton zum nächsten Datensatz und der soll
dann in der Userform angezeigt werden.
So geht es nicht:
Private Sub xSpinButton1_SpinDown()
ActiveSheet.Range("A3") = ActiveSheet.Range("A3") - 1
UF_Daten.Label1 = ActiveSheet.Range("A3").Value
UF_Daten.Show
End Sub

Private Sub xSpinButton1_SpinUp()
ActiveSheet.Range("A3") = ActiveSheet.Range("A3") + 1
UF_Daten.Label1 = ActiveSheet.Range("A3").Value
UF_Daten.Show
End Sub
Vielleicht hat jemand ein kleines Beispiel.
gruß Sigrid aus r
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
habe dies gefunden, funktioniert aber
27.10.2017 10:29:36
Sigrid
Hallo nochmal,
habe dies gefunden, der nächste Datensatz wird angezeigt,
allerdings möchte ich das der obere Datensatz also in Zeile 3 nicht
weiter nach oben geht.
gruß sigrid r
Private Sub SpinButton1_SpinDown()
ActiveCell.Offset(1, 0).Select
UserForm_Initialize
End Sub
Private Sub SpinButton1_SpinUp()
If ActiveCell.Row = 1 Then _
ActiveCell.Offset(1, 0).Select              'dieser Befehl beugt einem Fehler vor
'falls du in der obersten Zelle nach oben  _
willst
ActiveCell.Offset(-1, 0).Select
UserForm_Initialize
End Sub

Anzeige
AW: habe dies gefunden, funktioniert aber
27.10.2017 11:04:25
JoWE
Hallo Sigrid,
vllt. so wie in diesem einfachen Beispiel, welches Du auf Deine Umgebung umbastelst:
(hier nur unter Verwendung von TextBoxen statt der Label):
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub SpinButton1_SpinDown()
On Error GoTo fb_spinbutton1
TextBox1 = TextBox1.Value - 1
If TextBox1 
Gruß
Jochen
Anzeige
Danke Jochen, habe noch die Lösung.. -)
27.10.2017 11:13:20
Sigrid
Hallo Jochen,
danke für die Unterstützung.
Habe gerade mal selbst rumprobiert und die Lösung gefunden, so das
nach oben nur bis zur Zelle A3 geht.
Private Sub SpinButton1_SpinUp()                ' nach oben
If ActiveCell.Row = 3 Then
Exit Sub
Else
ActiveCell.Offset(-1, 0).Select
End If
UserForm_Initialize
End Sub
mfg gruß sigrid aus r
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Userform mit Spinbutton in Excel VBA


Schritt-für-Schritt-Anleitung

Um einen Spinbutton in einer Excel VBA Userform einzufügen, der es dir ermöglicht, durch Datensätze zu navigieren, folge diesen Schritten:

  1. Userform erstellen: Öffne den VBA-Editor (ALT + F11) und füge eine neue Userform hinzu.
  2. Spinbutton hinzufügen: Ziehe einen Spinbutton aus der Toolbox auf die Userform.
  3. Textbox hinzufügen: Füge eine Textbox hinzu, um den aktuellen Datensatz anzuzeigen.
  4. Code hinzufügen: Füge folgenden Code in den Code-Editor der Userform ein:
Private Sub SpinButton1_SpinUp()
    If ActiveCell.Row > 3 Then
        ActiveCell.Offset(-1, 0).Select
        UserForm_Initialize
    End If
End Sub

Private Sub SpinButton1_SpinDown()
    If ActiveCell.Row < ActiveSheet.Rows.Count Then
        ActiveCell.Offset(1, 0).Select
        UserForm_Initialize
    End If
End Sub

Private Sub UserForm_Initialize()
    TextBox1.Value = ActiveCell.Value
End Sub
  1. Userform anzeigen: Verwende einen Befehl, um die Userform anzuzeigen, zum Beispiel:
Sub ShowUserForm()
    UF_Daten.Show
End Sub

Häufige Fehler und Lösungen

  • Fehler: Userform zeigt falsche Daten an
    Lösung: Stelle sicher, dass die UserForm_Initialize-Methode korrekt implementiert ist, um die aktuellen Daten in die Textbox zu laden.

  • Fehler: Spinbutton funktioniert nicht wie erwartet
    Lösung: Überprüfe die Bedingungen in den Spinbutton-Events, um sicherzustellen, dass sie die richtigen Zeilen ansteuern.


Alternative Methoden

Wenn du keine Userform verwenden möchtest, kannst du auch direkt in einem Arbeitsblatt arbeiten:

  1. Füge einen Spinbutton über die Entwicklertools in dein Excel-Arbeitsblatt ein.
  2. Verknüpfe ihn mit einer Zelle, um die aktuelle Auswahl zu manipulieren.
  3. Nutze die verknüpfte Zelle, um die angezeigten Daten in einer anderen Zelle zu aktualisieren.

Praktische Beispiele

Hier ist ein einfaches Beispiel, das zeigt, wie ein Spinbutton innerhalb einer Userform in Excel VBA verwendet werden kann:

Private Sub SpinButton1_SpinUp()
    If TextBox1.Value < 100 Then
        TextBox1.Value = TextBox1.Value + 1
    End If
End Sub

Private Sub SpinButton1_SpinDown()
    If TextBox1.Value > 0 Then
        TextBox1.Value = TextBox1.Value - 1
    End If
End Sub

In diesem Beispiel wird der Wert in der Textbox erhöht oder verringert, wenn der Spinbutton gedrückt wird.


Tipps für Profis

  • Verwendung von On Error: Implementiere Fehlerbehandlungsroutinen wie On Error Resume Next, um dein Makro robuster zu machen.
  • Datenvalidierung: Füge Logik hinzu, um sicherzustellen, dass die Benutzer nicht aus dem zulässigen Bereich der Daten auswählen können, um Fehler zu vermeiden.
  • Benutzerfreundlichkeit: Optimiere deine Userform mit zusätzlichen Bedienelementen, wie z.B. Schaltflächen, um die Navigation zu erleichtern.

FAQ: Häufige Fragen

1. Warum wird mein Spinbutton nicht richtig aktualisiert?
Stelle sicher, dass die UserForm_Initialize-Methode korrekt aufgerufen wird, nachdem du die Zeile mit dem Spinbutton geändert hast.

2. Kann ich den Spinbutton auch in einer Tabelle verwenden?
Ja, du kannst auch einen Spinbutton verwenden, der direkt mit einer Zelle verknüpft ist, um die Werte in einer Tabelle zu ändern.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige