Error al detectar el valor de la ultima fila

Mi pregunta seria: Tengo un userform y cada vez que lo abro me tiene que dar el ultimo valor de una columna determinada (en este caso AC) de la hoja (Sheets5 "Nombre").

Cada vez que abro el formulario me salta el "error 9" y me dirige a vba y me señala esto:

Private Sub UserForm_Activate()
UltFila = 1
While Trim(Sheet(5).Cells(UltFila, 1)) <> "": UltFila = UltFila + 1: Wend
TxtLast = Sheets(5).Cells(UltFila - 1, 10) 'Columna AC
End Sub

El error señalado esta en negrita

3 Respuestas

Respuesta
1

Prueba con esto para obtener el ultimo valor de la columna AC

UltFila = Range("AC" & Rows.Count).End(xlUp).Row
TxtLast = Sheets(5). Cells(UltFila, 29).Value

Prueba y me comentas.

Respuesta
1

Añade do while y termina con loop

Respuesta
1

[Hola

Tienes varios errores de concepto:

- Estas intentando usar una función de texto (Trim) sobre el índice de una hoja que, además, alude a un rango. Por eso el error.

- Para ubicar la última fila estás usando un bucle While - Wend, que recorre cada celda de una columna, lo cual es lento

- Mencionas la columna AC, pero a tu variable TxtLast (¿u objeto?) Le das el valor de la columna 10, es decir, la I. AC es 29.

Yo lo dejaría así:

Private Sub UserForm_Activate()
Dim UltFila As Long
Let UltFila = Sheets(5).Cells(Rows.Count, 29).End(xlUp).Row
TxtLast = Sheets(5).Cells(UltFila + 1, 29)
End Sub

Comentas

Abraham Valencia

Se me "filtró" un +1, corrige:

TxtLast = Sheets(5).Cells(UltFila, 29)

Abraham Valencia

Muchas gracias

De nada, hasta la próxima.

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas