Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1052to1056
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Blinken der Scrollbar unterbinden

Blinken der Scrollbar unterbinden
24.02.2009 09:06:36
Nik
Hallo an Alle!
Ich habe eine Userform mit einer Scrollbar erstellt.
Wenn ich nun die Userform aufrufe und die die Scrollbar nach links bzw. nach rechts verschiebe,
dann blinkt sie solange, bis auf ein anderes Objekt geklickt wird.
Kann man das Blinken unterdrücken?
Danke im vorraus und grüße
NIK

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
habe es probiert, bei mir blinkt da nichts.
24.02.2009 09:10:26
Tino
Hallo,
hättest Du ein Beispiel?
Gruß Tino
mit einem Trick
24.02.2009 09:48:03
Tino
Hallo,
ach so ich dachte die Userform selbst hat diese Scrollbar.
Mit einem Trick kann man dies aber auch verhindern.
Habe eine Textbox eingebaut, Height und Width auf 0.
Locked und Enabled auf False und einem kleinen Code in der Scrollbar.
Schau es Dir einfach mal an.
https://www.herber.de/bbs/user/59717.xls
Gruß Tino
Anzeige
Das bringt doch nichts!
24.02.2009 09:54:03
Renee
Hi Nik & Tino,
Wenn die Scrollbar den Focus hat, dann blinkt sie nun mal.
Auch bei Dir Tino, Klick mal in die hellgraue Fläche der Leiste!
Es ist nun mal so, aber auf einer UF dient ja eine Scrollbar normalerweise zu Steuerung eines anderen Kontrollelements. Sie hat also Code im _Change Ereignis und dort kann ja mit .SetFocus wieder das zu steuerende Elemente ausgewählt werden um "das Blinken abzustellen".
GreetZ Renée
AW: Das bringt doch nichts!
24.02.2009 10:04:28
Nik
Hiho!
Ums mal zu veranschaulichen.
Mit der scrollbar auf der uf werden labels und -1- listbox gesteuert.
Das sieht ungefähr so aus:

Private Sub scrollbar1_change()
daystart = scrollbar1.value
scrollbar 'sub scrollbar wird gestartet
End Sub



Private Sub scrollbar()
dim i as integer
with sheets("kon")
for i = 1 to 8 'Acht labels werde befüllt
me("lblday" & i).caption = .cells1,daystart)
next i
end with
End Sub


Und wenn ich nun die scrollbar betätige, werden die labels dynamisch befüllt, aber das Blinken bleibt.
Es ist nicht tragisch aber es "stört" etwas (rein optisch).
Wenns nicht geht, dann ists auch kein Beinbruch ;-)
grüße
Nik

Anzeige
Der Code kann gar nicht laufen...
24.02.2009 10:23:44
Renee
Hi Nik,
Den Code den du präsentierst ist nicht lauffähig, da voller Fehler.
Zudem scheint mir bei dieser Anwendung eine Spinbutton sinnvoller als eine Scrollbar!
Der Code könnt dann (äquivalent zu deinem Ansatz) etwa so lauten:

Private Sub SpinButton1_Change()
Dim lX As Long
With ThisWorkbook.Sheets("kon")
For lX = 1 To 8
Me("lblday" & lX).Caption = .Cells(1, SpinButton1.Value)
Next lX
End With
End Sub


GreetZ Renée

AW: Der Code kann gar nicht laufen...
24.02.2009 10:33:37
Nik
Hi Rene!
Jo, sorry. Hab den code in der Eile abgetippt (nicht kopiert & eingefügt), da der Rechner mit der Excel-Anwendung
nicht mit den I-net verbunden ist. Deshalb sind Fehler drin.
Hab das mit den SpinButton probiert und geht, danke! Gute Alternative
Letzte Frage hierzu:
Kann ich eine Listbox anhand des Spinnbuttons befüllen?
Also die Zeilen sollen anhand der vorhandenen Zeilen (rows.count) befüllt werden und die
Spalten anhand des Spinnbuttons-Wert (1 = Spalte A bis Spalte c; 2 = Spalte B bis Spalte D usw...)?
Ist dies anhand der Rowsource-Eigenschaft möglich?
Danke für eure Mühen...Nik
Anzeige
AW: Das bringt doch nichts!
24.02.2009 10:33:46
Tino
Hallo,
ich kann auch nur damit rumexperimentieren und
schauen was funktioniert und was nicht.
Baut man eine zweite TextBox ein,
blinkt diese nur noch am Anfang und am Ende,
weil dann kein Ereignis mehr ausgelöst wird.
Gruß Tino
AW: Das bringt doch nichts!
24.02.2009 10:41:44
Nik
Diesbezüglich hab ich auch eine unelegante Lösung, bei der sich höchstwahrscheinlich ein vba Profi
die Haare raufen wird ;-)
Und zwar so: Man fügt eine kleine Textbox ein (ziemlich "unsichtbar") und setzt den focus drauf

Private Sub Scrollbar1_Change()
dim inr as integer
txtscrollbar.visible = True
inr = Scrollbar1.value
txtscrollbar.setfocus
txtscrollbar.visible = false
'Restlicher Code
End Sub


So blinkt "das Teil" nicht mehr ;-)

Anzeige
wenn es funktioniert...
24.02.2009 11:06:48
Tino
Hallo,
ist es doch egal ob sich jemand die Haare rauft.
Gruß Tino
AW: wenn es funktioniert...
24.02.2009 11:10:04
Nik
Naja, manchmal denk ich, dass mein "Stil" ziemlich stümperhaft ist ;-)
Hab folgende Frage in dem Beitrag schon mal gestellt, evtl. jemand ne Lösung
Kann ich eine Listbox anhand des Spinnbuttons befüllen?
Also die Zeilen sollen anhand der vorhandenen Zeilen (rows.count) befüllt werden und die
Spalten anhand des Spinnbuttons-Wert (1 = Spalte A bis Spalte c; 2 = Spalte B bis Spalte D usw...)?
Also variabel.
Ist dies anhand der Rowsource-Eigenschaft möglich?
AW: wenn es funktioniert...
24.02.2009 11:44:27
Nik
Jo Genauso nur mehrspaltig.
Habs hinbekommen ;-)
Vielen Dank für eure Mühen
NIK
AW: wenn es funktioniert...
24.02.2009 11:33:01
Daniel
Hi
ja klar, die RowSource-Eigenschaft ist ein String, den du beliebig zusammensetzen kannst, er muss halt nur einem Zellbereich entsprechen.
folgendes Makro müsste in das Change-Event der Scrollbar:

ListBox1.RowSource = Range(Cells(1, SpinButton1.Value), Cells(10, SpinButton1.Value)).Address


Zeilenbereiche ggf. noch anpassen.
sollte sich die Datenquelle auf einem nicht-Aktiven Tabellenblatt befinden, müsste man dieses noch mit angeben:


ListBox1.RowSource = "'Tabelle1'!" & Range(....


Gruß, Daniel

Anzeige
AW: wenn es funktioniert...
24.02.2009 11:41:43
Nik
Der code hat einwandfrei funktioniert.
Vielen Dank
NIK

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige