Doppelte Werte in Array

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Doppelte Werte in Array
von: Tim
Geschrieben am: 20.08.2015 11:17:12

Hallo,
ich habe in Spalte A ca 250 Zahlenwerte, ich möchte die Doppelten Werte in ein Array schreiben und mit Angabe der Zeilenangabe in einer Msgbox ausgeben. Ich bin mir bewusst dass die Bedingte Formatierung das im Excel toll gelöst hat, möchte diesen Teil aber gerne in Vba realisieren. Der Makrorecorder spuckt leider mir einen völlig unverständlchen Code aus.
Bitte um Hilfe !

Bild

Betrifft: AW: Doppelte Werte in Array
von: JoWE
Geschrieben am: 20.08.2015 13:54:07
Hallo Tim,
lies Dir mal dies hier durch: http://www.vb-homepage.de/tipps/tip259.htm
Ist allerdings vielleicht recht "sportlich" und Du müsstest es auf Deine Bedürfnisse anpassen.
Viel Erfolg
Jochen

Bild

Betrifft: AW: Doppelte Werte in Array
von: Jack_d
Geschrieben am: 20.08.2015 16:23:49
Hallo Jochen,
Ich würde es über ein Dictionary lösen. Das ist was den Abgleich angeht ganz komfortabel.
Hier mal ein Codezum probieren
(Werte in Spalte & Trägt die Doppelten mit Zeilenbezeichnung in Spalte C )
Grüße


Option Explicit
Sub DopIdent()
Dim A As Variant
Dim B As Variant
Dim Ai As Long
Dim Zeile As Long
Dim NEU As String
Dim ODict1 As Object
With Worksheets("Tabelle2")
    Set ODict1 = CreateObject("scripting.dictionary")
    
    A = .Range(.Cells(1, 1), .Cells(.Cells(Rows.Count, 1).End(xlUp).Row, 1))
    
    For Ai = 1 To UBound(A)
                 If ODict1.exists(A(Ai, 1)) Then
                    NEU = NEU & A(Ai, 1) & " Zeile " & Ai & "-"
                 Else
                    ODict1(A(Ai, 1)) = Ai
                 End If
    Next Ai
            
        
    B = Split(NEU, "-")
    For Zeile = 1 To UBound(B)
        .Cells(Zeile, 3) = B(Zeile - 1)
    Next Zeile
    
    Set ODict1 = Nothing
    A = ""
    B = ""
                
End With
End Sub


Bild

Betrifft: AW: Doppelte Werte in Array
von: JoWE
Geschrieben am: 20.08.2015 18:57:46
HiJack :-)
ich war gar nicht der Fragesteller - vielleicht liest Tim ja doch irgendwann mal seine Antworten.
Gruß
Jochen

Bild

Betrifft: AW: Doppelte Werte in Array
von: Jack_D
Geschrieben am: 20.08.2015 23:12:52
Hallo jochen,
Ja da hab ich wohl was übersprungen :-D
Man möge es mir vergeben :-)
Grüße

Bild

Betrifft: AW: Doppelte Werte in Array
von: Daniel
Geschrieben am: 20.08.2015 19:22:00
Hi
bei kaum VBA-Kenntnisse vielleicht so:
1. sicherer in einer Hilfsspalte die aktuelle Zeilennummer.
schreibe hierzu in einer Hilfsspalte in alle Zellen bis zum Tabellenende die Formel =Zeile()
kopiere dann diese Spalte und füge sie an gleicher Stelle als wert ein.
2. lasse über die Bedingte Formatierung die doppelten farblich markieren
3. filtere in der Spalte mit dem Autofilter nach der Zellfarbe, der autofilter kann die Farben der bedingten Formatierung erkennen.
4. kopiere jetzt die Spalte A und die Hilfsspalte mit den fixierten Zeilennummern in ein neues Blatt.
die ausgeblendeten Zeilen werden nicht mit kopiert, so dass du in dem neuen Blatt nur die doppelten Werte hast
5. soritere in dem neuen Blatt die Liste nach den Werten, dann siest du sofort, welcher Wert sich wie oft wiederholt und in welchen Zeilen die Duplikate stehen.
das geht auch ohne VBA recht schnell, wenn du es mit VBA brauchst, sollte sich diese Methode relativ gut mit dem Recorder aufzeichnen lassen.
gruß Daniel

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Doppelte Werte in Array"