Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Listbox nach Änderung Zeile markieren

Forumthread: Listbox nach Änderung Zeile markieren

Listbox nach Änderung Zeile markieren
10.08.2017 17:38:25
Peter
Hallo ihr Excelspezialisten,
ich benötige wieder einmal eure Hilfe.
Ich habe in der UF eine Listbox - markiere Zeile und übertrage die Daten in Textboxen.
Nach Änderung wird in der letzten Spalte L ein Wort eingefügt.
Es soll nun beim Aktualisieren der Listbox die Zeile markiert werden, welche der vorher markierten Zeile folgt.
Mit nachstehenden Zeilen im Code wird die Listbox aktualisiert:
With ListBox2
Call Array_fuellen2
.Clear
.Column = aTmp2
End With
Besten Dank für eure Hilfe.
Gruss
Peter
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox nach Änderung Zeile markieren
10.08.2017 20:34:28
Matthias
Hallo!
Wenn ich das richtig verstehe,müsstest du vorher den markierten Berich speichern, dann eins addieren und wieder markieren
bspw. so:
'Markierung speichern
letztezeile = Me.ListBox2.ListIndex
... Code
'wieder markieren
Me.ListBox1.Selected(letztezeile +1 ) = True
VG
Anzeige
AW: Listbox nach Änderung Zeile markieren
11.08.2017 08:19:08
Peter
Hallo Matthias,
besten Dank für Deine Hilfe.
Gruss
Peter
;
Anzeige

Infobox / Tutorial

Listbox in Excel: Zeile nach Änderung markieren


Schritt-für-Schritt-Anleitung

Um die gewünschte Funktionalität in Excel zu implementieren, folge diesen Schritten:

  1. Öffne den Visual Basic for Applications (VBA) Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Finde die UserForm:

    • Suche im Projektfenster nach der UserForm, die die ListBox enthält.
  3. Füge den folgenden Code hinzu:

    • Du kannst den bestehenden Code anpassen oder den neuen Code im entsprechenden Ereignis der UserForm einfügen:
    Private Sub ListBox2_AfterUpdate()
       Dim letztezeile As Long
       'Markierung speichern
       letztezeile = Me.ListBox2.ListIndex
       'Hier wird der Code ausgeführt, um die ListBox zu aktualisieren
       With ListBox2
           Call Array_fuellen2
           .Clear
           .Column = aTmp2
       End With
       'Wieder markieren
       Me.ListBox2.Selected(letztezeile + 1) = True
    End Sub
  4. Teste die UserForm:

    • Schließe den VBA-Editor und teste die UserForm, um sicherzustellen, dass die Zeile korrekt markiert wird.

Häufige Fehler und Lösungen

  • Fehler: ListBox bleibt leer
    Lösung: Überprüfe, ob die Funktion Array_fuellen2 korrekt arbeitet und Werte in die ListBox überträgt.

  • Fehler: Markierung funktioniert nicht
    Lösung: Stelle sicher, dass der Index der ListBox richtig gespeichert und verwendet wird. Achte darauf, dass die ListBox nicht leer ist, bevor du versuchst, eine Zeile zu markieren.


Alternative Methoden

Eine alternative Methode zur Markierung der Zeile könnte die Verwendung von ActiveX-Steuerelementen oder die Implementierung von Events in der Excel-Tabelle selbst sein. Du kannst auch überlegen, die ListBox mit einer ComboBox zu ersetzen, wenn dies für dein Projekt sinnvoll ist.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du die ListBox in einer UserForm nutzen kannst:

  1. Erstelle eine UserForm mit einer ListBox und einer TextBox.
  2. Füge den obigen Code in das AfterUpdate-Ereignis der ListBox ein.
  3. Fülle die ListBox mit Werten, z.B. aus einem Arbeitsblatt.
Private Sub UserForm_Initialize()
    Dim i As Long
    For i = 1 To 10
        Me.ListBox2.AddItem "Item " & i
    Next i
End Sub

Tipps für Profis

  • Verwende Error-Handling: Implementiere Fehlerbehandlungsroutinen, um unerwartete Fehler während der Ausführung zu vermeiden.
  • Dokumentiere deinen Code: Kommentiere deinen Code ausführlich, damit du ihn später leichter verstehen kannst.
  • Optimiere die Leistung: Achte darauf, dass die verwendeten Arrays und Variablen optimal genutzt werden, um die Leistung deiner VBA-Anwendung zu verbessern.

FAQ: Häufige Fragen

1. Wie kann ich die ListBox mit Daten aus einem Arbeitsblatt füllen?
Du kannst die ListBox im UserForm_Initialize-Ereignis mit einer Schleife füllen, die die Daten aus dem Arbeitsblatt abruft.

2. Gibt es eine Möglichkeit, mehrere Zeilen in der ListBox auszuwählen?
Ja, du kannst die MultiSelect-Eigenschaft der ListBox auf fmMultiSelectMulti setzen, um mehrere Auswahlmöglichkeiten zu erlauben.

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