Quisiera saber como traer el ultimo y penúltimo dato de una fila, teniendo en cuenta un rango dinámico, teniendo espacios blanco

este es el ejemplo en la primera celda quiero traer la G que es la ultima y en la siguiente la F que es la penúltima y así con todas las filas

2

2 respuestas

Respuesta
Ufila= range(rows.count & "G").End(xlUp).row
Pufila= range(rows.count & "F").End(xlUp).row -1

Con esas 2 líneas tienes la última fila de G y la ante última de F 

Tendrías que copiarlos y pegarlos en esas celdas

Ufila. Copy
Range("B2"). Pastespecial xlvalues
Puebla. Copy
Range("B3"). Pastespecial xlvalues

Sino me equivoco sería algo así

Faltaba una parte, ahora si

Sub CopiaRangos()
ufila = Range("G" & Rows.Count).End(xlUp).Row
Pufila = Range("f" & Rows.Count).End(xlUp).Row - 1
Cells(ufila, 7). Copy: Cells(2, 2). PasteSpecial xlValues
Cells(Pufila, 6). Copy: Cells(3, 2). PasteSpecial xlValues
End Sub

asi pega ultima fila en B2 y penultima fila en B3

Respuesta

Y dónde quieres los resultados en la columna A y B

Entonces ejecuta la siguiente macro:

Sub Ultima_Penultima()
    uf = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
    For i = 1 To uf
        uc = Cells(i, Columns.Count).End(xlToLeft).Column
        If uc = 3 Then
            Cells(i, "A").Value = Cells(i, uc)
        End If
        If uc > 3 Then
            Cells(i, "A").Value = Cells(i, uc)
            Cells(i, "B").Value = Cells(i, uc - 1)
        End If
    Next
    MsgBox "Fin"
End Sub

'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 
'.[Avísame cualquier duda

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas