Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1872to1876
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

Listbox Markierte Zeile Anzeigen

Listbox Markierte Zeile Anzeigen
26.02.2022 05:35:19
oraculix
Hallo Alle!
In meiner Userform habe ich eine einzeilige Listbox und darunter 1 Bild.
Dank Daniel kann ich die Listbox bei Bedarf mit der rechten Maus runterziehen also beliebig vergrößern.
Wenn ich auf das darunterliegende Bild klicke wird es auch in der Listbox angezeigt und markiert.
Aber wenn ich jetzt die Listbox mit der rechten Maus auf eine Zeile verkleinere, wird mir der markierte Eintrag nicht gezeigt. Dieser markierte Eintrag befindet sich unter der ersten Zeile in der Listbox.
Frage:
Wir kann ich der Listbox sagen das sie mir die markierte Zeile anzeigt wenn ich nur eine Zeile habe?
Also die Listbox soll nach oben scrollen in die Sichtbare Zeile
Name der Listbox=Lst_Treffer
'Mit rechter Maus ListBox nach unten oder oben ziehen

Private Sub Lst_Treffer_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Static Yalt As Single
If Button = 2 Then
If Yalt  0 Then
Lst_Treffer.Height = WorksheetFunction.Max(10, Lst_Treffer.Height + (Y - Yalt))
End If
Yalt = Y
End If
End Sub
Gruß
Oraculix

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

Betreff
Datum
Anwender
Anzeige
AW: Listbox Markierte Zeile Anzeigen
26.02.2022 08:34:13
Oberschlumpf
Hi,
such mal in google nach diesem Text:
vba listbox markierung oben
Ciao
Thorsten
AW: Listbox Markierte Zeile Anzeigen
26.02.2022 09:59:59
oraculix
Danke für Deine Antwort da habe ich schon gesucht und sehr viel herumprobiert hat aber alles nix genutzt.
Gruß
Oraculix
AW: Listbox Markierte Zeile Anzeigen
26.02.2022 14:59:05
Oberschlumpf
ähhh?
Guckst du:
Userbild
gleich der 1. Treffer ist dein Treffer, in dem du die richtigen Befehle sehen kannst, die dich zu deinem Wunschziel bringen.
Ja, du kannst den dort gezeigten Code natürlich nicht 1:1 übernehmen, musst selbst ein bisschen nachdenken und entsprechend anpassen, aber ich bin sicher, auch du würdest das schaffen...
Anzeige
AW: Listbox Markierte Zeile Anzeigen
26.02.2022 15:11:36
oraculix
Danke das hab ich schon verucht!
Lst_Treffer.Selected(intPos - 1) = True
Lst_Treffer.TopIndex = intPos - 1
Das bringt gar nichts der Markierte Eintrag bleibt unsichtbar
'Listbox per ToogleButton groß oder kleiner machen

Private Sub ToggleButton1_Click()
Dim intPos As Integer
If ToggleButton1.Value = -1 Then
Lst_Treffer.Height = 170
Else
Lst_Treffer.Height = 13
Call UserForm_Initialize 'das hilft erst nach dem ich auf das Bild klicke
Repaint
End If
End Sub
Gruß
Oraculix
AW: Listbox Markierte Zeile Anzeigen
26.02.2022 15:17:44
Oberschlumpf
tja, dann weiß ich auch nich weiter...ich hatte den Code ja selbst getestet, für mich entsprechend "umgestrickt" - und - ja, die per Code markierte Zeile in der Listbox wird dann in der Testlistbox (mit nur 4 sichtbaren, aber 100 enthaltenen Zeilen) nach oben an die oberste Stelle in der Listbox verschoben...auch alles per Code
ich wünsch dir weiter viel Erfolg!
Anzeige
AW: Listbox Markierte Zeile Anzeigen
26.02.2022 13:23:33
Mullit
Hallo,

In meiner Userform habe ich eine einzeilige Listbox und darunter 1 Bild.
Dieser markierte Eintrag befindet sich unter der ersten Zeile in der Listbox.
Das wirkt irgendwie widersprüchlich, best. auch für andere...lad also am besten ne Bsp.-mappe hoch...;-)
Gruß, Mullit
AW: Listbox Markierte Zeile Anzeigen
26.02.2022 14:51:58
oraculix
Hallo Danke für Deine Antwort!
Ich verstehe zwar nicht wo Du einen Wiederspruch siehst aber versuche es nochmal zu Erklären da es unmöglich ist diese Arbeitsmappe hochzuladen ( kb300 )
Nachdem ich die Listbox wieder auf 1 Zeile mit der rechten Maus verkleinere ist die Markierte Zelle
schon Verschwunden .Die Markierung in der Listbox befindet sich irgendwo darunter . Also nicht mehr sichtbar für mich.
Ich habe mittlerweile Call UserForm_Initialize in den untenstehen Code eingefügt.
Und es funktioniert fast zu 99%.
Erst wenn ich ein Bild anklicke habe ich 100% und die markierte Zeile ist wieder sichtbar und bleibt auch sichtbar. Geht also nicht weiter nach unten wenn ich ein Bild anklicke.
Hier der VBA Code der das nächste Bild lädt!
' Klick auf Imagr24 in Userform1 zeigt nächstes Bild

Private Sub Image24_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Lst_Treffer.ListIndex 
Gruß
Oraculix
Anzeige
AW: Listbox Markierte Zeile Anzeigen
26.02.2022 15:34:49
Mullit
Hallo,
ohne Bsp.-mappe (u. meinen Anwalt...) sag ich nix mehr....;-)
Gruß, Mullit
So Arbeitsmappe hochgeladen!
26.02.2022 16:17:46
oraculix
Danke
Ok habe jetzt die Arbeitsmappe hochgeladen die Bilder nicht.
https://www.herber.de/bbs/user/151420.xlsm
Öffne die Userform und klick oben auf den Pfeil .
Die Listbox wird vergrößert.
Wähle einen beliebigen Film mit der linken Maus und das Bild unten wird Angezeigt(Das Blid kannst natürlich nicht sehen wegen 300kb Beschränkung).
Klick nun wieder auf den Pfeil ganz oben die Listbox wird auf eine Zeile reduziert.
Klick nun auf ein leeres Bild .
Man kann deutlich sehen das der Falsche Bildname in der Listbox angezeigt wird.
Hoffe Du verstehst mich jetzt.
Gruß
Oraculix
Anzeige
AW: So Arbeitsmappe hochgeladen!
26.02.2022 16:39:34
Oberschlumpf
Hi,
guckst du:
https://www.herber.de/bbs/user/151421.xlsm
Nein, sorry, ich habe dir den passenden Code - nicht "vorgekaut"
Ich hab nur an passender Stelle einen Kommentar hinzugefügt, was du dort tun musst.
Kannst von mir denken, was du möchtest, aber anhand deiner Beiträge hab ich schon sehr oft miterlebt, wie du selbst nicht so mitdenken magst, sondern dir viel lieber jeden einzelnen Schritt! von einem von uns diktieren lassen möchtest.
Ja, ich sehe, dass du in VBA noch nicht so viel Ahnung hast; aber es bleibt bei Basiskenntnissen, wenn du nich endlich selbst anfängst, dir Gedanken zu machen!
Und auch ich helf dir ja gern. Ich verrate dir, was genau du wo genau programmieren musst, aber erstellen musst du den Code schon alleine...und ich weiß...du schaffst das! - du schreibst ja selbst in einem anderen deiber Beiträge, dass ich dir immer wieder eine geniale Hilfe bin...
Ciao
Thorsten
Anzeige
Es funktioniert nicht!!!
26.02.2022 17:20:38
oraculix
Hallo Danke für den Versteckten Tipp.
Aber ich bekomme es nicht hin
'Lst_Treffer.Selected = Index Lst_Treffer.TopIndex gescheitert
Lst_Treffer.ListIndex = Lst_Treffer.TopIndex 'tut sich nichts

Private Sub ToggleButton1_Click()
'Listbox per ToogleButton groß oder kleiner machen
Dim intPos As Integer
If ToggleButton1.Value = -1 Then
Lst_Treffer.Height = 170
Else
Lst_Treffer.Height = 13
'HIER, wenn die Listbox verkleinert wird, MUSST DU Lst_Treffer.ListIndex ZUM Lst_Treffer.TopIndex MACHEN!
'Lst_Treffer.Selected = Index Lst_Treffer.TopIndex gescheitert
Lst_Treffer.ListIndex = Lst_Treffer.TopIndex 'tut sich nichts
Repaint
End If
End Sub
Gruß
Oraculix
Anzeige
AW: Es funktioniert nicht!!!
26.02.2022 17:37:06
Daniel
Hi
TopIndex ist die Indexnummer der Listboxzeile, die an erster Stelle angezeigt wird.
Müsste es dann nicht:

Listbox1.TopIndex = Listbox1.ListIndex 
lauten, um die selektierte Zeile an die oberste Stelle zu bringen?
du hast das hier anders rum.
So zumindest für die SingelSelect-Listbox. Bei Multiselect funktioniert der ListIndex nicht richtig, daher müsstest du mit einer Schleife über die Liste gehen und prüfen, was selektiert ist:

for i = 0 to Listbox1.ListCount - 1
if Listbox1.Selected(i) then exit for
next
if i 
Gruß Daniel
Anzeige
AW: Es funktioniert nicht!!!
26.02.2022 17:59:28
oraculix
Servus Daniel Velen Dank!
'Lst_Treffer.TopIndex = Lst_Treffer.ListIndex'Funktioniert nur 1mal nach Bild klick ist er wieder nicht sichtbar
Variante 2 kommt ein Fehler Varaible nicht definiert!

Private Sub ToggleButton1_Click()
If ToggleButton1.Value = -1 Then
Lst_Treffer.Height = 170
Else
Lst_Treffer.Height = 13
'Lst_Treffer.TopIndex = Lst_Treffer.ListIndex'Hunktioniert nur 1mal nach Bild klick ist er wieder nicht sichtbar
For i = 0 To Lst_Treffer.ListCount - 1
If Lst_Treffer.Selected(i) Then Exit For
Next
If i 
Gruß
Oraculix
Danke Daniel Erledigt!
26.02.2022 18:11:05
oraculix
Super Du hast mir den richtigen Weg gezeigt Vielen Dank!
Lst_Treffer.TopIndex = Lst_Treffer.ListIndex habe ich in den untenstehenden Code eingetragen und es geht jetzt.
' Klick auf Imagr24 in Userform1 zeigt nächstes Bild

Private Sub Image24_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Lst_Treffer.ListIndex 
Gruß
Oraculix
Anzeige
AW: Es funktioniert nicht!!!
26.02.2022 17:53:46
Oberschlumpf
Hi,
Lst_Treffer.ListIndex = Lst_Treffer.TopIndex
genau SO WAS meine ich mit mitdenken! :-/
Du willst doch, dass TOPIndex einen Wert erhält - wieso versuchst du dann, den Wert von TOPIndex an wen anders zu übergeben, anstatt, dass du mit ...TOPIndex = ... etwas zuweist?
Ciao
Thorsten

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige