Hab da mal wieder eine Herausforderung für euch in VBA.
Ich hab eine UF mit einer Listbox ( Mit mehrheren Spalten) wo der User über Multiselekt mehere eintäge auswählen kann.
Die ausgewählten einträge werden dann per Button in eine Liste eingetragen.
Ich möchte jetzt gerne gewisse Zeilen aus der ListBox auswählen und wenn ich dann bei einer Zeile einen Dbl Click mache, soll mir ersteinmal über
eine Msg Box die Zeile und der Inhalt angezeigt werden. Der Code soll sich dies dann merken, zur weiteren Verarbeitung.
Meine Frage an euch ist dies möglich und wenn ja, Wie?
Du hast in deiner Datei mehrere Userformen und ein paar davon enthalten auch Listboxen. Wenn es sich bei deinem Problem um die Userform WertAus handelt, dann kann ich dir schon sagen, das es mit dem Doppelclick-Ereignis nicht funktioniert, weil es schon ein Click-Ereignis für die Userform gibt.
statt Doppelklick würde ich dann das Rechtsklick Ereignis nutzen.
Was soll denn bei erneuter Auswahl mit dem bisher gespeicherten passieren.
Im Grunde kann mann die Zeile in der Userform Tag Eigenschaft ablegen und von dort bei bedarf ablesen.
statt dem Tag kann man auch globale Variable nehmen. Diese definierst Du in einem Modul, z.B.
Public strMerken As String
und füllst sie dann bei der Aktion in der Listbox.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
02.01.2017, 20:48 (Dieser Beitrag wurde zuletzt bearbeitet: 02.01.2017, 20:48 von michel34497.)
Hallo!
Ich weiß es ist immer schwehr mit mir.
@Schauan
Kannst du mir mal ein Bsp. geben?
Mit meinen Worten gesagt:
Ich möchte gerne:
1. eine mehrfachauswahl in der ListBox2 Uf WartAus machen, was auch geht
2. wenn ich alles in der Listbox2 ausgewählt habe möchte ich
3. mit der rechten Maus Taste (egal wo auf bei mehrfachAuswahl gelickt wird und dies auch selketiert ist)
erstneimal eine das MsgBox aufpopt und sich dies Zeile aus der LIstBox2 gemerkt wird.
Wie kann mann bei Multiselect heraus finden welche zeile mit der recheten Maus Taste angelickt wurde?
ich habe gerade festgestellt, dass es in der Listbox gar kein Rechtsklick Ereignis existiert.
Mit Doppelklick und Andres Anmerkung geht das festhalten des Listeneintrags in einer Variable wie folgt:
In einem allgemeinen Modul an oberster Stelle (uner Option Explicit wenn vorhanden) folgende Variablen Deklaration:
Code:
Public strMerken As String
Und zum Merken nach Doppelklick so:
Code:
Private Sub ListBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
strMerken = WartAus.ListBox2.List(WartAus.ListBox2.ListIndex, 1)
MsgBox strMerken
End Sub
Beim Schließen der Userform würde ich dann die Variable so leeren:
Code:
Private Sub UserForm_Terminate()
strMerken = ""
End Sub
Das Doppelklick Ereignis tritt ein, wenn einer Auswahl per Klick schon getätigt wurde!
ich wünsche Dir und deiner Familie ein gutes neues Jahr. Bezüglich dem Doppelclick: Das dürfte nicht gehen, denn meine Aussage
(30.12.2016, 18:48)Steffl schrieb: .... das es mit dem Doppelclick-Ereignis nicht funktioniert, weil es schon ein Click-Ereignis für die Userform gibt.
hätte so lauten müssen: weil es schon ein Click-Ereignis für die Listbox gibt. Und zuerst springt immer das Click-Ereignis an. Du kommst nie in das DoppelClick-Ereignis.
Was Du beschreibst hatte ich schon richtig verstanden und deshalb hatte ich fälsclich ein RechtsKlick Ereignis vorgeschlagen.
Aber bei Michaels Vorgehensweise kann man tatsächlich Das Klick und Doppelklick Ereignis nutzen.
Er wählt per einfach Klick erst einmal etwas aus.
Nun kann man auf die Auswahl doppel klicken. Man kann auch sagen das Klick Ereignis tritt bei erneutem Klick auf eine Auswahl nicht mehr ein.