Secuencia o numerador único en vba?
Para Dante Amor
Respuesta de Dante Amor a la pregunta: Pregunta: Consolidar datos según el mes con vba?
Con respecto a esta respuesta ingeniero Dante Amor, me ha gustado mucho el código que le diste en esta respuesta y me he tomado mi tiempo para comprenderlo y buscar mas sobre el mismo sobre todo en el uso del objeto diccionario de vba, aunque no es mucho lo que se encuentra.
Me podrías ayudar con base en el mismo código a crear o a mantener la secuencia o numerador único de los ID con respecto al mes que corresponda, ya que al tomarlo tal cual me copia la secuencia última de la hoja 2 según la imagen de referencia de la misma pregunta.
Y como una imagen vale más que mil palabras

Su código
Sub ConsolidarPorMes()
Dim a As Variant, b As Variant, c As Variant
Dim dic1 As Object, dic2 As Variant
Dim llave As String
Dim i As Long, j As Long, k As Long
'
a = Sheets("Hoja1").Range("A2", Sheets("Hoja1").Range("C" & Rows.Count).End(3)).Value
b = Sheets("Hoja2").Range("A2", Sheets("Hoja2").Range("T" & Rows.Count).End(3)).Value
ReDim c(1 To UBound(b, 1), 1 To UBound(b, 2))
Set dic1 = CreateObject("Scripting.Dictionary")
Set dic2 = CreateObject("Scripting.Dictionary")
'
For i = 1 To UBound(a, 1)
dic1(a(i, 2)) = a(i, 1) & "|" & a(i, 3)
Next
'
For i = 1 To UBound(b, 1)
llave = b(i, 2) & "|" & Month(b(i, 20))
If Not dic2.exists(llave) Then
j = j + 1
dic2(llave) = j
Else
j = dic2(llave)
End If
For k = 1 To UBound(b, 2)
Select Case k
Case 1, 3 'SEC | NOMBRE
If dic1.exists(b(i, 2)) Then
c(j, 1) = Split(dic1(b(i, 2)), "|")(0)
c(j, 3) = Split(dic1(b(i, 2)), "|")(1)
Else
c(j, k) = b(i, k)
End If
Case 2 'ID
c(j, k) = b(i, k)
Case 19 'OBS
If b(i, k) <> "" Then c(j, k) = b(i, k)
Case 20 'fecha
'Último día del mes
c(j, k) = DateSerial(Year(b(i, 20)), Month(b(i, 20)) + 1, 1) - 1
Case Else 'VR
c(j, k) = c(j, k) + b(i, k)
End Select
Next
Next
Sheets("Hoja3").Range("A2").Resize(dic2.Count, UBound(c, 2)).Value = c
End SubEspero su valiosa ayuda, soy novato pero me encanta aprender y he visto sus respuestas y son muy comprensibles y útilies para casos de la vida real.

