Saltar al contenido
publicado

Hola buenas tardes:

Por favor me pueden ayudar a realizar lo siguiente.

ejecutar una macro después de un tiempo, que recorra una columna a partir de la celda activa hacia abajo.

Es una lista extensa, que filtro desde la columna B.

y solo me muestra las filas que me interesan.

ejemplo: Si mi celda activa es la C23 ejecutar la macro y baje una celda y repite la macro después de 20 segundos y lo vuelve hacer(Simpre bajando una celda), y que este se detenga hasta la ultima fila que este visible en el filtro.

Ya que puedo tener muchos datos mas.

 

Gracias

 

Prueba filtro y avance.xlsm

Solucionado por JSDJSD

Ir a la solución

Featured Replies

publicado
  • Autor
hace 20 horas, MarianoCruz dijo:

Hola buenas tardes:

Por favor me pueden ayudar a realizar lo siguiente.

ejecutar una macro después de un tiempo, que recorra una columna a partir de la celda activa hacia abajo.

Es una lista extensa, que filtro desde la columna B.

y solo me muestra las filas que me interesan.

ejemplo: Si mi celda activa es la C23 ejecutar la macro y baje una celda y repite la macro después de 20 segundos y lo vuelve hacer(Simpre bajando una celda), y que este se detenga hasta la ultima fila que este visible en el filtro.

Ya que puedo tener muchos datos mas.

 

Gracias

 

Prueba filtro y avance.xlsm 16.57 kB · 1 descarga

He cambiado mi macro a este:

Sub repetir()
Set a = Sheets(ActiveSheet.Name)
uf = a.Range("C" & Rows.Count).End(xlUp).Row 'ultima fila con datos
ActiveCell.Select
ActiveCell.Offset(1, 0).Select


  'Application.OnTime Now + TimeValue("00:00:10"), "repetir", , True
End If
End Sub

 

Lo que no se es como detenerlo al llegar a la ultima fila con datos de la columna C.

Muchas gracias

publicado
  • Solution
Sub RecorrerRangoC()

    Set hoja = ActiveSheet
    
    Set rango = hoja.Range("C2:C" & hoja.Cells(hoja.Rows.Count, "C").End(xlUp).Row)

    If rango.Cells.Count = 0 Then
        MsgBox "No hay datos en la columna C.", vbExclamation
        Exit Sub
    End If
    
    For Each celda In rango.SpecialCells(xlCellTypeVisible)
        celda.Select
        Application.Wait Now + TimeValue("00:00:01")
    Next celda
End Sub

Prueba y comenta

image.gif

publicado

En el ejemplo te he puesto 1 segundo para no hacer largo el gif, cámbialo a tu necesidad

  • 2 months later...
publicado
  • Autor
En 19/4/2024 at 10:27 , JSDJSD dijo:
Sub RecorrerRangoC()

    Set hoja = ActiveSheet
    
    Set rango = hoja.Range("C2:C" & hoja.Cells(hoja.Rows.Count, "C").End(xlUp).Row)

    If rango.Cells.Count = 0 Then
        MsgBox "No hay datos en la columna C.", vbExclamation
        Exit Sub
    End If
    
    For Each celda In rango.SpecialCells(xlCellTypeVisible)
        celda.Select
        Application.Wait Now + TimeValue("00:00:01")
    Next celda
End Sub

Prueba y comenta

image.gif

Hola buenos dias JSDJSD:

De antemano muchas gracias por tu ayuda. pero me encuentro con el siguiente problema cada que ejecuto la macro inicia desde la celda especifica "C2". hasta la ultima celda con datos. Esta vez mis datos no son filtradas. lo que deseo en ella es que yo pueda esta en cualquier celda de la columna C y apartir de ahi  empiece a recorrer las celdas hasta el ultimo. 

Ejemplo: Si estoy en la celda C20: iniciara aqui el recorrido de las celdas a la ultima con datos. o si me posiciono en la celda C7 desde ahi iniciara.

Trate de poner el set rango  desde celda activa (o seleccionada) hasta la ultima hoja.

Muchas gracias

Mariano

Crear una cuenta o conéctate para comentar