Cambiar el formato de pegado

Desde acá adapte una respuesta a otra pregunta y tome esta macro:

Sub TraspasoDatos()
Set h1 = Sheets("A")                           'HOJA DE DATOS INICIALES (ENVIO)
Set h2 = Sheets("B")                           'HOJA DE (DESTINO)
j = 6                                          'VAR FILA INICIO
For i = 6 To h1.Range("P" & Rows.Count).End(xlUp).Row
    If h1.Cells(i, "P") = "SI" Then            'CONDICIÓN DE COPIA
        h1.Cells(i, "H").Copy h2.Cells(j, "D") 'Nº OC
        h1.Cells(i, "I").Copy h2.Cells(j, "C") 'ENTIDAD
        h1.Cells(i, "J").Copy h2.Cells(j, "I") 'FE ENVIO OC
        h1.Cells(i, "L").Copy h2.Cells(j, "E") 'NV
        h1.Cells(i, "M").Copy h2.Cells(j, "F") 'FE EMISION
        h1.Cells(i, "N").Copy h2.Cells(j, "G") 'GUIA
        h1.Cells(i, "O").Copy h2.Cells(j, "H") 'FC
        j = j + 1                              '
    End If
Next
'ERROR IMPORTANTE:
'Al copiar los datos a la hoja2 ("B") se pega con el formato de la hoja ("A")
'Lo que impide que se apliquen los formatos condicionales
End Sub

El problema se me genera al copiar los datos a la hoja de destino, esto porque me pega los datos con el formato de la hoja de envío y me impide que se apliquen los formatos condicionales y formatos aplicados a la hoja destino, como corrijo esto?

1 Respuesta

Respuesta
1
Sub TraspasoDatos()
Set h1 = Sheets("Hoja1")                           'HOJA DE DATOS INICIALES (ENVIO)
Set h2 = Sheets("Hoja2")                           'HOJA DE (DESTINO)
j = 6                                          'VAR FILA INICIO
For i = 6 To h1.Range("P" & Rows.Count).End(xlUp).Row
    If h1.Cells(i, "P") = "SI" Then            'CONDICIÓN DE COPIA
        h1.Cells(i, "H").Copy: h2.Cells(j, "D").PasteSpecial xlValues  'Nº OC
        h1.Cells(i, "I").Copy: h2.Cells(j, "C").PasteSpecial xlValues 'ENTIDAD
        h1.Cells(i, "J").Copy: h2.Cells(j, "I").PasteSpecial xlValues 'FE ENVIO OC
        h1.Cells(i, "L").Copy: h2.Cells(j, "E").PasteSpecial xlValues 'NV
        h1.Cells(i, "M").Copy: h2.Cells(j, "F").PasteSpecial xlValues 'FE EMISION
        h1.Cells(i, "N").Copy: h2.Cells(j, "G").PasteSpecial xlValues 'GUIA
        h1.Cells(i, "O").Copy: h2.Cells(j, "H").PasteSpecial xlValues 'FC
        j = j + 1                              '
    End If
Next
End Sub

Valorar la respuesta

En la macro cambia el nombre de las hoja por A y B

Hola, gracias por responder, ya había probado esa forma y me daba error, lo probé nuevamente y me da error de sintaxis.

Puse ":" después de copy, copia la macro como te di.

Si valoras la respuesta como anónimo no tendré puntos saludos

¿Puedes finalizar valorando la respuesta?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas