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