Macro para copiar información solo si las celdas están vacías

Necesito una macro que al copiar información de una hoja a otra solo pegue donde halla celdas vacías por el contrario si la celda tiene información dejarla como esta

Es decir al copiar la información como la imagen 1 y pegarla en la imagen 2 no sobrescriba lo que ya tiene ingresado solo escribir sobre celdas vacías

1 respuesta

Respuesta
1

Esta macro copia de una hoja a otra de una sola columna, agregue las demás columnas que necesite copiar y haga sus pruebas.

Saludos

Sub Copiar()
    Dim datobuscar As String 'declaracion de variable donde llevamos el dato a buscar
    ultimaFila = Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row ' identificar desde el inicio a la ultima fila donde buscaremos el dato
    If ultimaFila < 1 Then ' condicion
        Exit Sub ' si se cumple la condicion se sale de ejecicion
    End If 'fin de la condicion
    Worksheets("Hoja1").Select 'Seleccionar Hola1
    Range("A1").CurrentRegion.Select  'Seleccionar el rango desde la celda A1 hasta la ultima con datos
        datobuscar = "casa" 'establecemos el valor a buscar
        For cont = 1 To ultimaFila 'recorrera de la fila 2 a la ultima
            If Sheets("Hoja1").Cells(cont, 1) Like datobuscar Then 'busca el dato en la col 1
                dato1 = Sheets("Hoja1").Cells(cont, 1) 'al encontrar la primera coincidencia lo almacena el la variable dato1
                ufilaHoja2 = Sheets("Hoja2").Range("A" & Rows.Count).End(xlUp).Row 'se busca en la hoja2 en la columna A donde se copiara el dato encontrado
                Sheets("Hoja2").Cells(ufilaHoja2 + 1, 1) = dato1 'Se copia en la hoja2 en la columna A
            End If 'finaliza el copiado del dato encontrado
        Next cont 'continua en la siguiente fila para buscar el dato, este ciclo se repite hasta la ultima fila con datos de la hoja1
End Sub

no se si combien por columnas l rango a copiar y pegar es este G3:P165

y algo que no aclare que son de dos libros diferentes las hojas

Pruebe con esta macro

Sub CopiarLibro()
Dim x As Workbook
Dim y As Workbook
Dim vals As Variant
    '## Abrimos ambos ficheros:
    Set x = Workbooks.Open("C:\Libro1.xlsm")
    Set y = Workbooks.Open("C:\Libro2.xlsm")
    'Guardar la información en una variable:
    vals = x.Sheets("Hoja2").Range("G3:P165").Value
    'Trasladar el contenido de la variable a otra hoja:
    y.Sheets("Hoja2").Range("G3:P165").Value = vals
    'Cerrar x:
    'x. Close
End Sub

los nombres de los libros y las hojas lascambio por las que tengo?

Si cambie esos datos por los nombres reales de sus archivos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas