Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
156to160
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
156to160
156to160
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

SOS! Mehrfachauswahl in Listbox teils aufheben?

SOS! Mehrfachauswahl in Listbox teils aufheben?
13.09.2002 11:39:37
thomas
Hallo, ich bins nochmal..

In einer Listbox mit Mehrfachauswahl soll ein Makro prüfen, ob die den Einträgen zugeordneten Variablen, den gleichen Wert haben!
Ist der Wert eines Eintrages nicht gleich, dem zuerst ausgewähltem, dann soll dieser deselektiert werden!

Das Makro macht seine Sache gut, bis auf einen Haken! Wenn der letzte ausgewählte Eintrag nicht mit dem zuerst gewähltem
übereinstimmmt, wird dieser im Dialog nicht deselektiert, sondern bleibt markiert!

Das merkwürdige ist, das die Aufhebung der Markierung nur im aktiven Dialogfenster nicht vorgenommen wird! Im Dialogblatt (dort, wo man den Dialog entwirft) wird die Markierung aufgehoben!

WER HAT EINE IDEE? Screenupdating hilft auch nix.. :-(

Hier das Makro:

Öffentlich RecSelDim Als Ganz
Öffentlich RecSel() Als Ganz
Öffentlich RecSelFirst Als Ganz
Öffentlich Zap(6) Als ZeichenF

Sub TestMakro() ' 1) zuerst ausführen
Setze Dlg = DieseArbeitsmappe.DialogblattListe(1)

Mit Dlg.ListenfeldListe(1)
.AlleEinträgeEntfernen
.EintragHinzufügen Text:="Test1"
Zap(1) = "Test1"
.EintragHinzufügen Text:="Test2"
Zap(2) = "Test2"
.EintragHinzufügen Text:="Test1"
Zap(3) = "Test1"
.EintragHinzufügen Text:="Test4"
Zap(4) = "Test4"
.EintragHinzufügen Text:="Test2"
Zap(5) = "Test2"
.EintragHinzufügen Text:="Test1"
Zap(6) = "Test1"
Ende Mit
Ende Sub

Sub TestListBox() ' 2) Der Listbox zuordnen
Dim i Als Ganz
Dim RecSelLastOK Als Boolesch

Setze Dlg = DieseArbeitsmappe.DialogblattListe(1)

RecSelLastOK = Wahr
RecSelDim = 0
Redim RecSel(RecSelDim)
Mit Dlg.ListenfeldListe(1)
Für i = 1 Bis .Listeneinträge
Wenn .Ausgewählt(i) = Wahr Dann
RecSelDim = RecSelDim + 1
Redim Erhaltend RecSel(RecSelDim)
RecSel(RecSelDim) = i
Ende Wenn
Nächste i
Ende Mit
Wenn RecSelDim > 1 Dann
Für i = 1 Bis RecSelDim
Wenn Zap(RecSelFirst) <> Zap(RecSel(i)) Dann
Dlg.ListenfeldListe(1).Ausgewählt(RecSel(i)) = Falsch
Ende Wenn
Nächste i
SonstWenn RecSelDim = 1 Dann
RecSelFirst = RecSel(1)
Ende Wenn
Ende Sub

Vielen Dank im voraus!!!
mfg Thomas

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
weiter Hilfe nötig!
13.09.2002 20:37:13
Andre
Hallo Thomas,
es wird wohl vor allem daran liegen, dass Excel5 nicht mehr aktuell ist, deutsch nicht, die Dialogblätter sind jetzt userforms...
Wahrscheinlich stimmt die Anzahl der Durchläufe nicht - setze die einfach mal +1. Listenfelder fangen glaube mit dem 0. Feld an.
gruss andre

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige