Copiar de una hoja a otra datos específicos con variable especial y omitir filas blancas.

Necesito de su ayuda con una macro. Quiero copiar datos de una base de datos a otra hoja, de acuerdo a una variable en especifico. No quiero que copie el contenido de esta variable solo quiero que funcione como una orden, es decir, según lo que se escriba en está depende el copiado de los datos en específico que quiero. Ej.:

Hoja1

Procesado_Estatus_Fecha_Código_Lugar_Validación_Descripción_Valor_Jefe_Dpart_Observaciones

        1                 2          3            4           5          Válido              6                7          8         9            10

        11               12        13         14        15          No Válido      16                17       18      19           20

        1                 2          3            4           5          Válido              6                7          8         9            10

Hoja2

Procesado_Código_Dpart_Jefe_Lugar_Descripción_Valor_Fecha_Estatus_Observaciones

       1               4           9          8        5               6                7           3          2                  10

       1               4           9          8        5               6                7           3          2                  10

Las columnas de la hoja destino (hoja2) no deben mantener el mismo orden por lo tanto en el ej. No lo mantienen. La variable sera Válido y No Válido, cuando sean validos mis reportes se les colocara Válido y deben ser copiados a las hoja2, y cuando sean No Válidos que la macro los ignore no los copie y copie el siguiente Válido sin filas blancas.

1 respuesta

Respuesta
1

H o l a:

En un correo nuevo puedes enviarme el archivo con algunos datos de ejemplo.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “osmar luque” y el título de esta pregunta.

 H o l a:

Te anexo la macro para que copie los registros. Antes de copiar verifica que el registro no se haya copiado anteriormente.

Sub CopiarDtos()
'Por.Dante Amor
    Set h1 = Sheets("Identificación de peligros")
    Set h2 = Sheets("Toma de conocimiento")
    '
    For i = 7 To h1.Range("B" & Rows.Count).End(xlUp).Row
        If h1.Cells(i, "L") = "Válido" Then
            num = h1.Cells(i, "G")
            Set b = h2.Columns("C").Find(num, lookat:=xlWhole)
            If b Is Nothing Then
                For j = 7 To h2.Range("B" & Rows.Count).Row
                    If h2.Cells(j, "B") = "" Then
                        h2.Cells(j, "B") = h1.Cells(i, "C")  'Procesado por
                        h2.Cells(j, "C") = h1.Cells(i, "g")  'Número de reporte
                        h2.Cells(j, "D") = h1.Cells(i, "ab") 'Gerencia/jefatura
                        h2.Cells(j, "E") = h1.Cells(i, "aa") 'Delegado
                        h2.Cells(j, "h") = h1.Cells(i, "i")  'Estación/lugar del reporte
                        h2.Cells(j, "I") = h1.Cells(i, "s")  'Descripción del reporte
                        h2.Cells(j, "J") = h1.Cells(i, "U")  'Valor del riesgo
                        h2.Cells(j, "k") = h1.Cells(i, "e")  'Fecha de cierre
                        h2.Cells(j, "o") = h1.Cells(i, "d")  'Estatus
                        h2.Cells(j, "P") = h1.Cells(i, "AG") 'observaciones
                        Exit For
                    End If
                Next
            End If
        End If
    Next
    MsgBox "Toma cargada"
End Sub

' : )
'Recuerda cambiar la valoración a la respuesta. G racias
' : )

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas