Macro para copiar filas a otra pestaña si cumple condición
Este tema ya ha aparecido, soy novato pero he intentado formular la macro en base a otros ejemplos que he consultado por aquí, pero en todos los casos me da error (compilación de listas) o no se copia; y no sé cómo solucionarlo; Os agradezco ayuda de revisión:
Esta es la macro:
Sub copiar()
'establecer las hojas a utilizar
Set h1 = Sheets("INTRODUCIR GASTOS")
Set h2 = Sheets("GASTOS DELEGACION")
'
'revisar con un ciclo la hoja1 desde la fila 3 hasta el final de los datos
For i = 3 To h1.Range("B" & Rows.Count).End(xlUp).Row
'
'Si en la hoja 1 en la columna B dice "Gastos de delegación"
If h1.Cells(i, "B") = "Gastos de delegación" Then
'
'copia toda la fila a otra pestaña, en la primera fila libre que exista
H1. Rows(i). EntireRow. Copy h2.Range("B" & h2.Range("B" & Rows. Count).End(xlUp).Row + 1)
End If
Next
MsgBox "Copia finalizada. Revisa por favor que la información se ha trasladado bien a la pestaña correspondiente"
End Sub
Y la descripción de lo que se pretende es: en un único libro de Excel, se introducen una serie de gastos (uno por fila) con varias columnas de información. Me gustaría que desde la hoja donde se introducen los gastos (h1), una macro revisara todas las filas en las que en la columna "B" se indica "Gastos de delegación" para en caso afirmativo copiar toda la fila (desde la columna "B" hasta la última con datos) a otra pestaña (h2) en la que se pega en la primera fila con la columna "B" disponible que exista. Si no se cumple la condición deseada, no hacer nada, no se trasladarán los datos a ninguna otra hoja.