Extraer Datos en Excel con Macros

Estoy extrayendo datos de una tabla a la otra, lo que me gustaría poder hacer, es insertar los datos que extraigo de la hoja "IMPORTACIONES" a la primer fila de arriba de la hoja "DNA". Gracias!

Este es el código:

Sub extraerDatos()
Dim ultFilaDatos As Long
Dim ultFilaImportaciones As Long
Dim enviar As String
Dim empresa As String
Dim dna As String
Dim importador As String
Dim exportador As String
Dim crt As String
Dim estado As String
Dim despachante As String
Dim dua As String
Dim descarga As String
ultFilaDatos = Sheets("IMPORTACIONES").Range("A" & Rows.Count).End(xlUp).Row
For cont = 5 To ultFilaDatos
enviar = Sheets("IMPORTACIONES").Cells(cont, 1)
empresa = Sheets("IMPORTACIONES").Cells(cont, 3)
dna = Sheets("IMPORTACIONES").Cells(cont, 4)
importador = Sheets("IMPORTACIONES").Cells(cont, 5)
exportador = Sheets("IMPORTACIONES").Cells(cont, 6)
crt = Sheets("IMPORTACIONES").Cells(cont, 7)
estado = Sheets("IMPORTACIONES").Cells(cont, 10)
dua = Sheets("IMPORTACIONES").Cells(cont, 11)
descarga = Sheets("IMPORTACIONES").Cells(cont, 12)
If enviar = "SI" Then
ultFilaImportaciones = Sheets("DNA").Range("A" & Rows.Count).End(xlUp).Row
Sheets("DNA").Cells(ultFilaImportaciones + 1, 1) = empresa
Sheets("DNA").Cells(ultFilaImportaciones + 1, 2) = dna
Sheets("DNA").Cells(ultFilaImportaciones + 1, 3) = importador
Sheets("DNA").Cells(ultFilaImportaciones + 1, 4) = exportador
Sheets("DNA").Cells(ultFilaImportaciones + 1, 5) = crt
Sheets("DNA").Cells(ultFilaImportaciones + 1, 6) = estado
Sheets("DNA").Cells(ultFilaImportaciones + 1, 7) = dua
Sheets("DNA").Cells(ultFilaImportaciones + 1, 8) = descarga
End If
Next cont
End Sub

1 Respuesta

Respuesta

[Hola

Viendo tu macro envías tus datos a la primera fila inferior vacía pero ahora quieres que los datos queden en ¿la fila 1? ¿La fila 2? O sea que se inserten ahí y los otros datos vayan "bajando" ¿es así?

Abraham Valencia

Exacto! eso es lo que quiero!

Prueba así:

Sub extraerDatos()
Dim ultFilaDatos As Long, cont As Long
ultFilaDatos = Sheets("IMPORTACIONES").Range("A" & Rows.Count).End(xlUp).Row
For cont = 5 To ultFilaDatos
    If Sheets("IMPORTACIONES").Cells(cont, 1) = "SI" Then
        With Sheets("DNA")
            .Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
            .Cells(2, 1) = Sheets("IMPORTACIONES"). Cells(cont, 3)
            .Cells(2, 2) = Sheets("IMPORTACIONES"). Cells(cont, 4)
            .Cells(2, 3) = Sheets("IMPORTACIONES"). Cells(cont, 5)
            .Cells(2, 4) = Sheets("IMPORTACIONES"). Cells(cont, 6)
            .Cells(2, 5) = Sheets("IMPORTACIONES"). Cells(cont, 7)
            .Cells(2, 6) = Sheets("IMPORTACIONES"). Cells(cont, 10)
            .Cells(2, 7) = Sheets("IMPORTACIONES"). Cells(cont, 11)
            .Cells(2, 8) = Sheets("IMPORTACIONES"). Cells(cont, 12)
        End With
    End If
Next cont
End Sub

Saludos]

Abraham Valencia

PD: Supongo que en algún momento borras los datos de tu hoja "importaciones" para que no se repitan

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas