Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: ListView - Zeile markieren per VBA

ListView - Zeile markieren per VBA
kle
Hallo,
...ich weiß nicht weiter...wie kann ich eine Zeile (die letzte) in einem List-View-Controll-Element per VBA ansprechen, d.h. Sie markieren. Damit der User sofort erkennt, das dies der letzte Eintrag ist, der auch in den anderen Feldern des Userform angezeigt wird.
Vielen Dank !
Gruß
Kay
Anzeige

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

Betreff
Benutzer
Anzeige
AW: ListView - Zeile markieren per VBA
20.05.2010 10:27:41
ChristianM
Hallo Kay,
mit "SelectedItem" - Bsp:

Option Explicit
Private Sub UserForm_Initialize()
Dim i As Long
With Me.ListView1
.ColumnHeaders.Add 1, "Test", "Test", 60
For i = 1 To 100
.ListItems.Add , , "test_" & i
Next
.SelectedItem = .ListItems(.ListItems.Count)
.SelectedItem.EnsureVisible
End With
End Sub
Gruß
Christian
Anzeige
AW: ListView - Zeile markieren per VBA
20.05.2010 14:23:22
kle
Hallo Christian,
...sorry, war den ganzen Tag unterwegs, ab morgen geht's 2 Wochen in den Urlaub (naja, eigentlich ab Sa.) ;o)
Nun, habe es probiert - aber wenn z.B. in der ListView 2 Elemente sind, markiert es mir BEIDE ?! Nicht den 2'ten ?!? Komisch - oder ?!
Probiere es weiter und melde mich ab dem 10.Juni wieder - sobald ich online bin.
Gruß und Danke bereits an dieser Stelle an das Gesamte ! Forum mit all seinen kompetenten Mitgliedern.
Gruß
Kay
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Zeilen im ListView per VBA markieren


Schritt-für-Schritt-Anleitung

Um eine Zeile im ListView-Control per VBA zu markieren, folge diesen Schritten:

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

  2. Füge ein UserForm hinzu und ziehe ein ListView-Control auf das Formular.

  3. Füge den folgenden VBA-Code ein in das UserForm:

    Option Explicit
    
    Private Sub UserForm_Initialize()
       Dim i As Long
       With Me.ListView1
           .ColumnHeaders.Add 1, "Test", "Test", 60
           For i = 1 To 100
               .ListItems.Add , , "test_" & i
           Next
           ' Markiere das letzte Element
           .SelectedItem = .ListItems(.ListItems.Count)
           .SelectedItem.EnsureVisible
       End With
    End Sub
  4. Führe das UserForm aus, um die letzte Zeile im ListView zu markieren.


Häufige Fehler und Lösungen

  • Problem: Wenn mehrere Elemente im ListView vorhanden sind und mehr als eines markiert wird.

    • Lösung: Stelle sicher, dass du die SelectedItem-Eigenschaft korrekt verwendest. Siehe den obigen Code, um sicherzustellen, dass nur das letzte Element markiert wird.
  • Problem: Das ListView-Control zeigt keine Elemente an.

    • Lösung: Überprüfe, ob die ListView richtig konfiguriert ist und dass du die ColumnHeaders und ListItems korrekt hinzufügst.

Alternative Methoden

Wenn du eine andere Methode zur Markierung von Zeilen in einem excel list view verwenden möchtest, kannst du auch:

  • Direkt auf die Items zugreifen und die Selected-Eigenschaft setzen:

    Me.ListView1.ListItems(2).Selected = True ' Markiere das zweite Element
  • Die SetFocus-Methode verwenden, um den Fokus auf das ListView zu setzen, bevor du ein Element markierst.


Praktische Beispiele

Hier sind einige Beispiele, wie du das listview excel vba effektiv nutzen kannst:

  1. Markiere das erste Element:

    .SelectedItem = .ListItems(1)
  2. Markiere ein Element basierend auf einer Bedingung:

    Dim item As ListItem
    For Each item In Me.ListView1.ListItems
       If item.Text = "test_50" Then
           item.Selected = True
       End If
    Next item

Tipps für Profis

  • Verwende die EnsureVisible-Methode, um sicherzustellen, dass das markierte Element auch sichtbar ist, besonders wenn das ListView viele Elemente enthält.

  • Optimiere dein VBA-Skript, indem du die Ausführung von SelectedItem und EnsureVisible nur dann auslöst, wenn es nötig ist, um die Performance zu verbessern.

  • Teste dein Skript in verschiedenen Excel-Versionen, um sicherzustellen, dass es überall funktioniert, insbesondere bei Unterschieden in den VBA-Implementierungen.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Zeilen im ListView markieren? Du kannst die Selected-Eigenschaft für jedes Element einzeln setzen, um mehrere Zeilen zu markieren.

2. Welche Excel-Version benötige ich für die Verwendung von ListView? Die Verwendung von ListView ist in Excel 2003 und neueren Versionen möglich. Achte darauf, dass die VBA-Referenzen korrekt gesetzt sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige