Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.06.2025 22:11:12
24.06.2025 21:29:43
24.06.2025 19:48:50
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Listenfeld in Userform Markierung aufheben

Forumthread: Listenfeld in Userform Markierung aufheben

Listenfeld in Userform Markierung aufheben
06.08.2008 14:35:50
Franz
Hallo zusammen,
ich habe ein Userform mit einem Listenfeld, mit der Multselect Metode können mehre zeilen markiert werden. Mit einem Button "Abbrechen" schließe ich das Userfom mit Unload Me. Funktioniert soweit alles.
Wenn ich mit einem anderen Button auf meinem Tabellensheet das Userform wieder lade sind aber Einträge markiert. Wie kann ich per VBA einrichten das beim öffnen des Userform keine Zeilen in dem Listenfeld markiert sind? Hat jemand eine Idee?
Gruß Franz

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listenfeld in Userform Markierung aufheben
06.08.2008 15:21:00
Horst
Hi,
setzt den Listindex per VBA auf -1
mfg Horst

AW: Listenfeld in Userform Markierung aufheben
06.08.2008 15:32:00
Daniel
Hallo Horst
das funktioniert aber in einer Multiselekt-Listbox nicht.
von einem kritischen Geist wie dir hätte ich da etwas mehr Sorgfalt erwartet.
Gruß, Daniel

AW: Listenfeld in Userform Markierung aufheben
06.08.2008 15:51:17
Horst
Hi,
was mich wundert ist, dass nach einem Unlod Me überhaupt noch eine Markierung beim Neustart
der userform vorhanden sein soll.
mfg Horst

Anzeige
AW: Listenfeld in Userform Markierung aufheben
06.08.2008 15:57:16
Daniel
Hi
und warum hast du das nicht gesagt und stattdessen ne falsche Antwort gegeben?
Gruß, Daniel

AW: Listenfeld in Userform Markierung aufheben
06.08.2008 17:10:00
Horst
Hi,
danke, ich finde dich auch ziemlich gut.
mfg Horst

AW: dann sind wir uns ja einig ;-) owt
06.08.2008 17:20:00
Daniel

Anzeige
AW: Listenfeld in Userform Markierung aufheben
06.08.2008 15:22:00
Daniel
Hi
mit folgendem code:

for i = 0 to Listbox1.Listcount-1
Listbox1.Selected(i) = false
next


du musst mal ausprobieren, wo der Code rein muss, entweder in das Useform-Activate- oder -Initialize-Event.
ggf auch in den code Des Buttons, dann musst du aber die Listbox mit Userform referenzieren (Userform1.Listbox1.Selected(i)=False)
Gruß, Daniel

Anzeige
AW: Listenfeld in Userform Markierung aufheben
06.08.2008 16:06:34
Franz
Vielen Dank für Eure Antworten.
Funkt.
Gruss Franz
Anzeige
Anzeige

Infobox / Tutorial

Markierung im Listenfeld einer Userform aufheben


Schritt-für-Schritt-Anleitung

Um die Markierung im Listenfeld einer Userform in Excel aufzuheben, kannst du folgenden VBA-Code verwenden. Dieser Code sollte in das Userform_Activate- oder Userform_Initialize-Ereignis eingefügt werden:

For i = 0 To Listbox1.ListCount - 1
    Listbox1.Selected(i) = False
Next i

Alternativ kannst du den Code auch in den Button einfügen, der das Userform aufruft. Achte darauf, die Listbox korrekt mit der Userform zu referenzieren:

For i = 0 To Userform1.Listbox1.ListCount - 1
    Userform1.Listbox1.Selected(i) = False
Next i

Häufige Fehler und Lösungen

  1. Markierung bleibt trotz Unload bestehen: Wenn die Markierung auch nach dem Schließen der Userform vorhanden bleibt, überprüfe, ob der Code korrekt im Userform_Activate-Ereignis platziert ist. Der Code muss sicherstellen, dass die Auswahl bei jedem Öffnen des Formulars zurückgesetzt wird.

  2. Code funktioniert nicht bei Multiselect: Bei einer Multiselect-Listbox kann der ListIndex nicht auf -1 gesetzt werden, um die Auswahl aufzuheben. Stattdessen nutze die Schleife, um alle Einträge auf False zu setzen.


Alternative Methoden

Wenn du mit einem Access Listenfeld arbeitest, kannst du die Auswahl ebenfalls aufheben, indem du die Selected-Eigenschaft für jedes Element setzt. Der VBA-Code ist ähnlich, jedoch musst du sicherstellen, dass du die korrekten Objekte verwendest.

Ein anderer Ansatz in Excel ist die Verwendung von Clear oder Reset, um die gesamte Userform zurückzusetzen, aber das kann zusätzliche Elemente zurücksetzen, die du möglicherweise nicht zurücksetzen möchtest.


Praktische Beispiele

Hier ist ein Beispiel, wie du den Code in einem Button-Click-Ereignis verwenden kannst:

Private Sub cmdAbbrechen_Click()
    For i = 0 To Listbox1.ListCount - 1
        Listbox1.Selected(i) = False
    Next i
    Unload Me
End Sub

Das sorgt dafür, dass die Auswahl im Listenfeld aufgehoben wird, bevor die Userform geschlossen wird.


Tipps für Profis

  • Verwende With-Anweisungen, um den Code lesbarer und schneller zu machen:
With Listbox1
    For i = 0 To .ListCount - 1
        .Selected(i) = False
    Next i
End With
  • Halte dein VBA-Projekt sauber, indem du Kommentare hinzufügst, die erklären, warum bestimmte Entscheidungen getroffen wurden.

FAQ: Häufige Fragen

1. Wie kann ich die Markierung in einem Listenfeld in Excel VBA aufheben?
Du kannst die Markierung aufheben, indem du eine Schleife verwendest, die durch alle Elemente des Listenfelds iteriert und die Selected-Eigenschaft auf False setzt.

2. Funktioniert das bei einer Multiselect-Listbox?
Ja, der beschriebene Code funktioniert auch bei einer Multiselect-Listbox. Achte darauf, dass du die Schleife korrekt implementierst.

3. Wo sollte ich den Code platzieren?
Der Code kann im Userform_Activate- oder Userform_Initialize-Ereignis platziert werden, um sicherzustellen, dass die Auswahl bei jedem Öffnen des Formulars zurückgesetzt wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige