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

ListBox

ListBox
27.06.2015 10:04:54
Rolf
Hallo zusammen,
wie kann ich die Ausgabeadresse bei einer Listbox variabel gestalten?
Das folgende Makro klappt nicht. In der aktiven Spalte werden immer die letzte Adresse und die neue mit dem Wert gefüllt.
Z.B.
Hans in A1 und A7. Nächster Klick
Ute in A7 und A4 usw.
Seltsam ist auch, dass bei jedem Klick in die Listbox F20 um 5 erhöht wird.
Private Sub ListBox1_Click()
Sheets("Tabelle1").ListBox1.LinkedCell = ActiveCell.Address
[f20] = [f20] + 1
End Sub
Gruß Rolf

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ListBox
27.06.2015 14:48:25
Daniel
Hi
das CLICK-Event wird nicht nur dann ausgelöst, wenn der Anwender einen neuen Eintrag auswählt, sondern auch immer dann, wenn der ausgewählte Eintrag geändert wird, egal wie und von wem.
Wenn du im Click-Event selbst den ausgewählten Eintrag änderst, kann sich das Klick-Event auch selber aufrufen und dann wird es mehrfach ausgeführt.
das passiert zum Beispiel dann wenn du mit Sheets("Tabelle1").ListBox1.LinkedCell = ActiveCell.Address die Ausgabezelle änderst und in der neuen Ausgabezelle ein andere Wert drin steht als in der alten.
Gruß Daniel

AW: ListBox
27.06.2015 14:54:55
Rolf
Hallo Daniel,
danke für deine Erklärung.
Gibt es überhaupt die Möglichkeit, die "LinkedCell" - Angabe einer Listbox variabel zu halten?
Gruß
Rolf

Anzeige
AW: ListBox
27.06.2015 15:12:22
Daniel
Hi
klar gibt es die.
du machst das ja.
die Frage ist nur, zu welchem Zeitpunkt bzw mit welchem Event diese Aussgabezelle sinnvollerweise geändert wird und ob für deine anderen Aufgaben (hochzählen des Zählers) das Click-Event das geeignete ist oder ob dafür nicht bessere Events gibt.
du könntest beispielsweise die Ausgabezelle der Listbox auch sofort anpassen, wenn du eine Zelle anklickst, dh im Selection-Change-Event des Tabellenblatts.
die Ausführung des Click-Events kannst du hierbei nicht unterbinden.
Der Workaround hierbei ist, dass man eine modulweit gültige Variable anlegt (Deklartion erfolgt ober halb der Makros), welche dann von allen Makros verwendet werden kann.
Diese Variable befüllt man mit einem bestimmen Wert, wenn das Event trotz auslösung nicht ausführt werden soll.
im Eventmakro fragt man dann zuerst diese Variable ab, und führt den Code nur dann aus, wenn die Variable den passenden Wert hat.
sieht in Etwa so aus:
Option Explicit
Dim KeinClickEvent As Boolean
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
KeinClickEvent = True
ListBox1.LinkedCell = ActiveCell.Address
KeinClickEvent = False
End Sub
Private Sub ListBox1_Click()
If KeinClickEvent Then Exit Sub
[f20] = [f20] + 1
End Sub

sollte das ganze auf unterschiedlichen Tabellenblättern stattfinden und die Codes für das SelectionChange-Event und die Listbox in anderen Modulen liegen, so musst du die Variable KeinClickEvent in einem allgemeinen Modul (modul1) mit der Option "Public" deklarieren:
Option Explicit
Public KeinClickEvent as Boolean
Gruß Daniel

Anzeige
AW: ListBox
27.06.2015 16:09:43
Rolf
Hallo Daniel,
jetzt baue ich deinen Vorschlag ein und muss manches anpassen.
Das dauert bei mir eine Weile und erst dann kann ich ein Erfolgsmeldung starten.
Für deine Hilfe schon mal jetzt herzlichen Dank.
Gruß
Rolf

AW: ListBox
27.06.2015 16:23:04
Rolf
Hallo Daniel,
soweit ich jetzt schon überblicken kann, klappt alles vorzüglich!
Nochmals danke für deine Mühe
Gruß
Rolf

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige