Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Duplikate zählen
#11
Hallo Fennek, hab mich nicht ganz richtig ausgedrückt. Der Code "stolpert" bei der Formatierung über leere Zeilen. Sobald in der nächsten Zeile kein Eintrag (leere Zelle) vorhanden ist werden die weiteren Duplikate nicht gefärbt. Leider hat meine Spalte viele solcher Lücken. Ich möchte nicht ganze Zeile färben. Mit dem Anzeigen der Duplikat-Anzahl hab ich noch etwas Probleme. Ich kann dir nicht ganz folgen. Ich bräuchte die Anzahl direkt in der Tabelle, da ich diesen Wert weiterverarbeite. mfg
Antworten Top
#12
Hallo,

Leerzeilen waren nicht vorgesehen, aber dieser Code sollte das schaffen. auch die Anzahl der Duplikate wird ausgegeben.


Code:
########### mit leeren Zellen #######

Sub iFen()

With CreateObject("Scripting.Dictionary")
'Ar = Columns(1).SpecialCells(2)
lr = Cells(Rows.Count, "A").End(xlUp).Row
Ar = Range("A1:A" & lr)
For i = 1 To UBound(Ar, 1)
   If Ar(i, 1) <> 0 Then
       If Not .exists(Ar(i, 1)) Then
           y = .Item(Ar(i, 1))
       Else
       'färben der Duplikate
           Cells(i, 1).Interior.Color = vbYellow
       End If
   End If
Next i
'Ausgabe in Text-Spalte
Columns(3).NumberFormat = "@"
Range("C1").Resize(.Count) = Application.Transpose(.keys)
MsgBox "Anzahl der Duplikate: " & lr - .Count

End With
End Sub


mfg
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • elvisonline
Antworten Top
#13
:15:

Fennek for President
Antworten Top
#14
Hallo,

bevor dies ein unendliche Geschichte wird, es wäre besser eine "ordentliche" Tabelle, d.h. als xl-Tabelle definiert anzulegen. D.h. auch, dass leere Zellen oder Nullwerte zuerst eliminiert werden müssen.

Dann ginge auch die farbliche Anzeige von Duplikaten einfacher.


Code:
'########### zählen ohne Leerzeilen und 0-Werte
Sub iFen()

With CreateObject("Scripting.Dictionary")
'Ar = Columns(1).SpecialCells(2)
lr = Cells(Rows.Count, "A").End(xlUp).Row
ar = Range("A1:A" & lr)
For i = 1 To UBound(ar, 1)
If ar(i, 1) = 0 Then LL = LL + 1
   If ar(i, 1) <> 0 Then
       If Not .exists(ar(i, 1)) Then
           y = .Item(ar(i, 1))
       Else
       'färben der Duplikate
           Cells(i, 1).Interior.Color = vbYellow
       End If
   End If
Next i
'Ausgabe in Text-Spalte
Range("C1:C" & lr).NumberFormat = "@"
Range("C1").Resize(.Count) = Application.Transpose(.keys)
MsgBox "Anzahl der Duplikate: " & lr - .Count - LL & vbLf & "Eindeutig: " & .Count
Debug.Print LL
End With
End Sub


mfg
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste