Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

Thema

Werte ohne Doppel in UserForm einlesen und löschen

Gruppe

ComboBox

Problem

Spalte A soll ohne Duplikate in eine UserForm-ComboBox eingelesen werden.

Lösung
Von den in der ComboBox ausgewählten Elementen soll die Zeile mit den Duplikaten gelöscht werden.

ClassModule: frmDuplikate

Private Sub cmdCancel_Click()
   Unload Me
End Sub

Private Sub cmdOK_Click()
   Dim iRow As Integer, iRowL As Integer
   iRowL = Cells(Rows.Count, 1).End(xlUp).Row
   For iRow = iRowL To 2 Step -1
      If Cells(iRow, 1) = cboDuplikate.Value And _
         WorksheetFunction.CountIf(Range("A1:A" & iRow - 1), _
         Cells(iRow, 1)) > 0 Then
         Rows(iRow).Delete
      End If
   Next iRow
End Sub

Private Sub UserForm_Initialize()
   Dim col As New Collection
   Dim iRow As Integer
   iRow = 1
   On Error Resume Next
   Do Until IsEmpty(Cells(iRow, 1))
      col.Add Cells(iRow, 1), Cells(iRow, 1)
      iRow = iRow + 1
   Loop
   For iRow = 1 To col.Count
      cboDuplikate.AddItem col(iRow)
   Next iRow
   cboDuplikate.ListIndex = 0
End Sub

StandardModule: basMain

Sub CallForm()
   frmDuplikate.Show
End Sub