Thema Datum  Von Nutzer Rating
Antwort
23.04.2024 08:48:03 Ulrich Paul
NotSolved
23.04.2024 10:29:16 Ben
NotSolved
23.04.2024 21:06:14 ralf_b
NotSolved
24.04.2024 08:38:54 Ulrich Paul
NotSolved
24.04.2024 14:46:08 Gast39910
NotSolved
24.04.2024 21:33:14 Ulrich Paul
NotSolved
30.04.2024 16:08:16 Gast70852
Solved
Blau UÜserForm
03.05.2024 10:26:42 Alwin Weisangler
NotSolved
03.05.2024 12:18:37 Alwin
NotSolved
03.05.2024 14:03:49 Alwin Weisangler
Solved
03.05.2024 19:34:59 Ulrich Paul
Solved
03.05.2024 19:41:28 Gast11408
Solved

Ansicht des Beitrags:
Von:
Alwin Weisangler
Datum:
03.05.2024 10:26:42
Views:
186
Rating: Antwort:
  Ja
Thema:
UÜserForm

Hallo,
ich hab mich mal drüber her gemacht und es so angelegt, dass alle Doppelungen ausgegeben werden.
Mehrere Spalten zu durchlaufen habe ich, da MultiSelect in der ListBox nicht verwendet wird außer Acht gelassen.
Die Übergabe in die Prozedur erfolgt trotzdem als Array, falls mal der ursprüngliche Weg wieder benötigt wird.

Im Userform: frmDoppelte_Markieren

Private Sub btnMark_Click()
Dim ar() As Variant
    Dim i As Integer
    Dim n As Integer
    n = -1
    With ListBox1
        For i = 0 To .ListCount - 1
            If .Selected(i) Then
                n = n + 1
                ReDim Preserve ar(n)
                ar(n) = i + 1
            End If
        Next
    End With
    If n < 0 Then Exit Sub
    'Call xlph_Doppelte_Markieren(Bereich, ar())
    Call MehrfachvorkommenMarkieren(Bereich, ar())
End Sub

und in ein allgemeines Modul:

Sub MehrfachvorkommenMarkieren(Bereich As Range, Spalte As Variant)
    Dim objDic As Object
    Dim arrSp(), arrDic, i&, j&, tmp$
    Set objDic = CreateObject("Scripting.Dictionary")
    Bereich.Parent.Cells.Interior.ColorIndex = xlColorIndexNone
    arrSp = Bereich.Columns(Spalte(0)).Value
    For i = 2 To UBound(arrSp)
        objDic(arrSp(i, 1)) = 0
    Next i
    arrDic = objDic.keys
    With Bereich
        For i = 0 To UBound(arrDic)
            If WorksheetFunction.CountIf(.Columns(Spalte(0)), arrDic(i)) > 1 Then
                For j = 2 To .Rows.Count
                    If arrDic(i) = .Cells(j, Spalte(0)) Then
                        If InStr(1, tmp, "A" & j, vbTextCompare) = 0 Then
                            If Len(tmp) < 256 Then
                                tmp = tmp & ",A" & j + 2
                                Intersect(Bereich, Tabelle1.Range(Mid(tmp, 2)).EntireRow).Interior.ColorIndex = 4
                                tmp = ""
                            End If
                        End If
                    End If
                Next j
            End If
        Next i
    End With
End Sub

Es ist nicht so speicherschonend wie von xlph.
Der kanns einfach besser.

Gruß Uwe

 

 

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
23.04.2024 08:48:03 Ulrich Paul
NotSolved
23.04.2024 10:29:16 Ben
NotSolved
23.04.2024 21:06:14 ralf_b
NotSolved
24.04.2024 08:38:54 Ulrich Paul
NotSolved
24.04.2024 14:46:08 Gast39910
NotSolved
24.04.2024 21:33:14 Ulrich Paul
NotSolved
30.04.2024 16:08:16 Gast70852
Solved
Blau UÜserForm
03.05.2024 10:26:42 Alwin Weisangler
NotSolved
03.05.2024 12:18:37 Alwin
NotSolved
03.05.2024 14:03:49 Alwin Weisangler
Solved
03.05.2024 19:34:59 Ulrich Paul
Solved
03.05.2024 19:41:28 Gast11408
Solved