Macro en Excel 2010 que copia datos de una hoja y los inserta en la fila 2 de otra hoja.

Estoy creando una macro que activa un autofiltro en una hoja y pone una condición fija, selecciona las filas resultantes, las copia y las pega en una hoja fija en la posición A2, vuelve a la hoja anterior y elimina las filas copiadas y desactiva el autofiltro, lo hice asi porque si las cortaba no conseguía pegarlas, esto funciona bien.

El problema es que no quiero pegar en la hoja de destino porque si ya hay filas con datos me las elimina y quiero mantenerlas y que las nuevas filas se inserten a partir de la posición a2 o fila 2 y me mantenga las anteriores que habrá desplazado hacia abajo.

Se simplificaría mucho cortándolas de la hoja origen e insertándolas en la hoja destino en la posición de la fila2 o a2, esto no lo consigo, si corto no puedo pegar, solo si copio, tanto si corto como si copio no puedo insertar.

Adjunto el código por si alguien me puede echar una mano u orientar un poco.

Sub Copiar()
' mueve los datos de 22100 a la hoja de energia electrica
' hace que no se visualice la ejecución de la macro
    Application.ScreenUpdating = False
      ' establece el filtro automático
     Sheets("Informe de Dotaciones").Select
     Range("A1").Select
     Selection.AutoFilter

      ' establece el criterio 22100
      Selection.AutoFilter Field:=5, Criteria1:="22100"
'Definir objetos a utilizar
Dim wsOrigen As Excel.Worksheet, _
    wsDestino As Excel.Worksheet, _
    rngOrigen As Excel.Range, _
    rngDestino As Excel.Range
'Indicar las hojas de origen y destino
Set wsOrigen = Worksheets("Informe de Dotaciones")
Set wsDestino = Worksheets("energia electrica")
'Indicar la celda de origen y destino
Const celdaOrigen = "A2"
Const celdaDestino = "A2"
'Inicializar los rangos de origen y destino
Set rngOrigen = wsOrigen.Range(celdaOrigen)
Set rngDestino = wsDestino.Range(celdaDestino)
'Seleccionar rango de celdas origen
rngOrigen.Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
'Pegar datos en celda destino
rngDestino.PasteSpecial xlPasteAll

'borra las filas copiadas y quita autofiltro
Selection.Delete Shift:=xlUp
Selection.AutoFilter
End Sub

Si utilizo este código en vez de Pegar datos en celda destino no me funciona.

'Insertar datos en celda destino

Sheets("energia electrica").Select

Sheets("energia electrica").Range("A2").Select

Selection.Insert Shift:=xlDown

Añade tu respuesta

Haz clic para o