Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1660to1664
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

Eintrag multiselect Listbox beim Markieren prüfen

Eintrag multiselect Listbox beim Markieren prüfen
17.12.2018 07:31:33
Peter
Guten Morgen ihr Excelspezialisten,
ich befülle eine Listbox (multiselect) mit 29 Spalten.
Nun würde ich gerne eine Prüfung bei Listbox1_Click, wenn eine Zeile ausgewählt wird, dass das Selectieren aufgehoben wird, wenn in Spalte 19 (S) leer ist und wenn in Spalte 26 (Z) = "x".
Ist dies technisch möglich? Könnt ihr mir hier bitte helfen.
Besten Dank
Gruss
Peter

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eintrag multiselect Listbox beim Markieren prüfen
17.12.2018 10:52:30
Peter
Nachtrag:
Hallo ihr Excelspezialisten,
ich habe jetzt ein Makro entwickelt, mit welchem ich einen in der Listbox1 Multiselect markiere und den Wert der ersten Spalte der Listbox in der Tabelle3 suche. Es wird dann der Wert in der 18. Spalte daneben = S geprüft. Falls nicht leer dann exit sub - wenn leer, dann soll für den Eintrag in der Listbox die Markierung aufgehoben werden.
Und genau hier liegt jetzt das Problem.
Private Sub CommandButton11_Click()
Dim I As Integer    'für Auswahl Listbox1 - selectierte Zeile
Dim Beschreibung As String      'für gefundenen Wert
Dim Fundort As Range            'für Fundort in Spalte A
Dim Ziel As Range            'für Ziel = Fundort = in Spalte A + 18 Spalten = Spalte S für  _
E-Mails-Adressen
For I = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(I) = True Then
MsgBox ListBox1.List(I)             'ListBox1.List(I) ist der Suchbegriff - Wert in  _
Spalte suchen und Wert aus Spalte S prüfen
Beschreibung = ListBox1.List(I)
Set Fundort = Worksheets("Tabelle3").Range("A:A").Find(Beschreibung)
MsgBox Fundort.Offset(, 18)     'liest den Wert aus aus gefundener Zelle und 18 dazu =  _
Spalte S für E-Mails
End If
Next
Set Ziel = Fundort.Offset(, 18)
If Ziel = "" Then
MsgBox "Zeilenmarkierung aufheben"       !!! hier ist mein Problem !!!
Else
Exit Sub
End If
End Sub

Könnt ihr mir bitte hierbei helfen.
Noch einen Zusatz: ich probiere dies jetzt in einem Commandbutton aus - aber eigentlich sollte das Prüfereignis beim Markieren erfolgen. Wie ich aber gelesen habe, funktioniert Listbox1_Click bei einer Multiselect-Listbox nicht. Wie kann diese Prüfung automatisch erfolgen?
Besten Dank für eure Hilfe.
Gruss
Peter
Anzeige
AW: Eintrag multiselect Listbox beim Markieren prüfen
17.12.2018 11:02:08
fcs
Hallo Peter,
das Listbox-Click-Ereignis funktioniert hier nicht. Man muss mit dem Change-Ereignis arbeiten.
Allerdings muss man einen Merker setzen, damit das Makro nicht in eine Endlosschleife gerät.
Gruß
Franz
'Code unter dem Tabellenblatt-Code-Modul oder unter dem Userform-Code-Modul
'Deklaration Variable im Modul
Private bolExit As Boolean
'Ereignismakro bei Änderung des Wertes der Listbox
Private Sub ListBox1_Change()
Dim iItem As Integer
If bolExit = True Then Exit Sub
bolExit = True
Application.EnableEvents = False
With Me.ListBox1
For iItem = 0 To .ListCount - 1
If IsEmpty(.List(iItem, 18)) And LCase(.List(iItem, 25)) = "x" Then
.Selected(iItem) = False
End If
Next
End With
Application.EnableEvents = True
bolExit = False
End Sub

Anzeige
AW: Super
17.12.2018 11:13:41
Peter
Hallo Franz,
vielen, vielen Dank für Deine Hilfe. Es funktioniert einwandfrei.
Wünsche noch einen schönen Tag.
Gruss
Peter

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige