AW: Zahl bei doppelten Einträgen erhöhen?
22.03.2021 19:39:07
Daniel
Hi
dann probier mal dieses Makro.
um das zu verstehen, sind allerdings schon fortgeschrittene Kenntnisse erforderlich (Dictionary-Objekt)
Sub test()
Dim dicMax As Object
Dim dicDup As Object
Dim arrK, arrU
Dim rngK As Range, rngU As Range
Dim z As Long
Dim ID As String
Set dicMax = CreateObject("scripting.dictionary")
Set dicDup = CreateObject("scripting.dictionary")
Set rngK = Range(Cells(5, "K"), Cells(5, "K").End(xlDown))
Set rngU = rngK.Offset(0, 10)
arrK = rngK.Value
arrU = rngU.Value
For z = 1 To UBound(arrK, 1)
If Len(arrK(z, 1)) = 16 Then
If CLng(arrU(z, 1)) > dicMax(arrK(z, 1)) Then dicMax(arrK(z, 1)) = CLng(arrU(z, 1))
End If
arrU(z, 1) = "'" & arrU(z, 1)
Next
For z = 1 To UBound(arrK, 1)
If Len(arrK(z, 1)) = 16 Then
ID = arrK(z, 1) & "-" & arrU(z, 1)
If dicDup.exists(ID) Then
dicMax(arrK(z, 1)) = dicMax(arrK(z, 1)) + 1
arrU(z, 1) = "'" & Format(dicMax(arrK(z, 1)), "000")
End If
dicDup(ID) = dicDup(ID) + 1
End If
Next
rngU.Offset(0, 1).Value = arrU
End Sub
Teste mal obs tut, zu kontrollzwecken wird der wert in Spalte U nicht überschrieben sondern das Ergebnis wird in die Nachbarspalte eingefügt.
Wenns passt, kannst du ja in der letzten Zeile das OFFSET löschen.
Gruß Daniel