Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1828to1832
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

Nochmalige Nachfrage Listbox

Nochmalige Nachfrage Listbox
08.05.2021 17:41:31
Guesa
Hallo Forum
bin hier ein wenig am verzweifeln, hatte vor ein paar Tagen schon mal eine Anfrage bezüglich in Listbox suchen gestellt.
Hatte dann den Tipp bekommen in der Listbox- Eigenschaft die Einstellung von 0 - fmMultiSelectSingle in 2 - fmMultiSelectExtended zu ändern, nach der Änderung funktioniert zwar die Suche (Mehrfach Selektierung) aber dann funktioniert das ListBox1_Click nicht mehr (Daten werden nicht mehr in die Textboxen übernommen) jetzt habe ich die letzten Tage selber probiert und das Listbox1_Click z.B. auf einen CommandButton gelegt, jetzt werden die Daten in die Textboxen eingetragen aber wenn ich jetzt in einer Textbox was ändere und auf den Ändern-Button klicke wird der Eintrag zwar geändert aber die Markierung des Datensatzes in der Listbox wird aufgehoben, da beißt sich die Katze in den Schwanz. Ich hoffe das ich mein Problem verständlich erklärt habe. Könntet Ihr bitte in die Datei gucken und eventuelle Änderungen vornehmen, vor ab schon mal ein Danke für Eure Hilfe
Gruß, Guesa
https://www.herber.de/bbs/user/146079.xlsm

35
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nochmalige Nachfrage Listbox
08.05.2021 18:51:06
AndreAndreAndre
Hallo ich habe die Daten als Tabelle formatiert:
Ist eher nur Optik denke ich.
https://www.herber.de/bbs/user/146084.xlsm
Alles funktioniert - finde das Programmschitzel super - werde ich dann später mit der Sortierfunktion - wenn es eine gibt für die Listbox - in meine Videoliste einbauen. Auch die Suchfunktion ist super:)
Verbesserungen könnten sein:
Dein Hauptproblem liegt daran, dass wenn du im Datensatz etwas ändern magst,
mußt Du auf den zu ändernden Datetensatz gehen -
den Datensatz auswählen
und alle Felder unten neu eingeben
und auf ändern klicken.
Ich denke:
Du möchtst nur das Datenfeld vom Datensatz eingeben unten, das geändert werden soll
und die anderen (nicht korrigieretn) ), sollen bei "ändern" klicken übernommen werden.
(ja das ist der einzige gravierende Schönheitsfehler)
Weiß jemand die Umsetzung?
Zusatz 1:
Geburtsdatum ist nur Datumsfeld - wenn kein Datum Fehleranzeige
(hatte schon so meine Problem mit Datum als Textfeld)
Zusatz 2:
Möglichkeit die Daten mit Kopf zu sortieren in der Listbox:
habe da dieses Beispiel gefunden. (kann es aber nicht umsetzen :( )
https://www.youtube.com/watch?v=wEgP4tgfaI4&ab_channel=VBA-KracherHeld-office
https://www.youtube.com/watch?v=W8D6UhjXfKg&ab_channel=VBA-KracherHeld-office
Nicht die Lösung - aber ein kleiner Schritt weiter.
Kann es wer tun :)
oder zeigen :)
oder.. :)
lg Andre
Anzeige
AW: Nochmalige Nachfrage Listbox
08.05.2021 19:23:28
Nepumuk
Hallo Andre,
Held ist nicht zu empfehlen, der kann nicht programmieren, nur verkaufen.
Hier mal ein Beispiel wie du in einer Listbox sortieren kannst:
https://www.herber.de/bbs/user/146086.xlsm
Gruß
Nepumuk
dafür bist Du mein Held :)
08.05.2021 19:36:49
AndreAndreAndre
Aber dafür bist du mein Held :)
Schön gelöst :) genauso meinte ich es :) damit es perfekt ist Sortiereung 1 x 2 x (Spaltenüberschrft) auf und ab - siehe Bild
:) danke wenn es geht :)
https://youtu.be/wEgP4tgfaI4?t=100
Danke und lieben Gruß Andre
Anzeige
AW: Nochmalige Nachfrage Listbox
08.05.2021 20:04:12
Guesa
Hallo Nepumuk
wenn du mich meinen solltest mit, "der kann nicht programmieren" hast du natürlich völlig recht, mit dem verkaufen kann ich jetzt nicht so nachvollziehen.
Auch weiß ich nicht wie du darauf kommst das ich irgend etwas sortieren will. Wenn du in meine Datei mal guckst und mir da helfen könntest wäre das sehr hilfreich für mich, zumal, ich bin mir jetzt nicht sicher, der Code zum suchen von dir ist.
Gruß, Guesa
Anzeige
AW: Nochmalige Nachfrage Listbox
08.05.2021 20:09:57
Nepumuk
Hallo Guesa,
genügt es morgen Früh?
Gruß
Nepumuk
AW: Nochmalige Nachfrage Listbox
08.05.2021 20:18:10
Guesa
Hi Nepumuk
ja klar
Gruß, Guesa
AW: Nochmalige Nachfrage Listbox
08.05.2021 19:54:21
Guesa
Hallo Andre
Nichts für ungut aber ich denke du hast mein Problem nicht ansatzweise verstanden. Das was ich da gemacht ist auch nicht super, sondern laienhaft Codeschnipsel aus dem Forum oder aus dem Netz untereinander kopiert. Versteh mich nicht falsch aber was du da schreibst hat mit einer Hilfe nichts zu tun.
Ich werde auch nicht mehr auf irgendwelche postings von Dir reagieren
wie gesagt nichts für ungut
Gruß, Guesa
Sender - Empfänger Problem :) viel Glück
08.05.2021 19:59:24
AndreAndreAndre
Hallo Guesa!
Ich denke ich habe dein Problem verstanden und noch eine Erweiterung zur Möglichkeit gestellt.
Aber vielleicht hattest Du noch nicht mehr Antworten - weil Deine Fragestellung mit sehr viel Spielraum für Interpretation lag.
Aber ich nehme zur Kenntnis - dass Du keine weiteren Lösungsansätze mehr magst:)
Gerne - ich werde mir das zu Herzen nehmen.
Viel Glück :) eine Lösung erarbeitet ich noch - aber Du wirst diese nicht brauchen.
lg Andre
Anzeige
Offensichtlich liegt das Problem bei Dir! (owT)
08.05.2021 20:56:03
EtoPHG

damit gebe ich gut :)
08.05.2021 22:14:29
AndreAndreAndre
Damit lebe ich gut :) - wenn das wer andere so sieht :)
AW: Nochmalige Nachfrage Listbox
08.05.2021 20:32:44
EtoPHG
Hallo Guesa,
In einer MultiSelect-Listbox funktioniert aber der Doppelklick, darum Lösch den Code des _Click Events und füge ein:

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
With ListBox1
TextBox1 = .List(.ListIndex, 0)
TextBox2 = .List(.ListIndex, 1)
TextBox3 = .List(.ListIndex, 2)
End With
End Sub
Gruss Hansueli
...und PS: Den 3fachen Andre einfach vergessen, der ist eben sowenig zu gebrauchen, wie die Empfehlung von ihm (Held-Office) . Nepumuk hat sich, bzgl. Programmierung, auf Letzteren bezogen, nicht auf Dich! Aber das Gleich gilt natürlich auch für den 3fachen :-)
Anzeige
AW: Nochmalige Nachfrage Listbox
08.05.2021 20:43:49
Guesa
Hallo Hansueli
Ja das hatte ich auch schon ausprobiert, aber wenn ich dann eine Änderung vornehmen möchte, wird die Markierung aufgehoben und die brauche ich um damit direkt weiter zu arbeiten, so muss ich den Datensatz ein zweites mal per Klick auswählen.
Gruß, Guesa
Naja schon fast vergessen, aber wenn ich sowas lese bekomme ich Schnapp Atmung :-)
AW: Nochmalige Nachfrage Listbox
08.05.2021 20:52:38
EtoPHG
Hallo Guesa,
Du willst also beides gleichzeitig verwirklichen?
D.h. in der Suche alle markieren und dann einen selektierten nach dem anderen anzeigen und dann ggf. bearbeiten?
Dazu brauchst du aber nicht unbedingt Klicken oder Doppelklicken.
Ein Ansatz wäre, nach der Suche direkt die erste Fundstelle in den Textboxen anzuzeigen und ggf. ändern.
Wenn mehrere Fundstellen einen zusätzlichen Button [Weiter] um die nächste Fundstelle anzuzeigen und ggf. zu ändern.
Gruess Hansueli
Anzeige
AW: Nochmalige Nachfrage Listbox
08.05.2021 21:00:41
Guesa
Hi Hansueli
Nein nicht mehrere Datensätze, nur den einen den ich dann nach der Suche anwähle.
Gruß, Guesa
AW: Nochmalige Nachfrage Listbox
08.05.2021 21:43:27
EtoPHG
Hi,
Ich verstehe deine untenstehende Antwort nicht.
Und zur obenstehenden: Wenn es nur einen Satz aus den gefundenen geht, kannst du das doch mit dem Doppelklick erreichen.
Warum sollen dann die mehrfach gefundenen, markierten noch markiert bleiben?
Kannst du deine Vorstellungen von Funktionen-Ablauf-Benutzeraktionen mal detailierter beschreiben und v.a. auch den Zusammenhang mit den Fundstellen, wenn mehrere vorhanden sind?
Gruess Hansueli
AW: Nochmalige Nachfrage Listbox
08.05.2021 20:54:28
Guesa
Hi Hansueli
Rein theoretisch könnte ich auch mit den Textboxen weiter arbeiten da bleibt der Eintrag ja erhalten, aber das müsste ich an meinem Arbeitsrechner erst mal am Montag ausprobieren ob das geht.
Gruß, Guesa
Anzeige
oh du willst mich nicht gebrauchen :)
08.05.2021 20:53:38
AndreAndreAndre
:) oje :)
Danke für die Info - welcher Befehl ist der mit dem Click Event den ich ersetzen soll ?
lg Andre
ab froh wäre ich schon wenn ich so gut programmieren könnte wie der Held. Obwohl ich sein Intro nicht aushalte - das mit dem Schiff .. aber :) ok ist halt so
Held kann Makros recorden, aber nicht proggen!
08.05.2021 20:59:48
EtoPHG

AW: Held kann Makros recorden, aber nicht proggen!
08.05.2021 22:16:57
AndreAndreAndre
das kann sein - ich bin zu wenig Profi um das beurteilen zu können
lg Andre
Ein paar Tipps für das Arbeiten mit Listboxen
08.05.2021 22:14:24
Daniel
Hi
um bei einem Multi-Select-Makro auf den Klick des Anwenders zu reagieren, muss man die Events MouseUp und MouseDown verwenden.
im MouseDown hast du den Zustand vor dem Klick, im MouseUp den Zustand nach dem Klick.
(manchmal braucht man beide Informationen, bspw wenn man feststellen will, ob ein Eintrag abgewählt wurde oder neu zu bestehenden Auswahl hinzugekommen ist)
Den ListIndex kannst du bei einer Multiselect_Listbox nicht mehr sinnvoll verwenden, den wenn mehrere Werte ausgewählt sind, kann dieser kein Sinnvolles Ergebnsi mehr haben.
um jetzt festzustellen, ob ein Eintrag ausgewählt ist oder nicht, verwendet man in einer Multiselect-Listbox folgende Schleife:

For i = 0 to Listbox1.ListCount - 1
If Listbox1.Selected(i) then ...
Next
Beispielsweise könntest du erstmal durchzählen, wieviele Einträge ausgewählt sind.
ist es nur einer, dann kannst du die Werte in die unteren Textboxen schreiben und die Option "Ändern" anbieten.
sind es mehrere, dann leerst du die unteren Textfelder und disabelst die Option "Ändern", weil diese dann nicht mehr sinnvoll durchgeführt werden kann.
Gruß Daniel
Anzeige
AW: Ein paar Tipps für das Arbeiten mit Listboxen
09.05.2021 08:53:54
Guesa
Hallo Daniel
Danke Dir für die Tipps, werde ich versuchen umzusetzen
Gruß, Guesa
Alternative zu Multiselect
08.05.2021 23:36:42
ralf_b
Hallo Guesa,
da sich dieses Multiselect als recht umstndlich darstellt, habe ich dir mal eine Lösung implementiert, die ich selbst gerade erst in einer Datenmaske umgesetzt habe. Hier reagiert die Listbox auf die Eintragung in der Suchtextbox direkt und es bleiben nur die Einträge ,welche mit dem Suchbegriff matchen.
https://www.herber.de/bbs/user/146093.xlsm
gruß
rb
AW: Alternative zu Multiselect
09.05.2021 01:49:23
AndreAndreAndre
gefällt mir super gut nur beim Löschen gibt es noch Probleme denke ich lg Andre
Anzeige
AW: Alternative zu Multiselect
09.05.2021 11:51:38
ralf_b
Hallo 3xAndre
die Lösung ist nicht für dich. Aber du darfst gern die Löschproblematik zu einem funktionierenden Code umbauen und diesen dann der Welt präsentieren.
@Guesa, meine Lösung war, wie bereits geschrieben, für eine andere Datenmaske. Diese hatte auch andere Voraussetzungen. Womit die Löschroutine nicht passte. Ein bisschen Arbeit sollte schon noch übrig bleiben. Ich denke die eigentliche Fragestellung wurde aber gut gelöst.
gruß
rb
AW: Alternative zu Multiselect
09.05.2021 09:06:20
Guesa
Hallo Ralf
WoW, Da haste Dir echt viel Arbeit gemacht, und immer wieder bin ich echt beeindruckt wie Ihr Profis das dann auch so für uns Nichtwissende zur Verfügung stellt. Recht herzlichen Dank
Da habe ich erstmal mit zu tun, das überhaupt ein wenig zu verstehen, Dank deiner Doku im Code könnte mir das gelingen :-)
Gruß, Guesa
AW: Alternative zu Multiselect
09.05.2021 12:08:29
ralf_b
Hallo Guesa,
wenn die Arbeit erstmal gemacht wurde, kann man das Ergebnis leicht auf ähnliche Problemstellungen anwenden.
Dies ist hier geschehen.
Die Löschroutine ist noch eine Baustelle und bedarf einer Überarbeitung. Da in deiner Beispieltabelle keine eindeutige ID als Datensatzidentifikator existiert, wird es notwendig sein, die entsprechende Zeile der aus der Tabelle per Suche über alle Einträge umzusetzen. Durch variablen Listboxeinträge kann der Listindex nicht mehr direkt 1:1 übernommen werden, um die entsprechende Tabellenzeile zu löschen.
Dies nur als Hinweis.
gruß
rb
AW: Alternative zu Multiselect
09.05.2021 13:00:22
Guesa
Hallo Ralf
Das löschen funktioniert nach wie vor mit dem Code den ich schon hatte. Bin auch gerade fertig geworden das ganze in meine abgespeckte Originaldatei zu packen. Eintragen, Suchen, Ändern u. Löschen funktioniert jetzt so wie ich es mir vorgestellt habe. Endgültig kann ich morgen mehr dazu sagen wenn ich meine Arbeitsdatei entsprechend geändert habe.
Nochmals ein Danke für Deine Hilfe
Gruß, Guesa
AW: Alternative zu Multiselect
10.05.2021 17:27:49
Guesa
Hallo Ralf
Habe das ganze mal heute eingebaut, und ja die Problematik mit dem löschen ist mir gestern gar nicht aufgefallen da ich das in meiner Arbeitsdatei für die Löschaktion auch nicht vorgesehen hatte. Aufgefallen ist es mir erst beim Ändern, leuchtet mir auch ein, denn beim Suchen wird ja der ListIndex Wert verändert,
gesucht wird z.B. der Name, bei komplett gefüllter Listbox hat er den Wert 6, nach der Suche aber den Wert 1, dieser wird zwar richtig geändert aber der ursprüngliche Wert 1 wird überschrieben bzw. gelöscht. Aber trotz alledem hilft mir das ganze, ich strukturiere diesen Teil meiner Datei um, man kann eben nicht immer alles haben und außerdem hat mir dieses Projekt schon den letzten Nerv geraubt :-), bin froh das es jetzt so läuft wie es ist.
LG, Guesa
AW: Alternative zu Multiselect
10.05.2021 17:39:08
Daniel
Wenn du so arbeitet, solltest du die Zeilennummer der jeweiligen Excelzeile in die Listbox als eigenständige Spalte mit aufnehmen, so dass du diese abfragen kannst und nicht aus dem Listindex ableiten musst.
Damit kannst du dann die Listbox unabhängig von der Exceltabelle filtern und sortieren.
Gruß Daniel
AW: Alternative zu Multiselect
10.05.2021 19:38:45
ralf_b
Hallo Guesa,
es hat mir keine Ruhe gelassen.
Hier eine Löschroutine und die ausgelagerte Function zum Löschen der Tabellezeile

Private Sub löschen_Eintrag_Click()               'Löscht den Eintrag aus der Tabelle bzw. Listbox
Dim indx As Long
If ListBox1.ListIndex = -1 Then Exit Sub
'Sicherheitsabfrage
If vbYes = MsgBox("Soll der Datensatz wirklich gelöscht werden", _
vbExclamation + vbDefaultButton2 + vbYesNo, _
"Datensatz löschen") Then
If delTableRow(ListBox1.ListIndex) Then     'löschen Tabellenzeile
ListBox1.RemoveItem ListBox1.ListIndex 'löschen Listboxzeile
MsgBox "Datensatz wurde gelöscht.", vbInformation + vbOKOnly, "Datensatz löschen"
End If
End If
End Sub
Private Function delTableRow(indx As Long) As Boolean
Dim arSearchData, arTabData, i As Long, cnt As Long, sVal As String, sDataRow As String
'Werte der Listboxzeile in Textvariable schreiben
For cnt = 0 To ListBox1.ColumnCount - 1
sVal = sVal & IIf(sVal = "", "", "|") & ListBox1.List(indx, cnt)
Next
'Tabellendaten in Array schreiben
With Worksheets("Tabelle1")
arTabData = .Range("A2:C" & .Cells(Rows.Count, 1).End(xlUp).Row).Value
End With
'Vergleichsschleife durchlaufen
For i = UBound(arTabData, 1) To LBound(arTabData, 1) Step -1     'Zeilenschleife Array
'Schleife setzt Tabellenzeilenwerte zu Text zusammen
sDataRow = ""
For cnt = LBound(arTabData, 2) To UBound(arTabData, 2)
sDataRow = sDataRow & IIf(sDataRow = "", "", "|") & arTabData(i, cnt)
Next
'Vergleich Listboxwert mit Zeilemwert in Tabelle/Array und Zeile löschen bei Übereinstimmung
If sVal = sDataRow Then
Worksheets("Tabelle1").Range("A" & cnt).Resize(, 3).Delete xlShiftUp
delTableRow = True
Exit Function  'Abbruch der Schleife und verlassen der Function
End If
Next i
delTableRow = False
End Function

AW: Alternative zu Multiselect
11.05.2021 18:39:27
Guesa
Hallo Ralf
Gut das ich noch mal reingeschaut habe.
Als erstes möchte ich dir schreiben, und das meine ich mit großer Hochachtung, Du bist verrückt :-) das du Dich so Engagierst.
Ehrlich gesagt bekomme ich das in meiner Datei nicht umgesetzt, da fehlt mir die Erfahrung. In der Test-Datei die ich hochgeladen habe funktioniert das von dir.
In meiner Datei wird nicht der markierte Datensatz gelöscht sondern der dritte Datensatz darunter. Wenn du damit einverstanden bist ordne ich die Tabelle so wie ich sie hier stehen habe und lade sie in einer neuen Anfrage im Forum nochmal hoch (da ich nicht weiß wie lange diese hier stehen bleibt). Das kann ich aber erst frühestens morgen machen, da ich mehrere Originale erst mal raus löschen muss.
Nochmals Vielen Dank
Gruß, Guesa
AW: Alternative zu Multiselect
11.05.2021 19:23:28
ralf_b
du kannst mir die Originaldatei auch per mail senden, wenn dir das lieber wäre. Leider ist meist zwischen Original und Arbeitskopie ein kleiner aber feiner Unterschied.
AW: Alternative zu Multiselect
11.05.2021 20:02:37
Guesa
Das wäre mir in der Tat lieber. Wie heist deine E-Mail oder wie komme ich da dran
AW: Alternative zu Multiselect
11.05.2021 22:53:50
ralf_b
Hallo
ich dachte das man das Profil hier anklicken könnte. Scheinbar durch das Forenupdate nicht mehr möglich.
ralf_b at wolke7.net

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige