Posición ultima celda con dato en cada fila

Me gustaría saber si existe alguna fórmula o combinación de ellas para poder sacar la posición de la última celda con dato en cada fila de una base de datos.

Me gustaría añadir una última celda en cada fila y en la misma columna para saber la ultima intentar de celda con numero. No el valor si no la posición.

2 respuestas

Respuesta
1

No me queda muy claro lo que necesita, pero con esta macro busca la ultima posición de la fila de cada columna, y a manera de ejemplo pone el dato el la siguiente celda después de la ultima fila el dato "ULTIMA POSICION" recorriendo todas las columnas. Espero le sirva de algo, cualquier cosa comenta.

Sub Busca_fila_Column()
'Tor ====>> Macros para facilitarnos el trabajo
nombrehoja = ActiveSheet.Name
uf = Sheets(nombrehoja).Range("A" & Rows.Count).End(xlUp).Row + 1
uc = Sheets(nombrehoja).Cells(1, Columns.Count).End(xlToLeft).Column
For j = 1 To uc
    For i = 1 To uf
        val1 = Cells(i, j).Address
        If i = uf Then
            Cells(i, j).Value = "ULTIMA POSICION"
        Else
        End If
    Next i
Next j
End Sub
Respuesta

Tampoco me queda claro qué necesitas.

Podrías explicarlo con alguna imagen, y cuál es el objetivo final qué tú necesitas.

Te adelanto un ejemplo, si tus datos están de esta manera:

Si quieres saber cuál es la última columna con datos, entonces la última columna con datos es la "F" (columna 6).

Si quieres saber cuál es la última fila con datos, entonces la última fila con datos es la 10.

Utiliza lo siguiente para obtener los datos:

Sub ultimas()
  Dim lc As Long, lr As Long
  lc = ActiveSheet.Cells.Find("*", , xlValues, , xlByColumns, xlPrevious).Column
  lr = ActiveSheet.Cells.Find("*", , xlValues, , xlByRows, xlPrevious).Row
  '
  MsgBox "Última columna : " & lc & vbCr & _
         "Última fila : " & lr
End Sub

Hola Dante,

Muchísimas gracias por tu respuesta.

El resultado que busco siguiendo tu ejemplo el resultado que busco es tendría que salirme en todas las filas de la columna G:

G1:1

G2:1

G3:2

G4:3

G5:5

G6:6

G7:6

G8:5

G9:5

G10:2

Muchísimas gracias,

Cris

Prueba si lo siguiente es lo que necesitas:

Sub ultimas()
  Dim lc As Long, lr As Long, i As Long
  lc = ActiveSheet.Cells.Find("*", , xlValues, , xlByColumns, xlPrevious).Column + 1
  lr = ActiveSheet.Cells.Find("*", , xlValues, , xlByRows, xlPrevious).Row
  For i = 1 To lr       'desde la fila 1 hasta la última fila con datos
    Cells(i, lc).Value = Cells(i, Columns.Count).End(1).Column
  Next
End Sub

Y este es el resultado:

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas