Problema con código para encontrar la última fila, cuando hay filas ocultas.

Buenas tardes estimados, recurro a ustedes debido a que tengo un ligero problema, el código que a continuación pego funciona a la perfección lo que hace es buscar la ultima fila y escribe los datos que corresponde en la sigueinte fila en blanco . (dejo el código y abajo les explico el problema)

If ActiveCell.Value = ID And CONTROLB = "SALIDA" Then
    ActiveCell.Offset(0, 3).Select
    presupuestoanterior = ActiveCell.Value
        If presupuestoanterior < CANTIDAD Then
            MsgBox "SIN PRESUPUESTO, LO SIENTO" & Chr(13) & "Sólo hay " & presupuestoanterior & " Quetzales.", vbOKOnly + vbCritical, "**Información de Presupuesto"
            Sheets("PRINCIPAL").Select
        Exit Sub
        End If
        presupuestonuevo = Val(ActiveCell.Value) - Val(CANTIDAD)
    ActiveCell.Value = presupuestonuevo
    Selection.End(xlToLeft).Select
    MsgBox "Un Gasto por: " & VALOR & " " & DESCRIPCION & ". La Cuenta" & Chr(13) & "Disminuyó de: " & presupuestoanterior & " a " & presupuestonuevo & " Quetzales.", vbOKOnly + vbInformation, "**Salidas"
    Sheets("HISTORIAL").Select
    Range("B1").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(1, 0).Select
    ActiveCell.Value = ID
    ActiveCell.Offset(0, 1).Value = CATEGORIA
    ActiveCell.Offset(0, 2).Value = DESCRIPCION
    ActiveCell.Offset(0, 3).Value = CANTIDAD
    ActiveCell.Offset(0, 4).Value = MES
    ActiveCell.Offset(0, 5).Value = CHEQUE
    ActiveCell.Offset(0, 6).Value = PROVEEDOR
    ActiveCell.Offset(0, 7).Value = REGIMENFISCAL
    ActiveCell.Offset(0, 8).Value = FECHAFACTURA
    ActiveCell.Offset(0, 9).Value = CONTROLB
    fecha = Now()
    ActiveCell.Offset(0, 10).Value = fecha
    MsgBox "Registro exitoso en historial", vbOKOnly + vbInformation, "**Historial"

El problema está cuando oculto filas de historial, por ejemplo:

        A             B         C

1      XX          XX      XXX

2     XX          XX       XXX

3    XX          XX      XXX

4    XXX       XXX     XXXX    Oculto esta fila

5

6

Visiblemente se ve

       A        B        C

3   xx         xx    xxx

5

y al momento de correr el macro identifica la fila 4 como vacía y sobre escribe los datos.

Pueden ayudarme??

Muchas gracias.

2 respuestas

Respuesta
1

Este código fue el que me sirvió, y lo encontré igual aquí, en una respuesta de la ingeniera Elsa Matilde, de igual forma muy agradecido con el Ingeniero Dante que respondió a la brevedad.

Esté codígo localiza la última fila, aunque la anterior esté oculta. Funcionó para lo que quería al 100%.

I = 1
'se recorre la col 1 (ajustar a tu libro) desde la celda i=1 hasta que se encuentre una celda vacía
While ActiveSheet.Cells(I, 2).Value <> ""
'si no está vacía se pasa a la fila siguiente
ActiveSheet.Cells(I, 2).Select
'se incrementa el contador
I = I + 1
'se repite el bucle
Wend
'mensaje indicando la fila de la última celda
'MsgBox i - 1

Respuesta
1

Y si al principio de la macro pones la instrucción para que se muestren todas las filas:

Cells.EntireRow.Hidden = False

De lo contrario tendrías que cambiar varias instrucciones en tu macro.

Saludos. Dante Amor

Si es lo que necesitas.

¡Gracias! por la respuesta, muy buena la sugerencia, de antemano me disculpo ya que arriba no escribí más información. Resulta que necesito que las filas estén ocultas, y que el macro en verdad en lugar de sobreescribir en la fila 4 que está oculta, lo haga en la fila 5.

Normalmente si no estubiera nada oculto ese sería el procedimiento, muchas gracias ingeniero Dante

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas