Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

ScrollBar.Value

Forumthread: ScrollBar.Value

ScrollBar.Value
23.03.2006 14:43:43
Ronny
Hallo,
ich schon wieder.
Habe wieder mal ein Problem. Ich denke das ist nur ein Fehler im Detail. Aber ich komme nicht weiter und hoffe auf Antwort.
Hier mein verkürzter Code, in welhcem der Fehler besser zu erklären ist.

Private Sub ScrollBar4_Change()
MsgBox ScrollBar4.Value
ScrollBar4.Value = 2
End Sub

Die MsgBox dient dabei nur zur Überwachung.
Scrolle ich mit den Pfeilen z.B. nach unten auf Value = 3, zeigt die MsgBox erwartungsgemäß erst 3, dann springt die ScrollBar auf Value = 2 und die MsgBox zeigt 2. Pfeil nach oben funktioniert entsprechend. Soweit alles in Ordnung.
Scrolle ich dagegen mit der Laufleiste z.B. auf 3, zeigt die MsgBox 3. Die ScrollBar springt danach auf 2 und in der MsgBox wird 2 angezeigt. Soweit ist auch alles in Ordnung. Wenn ich dann die MsgBox wegdrücke, springt aber die ScrollBar aus unerklärlichen Gründen sofort wieder auf 3. Dann erscheint wieder MsgBox 3. Dann springt die ScrollBar wieder auf 2. Dann erscheint wieder MsgBox 2. Erst nachdem ich die MsgBox hier ernut wegdrücke, wird die Anweisung beendet. Das heißt, dass der Vorgang irgendwie zweimal durchlaufen wird. An was kann das liegen und warum tritt dieser Effekt nur bei Betätigen der ScrollBar mit Scrollleiste ein und nicht bei Scrollen mit den Pfeilen.
Danke Ronny
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ScrollBar.Value
23.03.2006 16:01:50
Dieter
Hi,
logisch, durch die Wertzuweisung wird das Change-Ereignis erneut ausgelöst.
Wenn man wüsste, wozu das Ganze gut sein soll, gäbe es ev. ein workaround.
mfg Dieter
AW: ScrollBar.Value
23.03.2006 16:22:30
Ronny
Danke erstmal, dass sich jemand Gedanken gemacht hat.
Ich möchte nun doch nochmal den kompletten Code einstellen. Vielleicht hilft das.

Private Sub ScrollBar4_Change()
If änderung401 = 0 Then
Scroll400_value = UserForm1.ScrollBar4.Value
Konto_füll
End If
If änderung401 = 1 And UserForm1.ScrollBar4.Value <> Scroll400_value Then
wahl = MsgBox("Sie haben bereits Ändern oder Löschen gewählt bzw. eine neue Buchung eingegeben. Wollen Sie diese Eingaben abrechen?", vbYesNo + vbDefaultButton2)
If wahl = vbYes Then
änderung401 = 0
Scroll400Value = UserForm1.ScrollBar4.Value
Konto_füll
Else
MsgBox ("ScrollValue-Variable: " & Scroll400_value & " ; ScrollBar-Value: " & UserForm1.ScrollBar4.Value)
UserForm1.ScrollBar4.Value = Scroll400_value
MsgBox ("ScrollValue-Variable: " & Scroll400_value & " ; ScrollBar-Value: " & UserForm1.ScrollBar4.Value)
End If
End If
End Sub

Danke Ronny
Anzeige
AW: ScrollBar.Value
23.03.2006 16:23:40
Ronny
Sorry "Frage noch offen" vergessen.
AW: ScrollBar.Value
24.03.2006 15:05:41
Dieter
Hi,
das baut doch niemand nach, Makro fehlt, Variablendeklaration nicht nachvollziehbar.
mfg Dieter
;
Anzeige

Infobox / Tutorial

ScrollBar.Value in Excel VBA effektiv nutzen


Schritt-für-Schritt-Anleitung

  1. Öffne dein Excel-Dokument und gehe zu den Entwicklertools. Falls der Reiter nicht sichtbar ist, aktiviere ihn über die Excel-Optionen.

  2. Füge ein UserForm hinzu: Klicke auf "Einfügen" und wähle "UserForm" aus.

  3. Füge eine ScrollBar hinzu: Ziehe die ScrollBar von der Toolbox auf das UserForm.

  4. Doppelklicke auf die ScrollBar, um den VBA-Editor zu öffnen. Hier kannst du den Code für das Change-Ereignis der ScrollBar hinzufügen.

  5. Implementiere den Code: Nutze den folgenden Beispielcode, um die ScrollBar zu steuern und Werte anzuzeigen:

    Private Sub ScrollBar4_Change()
       MsgBox ScrollBar4.Value
       ScrollBar4.Value = 2
    End Sub
  6. Teste deine ScrollBar: Scrolle mit den Pfeilen und der Laufleiste, um die Funktionalität zu überprüfen.


Häufige Fehler und Lösungen

  • Problem: ScrollBar springt unerwartet
    Lösung: Das Change-Ereignis wird erneut ausgelöst, wenn du den Wert der ScrollBar änderst. Vermeide dies, indem du das Event während der Wertänderung deaktivierst. Füge diesen Code hinzu:

    Private Sub ScrollBar4_Change()
       Application.EnableEvents = False
       ScrollBar4.Value = 2
       Application.EnableEvents = True
    End Sub
  • Problem: MsgBox zeigt falsche Werte an
    Lösung: Achte darauf, dass du die Variablen richtig deklarierst und die Logik im Code überprüfst.


Alternative Methoden

Eine alternative Methode zur Steuerung von ScrollBars in Excel VBA ist die Verwendung von Formularsteuerelementen anstelle von ActiveX-Steuerelementen. Diese bieten manchmal eine intuitivere Benutzeroberfläche und einfachere Integration in Excel.


Praktische Beispiele

Hier ist ein einfaches Beispiel, das zeigt, wie du mit einer ScrollBar Werte in einem UserForm steuern kannst:

Private Sub ScrollBar4_Change()
    Dim scrollValue As Integer
    scrollValue = ScrollBar4.Value
    MsgBox "Der aktuelle Wert ist: " & scrollValue
End Sub

Du kannst die ScrollBar auch verwenden, um andere Steuerelemente, wie Labels oder Textfelder, zu aktualisieren:

Private Sub ScrollBar4_Change()
    Label1.Caption = "Aktueller Wert: " & ScrollBar4.Value
End Sub

Tipps für Profis

  • Verwende die UserForm_Initialize Methode, um den Anfangswert der ScrollBar festzulegen:

    Private Sub UserForm_Initialize()
      ScrollBar4.Min = 1
      ScrollBar4.Max = 10
      ScrollBar4.Value = 5
    End Sub
  • Vermeide unnötige MsgBoxen: Wenn du viele Werte anzeigst, kann es hilfreich sein, stattdessen Labels zu verwenden, um die Benutzeroberfläche sauberer zu halten.


FAQ: Häufige Fragen

1. Wie kann ich die ScrollBar in Excel VBA anpassen?
Du kannst die Eigenschaften der ScrollBar im Eigenschaftenfenster des VBA-Editors anpassen, einschließlich Min, Max und Value.

2. Warum wird das Change-Ereignis mehrmals ausgelöst?
Wenn du den Wert der ScrollBar innerhalb des Change-Ereignisses änderst, wird das Ereignis erneut ausgelöst. Verwende Application.EnableEvents = False, um dies zu verhindern.

3. Welche Excel-Version benötige ich für ScrollBars in VBA?
ScrollBars sind in allen modernen Excel-Versionen verfügbar, einschließlich Excel 2010, 2013, 2016 und höher.

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