Jump to content

Recommended Posts

Buenas tarde. Tengo una hoja com mas de 1900 registros, luego de aplicar un filtro quedas 5, como haga para hacer un do while solo con los 5 registros filtrados. Al hacer el do while no "ve" lo filtrado y me recorre todo.

Gracias

Share this post


Link to post
Share on other sites

Utiliza un ciclo for, por ejemplo

Sub prueba()

For Each celda In Range("A1:A1000").SpecialCells(xlCellTypeVisible)

'Tu código....

Next

End Sub

Como veras solo recorrera las celdas visibles dentro del rango "A1:A1000" que le especifique.

Claro deberas adaptarlo a tu código

Saludos

Share this post


Link to post
Share on other sites
Hace 1 hora, AlexanderS dijo:

Utiliza un ciclo for, por ejemplo


Sub prueba()

For Each celda In Range("A1:A1000").SpecialCells(xlCellTypeVisible)

'Tu código....

Next

End Sub

Como veras solo recorrera las celdas visibles dentro del rango "A1:A1000" que le especifique.

Claro deberas adaptarlo a tu código

Saludos

Hola, lo probé pero no anda, empiza a copiar como si estuvieran todas visibles. como defino a CELDA como Range?

Share this post


Link to post
Share on other sites
Hace 3 minutos , AlexanderS dijo:

Lo siento pero no puedo ayudarte si no eres mas especifico con tu consulta, adjunta un archivo de ejemplo con lo que esperas.

 

Este es el codigo

For Each celda In Worksheets("Hoja2").Range("A1:A1000").SpecialCells(xlCellTypeVisible)
 If Worksheets("Hoja2").Range("A1:A20000").SpecialCells(xlCellTypeVisible) = True Then
   Sheets("Balance").Cells(y, 3) = Worksheets("Hoja2").Range("A1").Value
  
 End If
Next

Share this post


Link to post
Share on other sites
Hace 5 horas, AlexanderS dijo:

Lo siento pero no puedo ayudarte si no eres mas especifico con tu consulta, adjunta un archivo de ejemplo con lo que esperas.

 

Edited by Antoni

Share this post


Link to post
Share on other sites

 

Estimado adjunto archivo. La idea es que con este código...

For Each celda In Worksheets("Hoja2").Range("A1:A1000").SpecialCells(xlCellTypeVisible)
          Sheets("Balance").Cells(y, 3) = Worksheets("Hoja2").Range("A1").Value  

y=y+1
Next

Si está visible la fila,  pegue en la hoja Balance.

 

Muchas gracias por su ayuda.ayuda excel.xlsx

Share this post


Link to post
Share on other sites

No creo que necesites un blucle para eso, prueba así:

Sub copia()

Range("A1", [N1].End(xlDown)).SpecialCells(xlCellTypeVisible).Copy _
Sheets("Balance").Range("A1")
    
End Sub

 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.



  • Si estás experimentando errores al acceder al foro, te recomendamos que modifiques la contraseña desde aquí (haciendo clic en el enlace "¿Olvidaste tu contraseña?").

    Próximamente  habrá mejoras en la web y es necesario cambiar la contraseña para acceder a los nuevos contenidos.

    Disculpa las molestias.

  • Recently Browsing

    No registered users viewing this page.

  • Latest Best Answers

×
×
  • Create New...

Important Information

Privacy Policy