Excel VBA macro llevar registros a otra hoja por grupo de IDs
Estoy con una macro que tiene 3 hojas (Hoja1, Hoja2, Destino). Dos columnas en cada hoja (ID, Cantidad). Empiezo siempre llevándome a hoja Destino el primer registro de hoja1 y luego en función de si la cantidad es mayor o menor a 100, me traigo otro registro de hoja1 o de hoja2 (está explicado en la segunda foto, en la primera estaría un pantallazo de hojas1 y 2). En caso de que ya no queden registros en hoja2, nos traemos de golpe todos los registros de hoja1 si quedan (siempre hay menos en hoja2 para un mismo Id). He conseguido hacerlo sin ningún problema siempre y cuando solo exista un ID. Pero no consigo sacarlo para cuando hay distintos grupos de ID (tercera foto). ¿Alguna idea? Espero que se entienda bien. Muchísimas gracias de antemano.
'empiezo trayendo el primer registros de hoja1 If Not IsEmpty(Sheets("Hoja1").Range("A2")) Then Sheets("Hoja1").Range("A2:D2").EntireRow.Cut Destination:=Sheets("Destino").Range("A" & Sheets("Destino").Range("A" & Rows.Count).End(xlUp).Row + 1) Sheets("Hoja1").Range("A2").EntireRow.Delete 'a partir de aquí empiezo con las lógicas de si es mayor o menor a 100 (foto2) With Worksheets("Destino") For i = 2 To .UsedRange.Rows(.UsedRange.Rows.Count).Row If Cells(i, "B").Value < 100 Then If Not IsEmpty(Sheets("Hoja2").Range("A2")) Then Sheets("Hoja2").Range("A2:B2").EntireRow.Cut Destination:=Sheets("Destino").Range("A" & Sheets("Destino").Range("A" & Rows.Count).End(xlUp).Row + 1) Sheets("Hoja2").Range("A2").EntireRow.Delete end if else Sheets("Hoja1").Range("A2:B2").EntireRow.Cut Destination:=Sheets("Destino").Range("A" & Sheets("Destino").Range("A" & Rows.Count).End(xlUp).Row + 1) Sheets("Hoja1").Range("A2").EntireRow.Delete End if 'ahora meto la lógica de si ya no quedan más registros en hoja2 para ese ID 'que me lleve a hoja Destino el resto de Hoja1 para ese Id If IsEmpty(Sheets("Hoja2").Range("A2")) then If Not IsEmpty(Sheets("Hoja1").Range("A2")) Then Sheets("Hoja1").Range("A2:B2").EntireRow.Cut Destination:=Sheets("Destino").Range("A" & Sheets("Destino").Range("A" & Rows.Count).End(xlUp).Row + 1) Sheets("Hoja1").Range("A2").EntireRow.Delete End If End If Next Wne with