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

ListView Prüfen, ob Zeile ausgewählt

ListView Prüfen, ob Zeile ausgewählt
27.10.2022 18:55:58
Ingo
Liebe VBA-Experten,
ich drehe mich im Kreise und komme nicht mehr weiter :(
Eine Suche hier im Forum oder auch im Internet ergab leider auch nichts, was ich verwenden könnte. Daher nun meine Anfrage bei den Experten ...
Beschreibung:
Ich habe eine Textbox und eine ListView. Mittels Textbox führe ich eine Suche in der ListView durch. Dabei wird die Suche mit jedem eingegebenen Buchstaben verfeinert. Wenn meine Suche erfolgreich ist, kann ich den gesuchten Eintrag in der ListView anklicken und mit einem Button (Add) diese Daten als Grundlage für einen neuen, zusätzlichen Kundeneintrag nehmen. Soweit läuft es prima!
Die Neuanlage eines weiteren Datensatzes soll aber auch ohne Auswahl in der ListView möglich sein - also komplett neue Kundendaten. Über den Add-Button werden aber beide Routinen gesteuert bzw. aufgerufen. Und genau da komme ich nicht mehr weiter.
Das Problem:
Ich habe eine "Sub cmd_add_customer_Click()". In dieser will ich abfragen, ob in der ListView eine Zeile ausgewählt wurde.
In Abhängigkeit der Antwort werden unterschiedliche Aktionen ausgeführt (bspw. werden Basisdaten geladen, wenn ich einen Eintrag aus der ListView auswähle). Im Falle eines komplett neuen Kunden wird lediglich ein Blankoformular - also ohne Basisdaten geladen.
Meine Frage:
Ich suche nach einer Möglichkeit, festzustellen ob der Add-Button gedrückt wurde nachdem eine Zeile in der LV ausgewählt wurde, oder ob der Add-Button gedrückt wurde ohne das zuvor eine Auswahl in der ListView getroffen wurde. Dies sollte eigentlich ganz einfach sein, indem ich die Eigenschaften der ListView auswerte - ich kapituliere nur gerade daran :(
Mit anderen Worten: wie kann ich die ListView abfragen, ob eine Zeile selektiert wurde.
Ich habe es über verschiedene Wege versucht. U. a. auch mittels "

.lsv_add_cust_inf.SelectedItem.SubItems(1)  ""
..."
Unter Verwendung dieser Codezeile erhalte ich folgende Fehlermeldung:
Laufzeitfehler '91': Objektvariable oder With-Blockvariable nicht festgelegt
In der Hoffnung auf eine möglichst einfache Lösung (bin nicht der VBA-Fachmann)...
VG und einen schönen Abend (ich mache jetzt auch Feierabend...)
Ingo

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

Betreff
Datum
Anwender
Anzeige
AW: ListView Prüfen, ob Zeile ausgewählt
27.10.2022 20:10:58
Alwin
Hallo Ingo,
das mach ich in solchen Fällen mit einer Variable.
Lege eine für die ganze Userform gültige Variable z. B. varAngeklickt an.
Im Click Ereignis der ListView weise ich dieser Variable den Wert 1 zu.
In weiteren Ereignissen kann ich dann damit differenziert weitere Abläufe steuern.
z. B. If varAngeklickt = 1 then ..... oder If varAngeklickt = 0 then .....
Gruß Uwe
AW: ListView Prüfen, ob Zeile ausgewählt
27.10.2022 21:46:29
Ingo
Guten Abend Uwe,
vielen Dank für Deine Antwort!
Ja, an eine Variable habe ich auch gedacht. Nur wie werte ich sie aus? Ich habe ja keine 2 Einstiegspunkte. Sobald ich den Add-Button drücke benötige ich eine Info, ob eine Zeile der ListView selektiert wurde. Also über irgend eine Eigenschaft der ListView, die ich auswerten kann. Ich weiß nur nicht welche und wie. Anders geht es aus meiner Sicht nicht.
Beste Grüße und ein gutes Nächtle...
Ingo
Anzeige
AW: ListView Prüfen, ob Zeile ausgewählt
27.10.2022 22:21:35
Alwin
Hallo Ingo,
da wo du in der ListView die Zeile selektierst, setzt du die Variable auf 1 und da wo die Selektierung aufgehoben wird setzt du die Variable auf 0. Dann kannst du über die Abfrage vom Wert 1 entsprechend der Zielstellung agieren.
Anbei ein Beispiel wo die Variable entsprechend verwendet wird.
https://www.herber.de/bbs/user/155905.xlsm
Gruß Uwe
AW: ListView Prüfen, ob Zeile ausgewählt
28.10.2022 09:04:40
Ingo
Guten Morgen Uwe,
abermals vielen Dank für die Antwort.
Ich habe es jetzt deinem Vorschlag folgend mit einer globalen Variablen umgesetzt. Es funktioniert einwandfrei. Ich habe wohl mal wieder zu kompliziert gedacht ;): Ich hatte angenommen, dass unter den Eigenschaften von LV eine dabei ist, mit der es möglich ist, bei Bedarf zu prüfen, ob eine Zeile angeklickt wurde oder nicht.
Mit der von Dir vorgeschlagenen Lösung kann ich prima leben. Besten Dank fürs Augen öffnen :)
VG und ein schönes WE (wenn es soweit ist)
Ingo
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige