Pregunta para JuanC Ultima Fila
Publicado por frany (58 intervenciones) el 15/11/2009 21:31:22
Hola JuanC
He visto tu código de búsqueda de la ultima celda vacía buscando con el buscador.
dicho código no lo probé cuando lo publicaste, lo acabo de hacer hace 20 minutos y como dije en el otro post es ENDIABLADAMENTE RAPIDO.
No es que este no me valga, la verdad es que es estupendo.
Tan solo me gustaría saber si tienes algo para buscar la ultima fila con datos, es decir no tener que especificar la columna a la hora de pasar el dato a la función.
Un saludo.
Sub test()
'Autor:Juan C
'busca la ultima celda con datos
MsgBox UltimaCeldaConDatos([A2])
End Sub
Function UltimaCeldaConDatos(rngPivot As Range) As String
'Autor:Juan C
Dim rng As Range
Dim i&, lCount&
On Error Resume Next
Set rng = rngPivot.Columns(1).EntireColumn
Set rng = Intersect(rng.Parent.UsedRange, rng)
lCount = rng.Count
For i = lCount To 1 Step -1
If Not IsEmpty(rng(i)) Then
If rng(i).Row <> Cells.Rows.Count Then
UltimaCeldaConDatos = rng(i).Offset(1, 0).Address
Else
UltimaCeldaConDatos = "Todo lleno"
End If
Exit Function
End If
Next i
UltimaCeldaConDatos = rngPivot.Address
Set rng = Nothing
End Function
He visto tu código de búsqueda de la ultima celda vacía buscando con el buscador.
dicho código no lo probé cuando lo publicaste, lo acabo de hacer hace 20 minutos y como dije en el otro post es ENDIABLADAMENTE RAPIDO.
No es que este no me valga, la verdad es que es estupendo.
Tan solo me gustaría saber si tienes algo para buscar la ultima fila con datos, es decir no tener que especificar la columna a la hora de pasar el dato a la función.
Un saludo.
Sub test()
'Autor:Juan C
'busca la ultima celda con datos
MsgBox UltimaCeldaConDatos([A2])
End Sub
Function UltimaCeldaConDatos(rngPivot As Range) As String
'Autor:Juan C
Dim rng As Range
Dim i&, lCount&
On Error Resume Next
Set rng = rngPivot.Columns(1).EntireColumn
Set rng = Intersect(rng.Parent.UsedRange, rng)
lCount = rng.Count
For i = lCount To 1 Step -1
If Not IsEmpty(rng(i)) Then
If rng(i).Row <> Cells.Rows.Count Then
UltimaCeldaConDatos = rng(i).Offset(1, 0).Address
Else
UltimaCeldaConDatos = "Todo lleno"
End If
Exit Function
End If
Next i
UltimaCeldaConDatos = rngPivot.Address
Set rng = Nothing
End Function
Valora esta pregunta


0