Comparar 2 listados y copiar filas nuevas en otra hoja ordenadamente
Necesitaría de su ayuda para resolver lo siguiente:
Tengo 2 hojas en la que Hoja1 contiene un listado que incluye celdas combinadas del siguiente modo:
En la Hoja2 tengo un listado que irá cambiando cuando se abra el libro, con los datos de este modo:
En la Hoja2 se encuentra un listado que ira creciendo N filas y estará desordenado siempre.
En la Hoja1 hay un listado que al abrir el libro se actualizará con las nuevas "Granjas" que se añadieron en la Hoja2, este listado tiene que estar siempre ordenado ascendentemente por el campo "ID" asociado a esa nueva Granja.
De momento la macro que tengo es un cuadro de dialogo que pregunta si queremos actualizar los datos, descombina todas las celdas de la hoja, ordena el listado y vuelve a combinar las celdas(me falta saber la manera de saber el rango de celdas para combinar porque de momento es un valor fijo) y me falta saber como añadir las filas nuevas de la Hoja2 al listado de la Hoja1, luego mediante formula añadiría contenido a las columnas D y E de la Hoja1.
Éste sería el código:
'Preguntamos al usuario si quiere actualizar los datos
'Si no quiere salimos de la macro sin modificar los datos
Sub Inicio()
Dim Mensaje01 As Variant
Mensaje01 = MsgBox("¿Desea actualizar los datos?", vbYesNo + vbInformation, "")
If Mensaje01 = vbYes Then Prueba Else Exit Sub
End Sub
'Lanzamos la actualizacion de datos en orden
Sub Prueba()
'Primero tenemos que descombinar todas las celdas de la hoja
Range("A2:AY2537"). UnMerge
Call Ordenar_Datos_Ascendente
'Segundo Llamamos a la funcion que trae los nuevos datos
'Call InsertarFilas
'Tercero combinamos las celdas para dejarlo como estaba
Range("C2:C3").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
End Sub
Sub Ordenar_Datos_Ascendente()
'ORDENA DE A Z segun la columna A
Range("C1").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlYes
End Sub
¿Alguien puede echarme una mano?
Muchas gracias a quien pueda orientarme/ayudarme.