Jump to content
segalo

Macro con ciclo repetitivo

Recommended Posts

 

Buen dia 

Tengo la siguiente macro en la cual debo ir filtrando cada una de las columnas, con valores y las demas en ceros para poder sacar la suma y copiarla en la parte superior, y asi ir recorriendo todas las columnas, en la siguiente la columna 5 ya no hago nada y a la 6 la filtro con los <> a cero, esto lo quiero meter en un ciclo pero no he podido, creeria que seria un for e ir eliminando de una columna en cada nuevo ciclo hasta llegar al ultimo, si tienen alguna idea de como lo podria realizar, les agradezco

 

 este es parte del codigo que tengo hoy en dia manual, pero para que vean que en el siguiente va saliendo una columna.

ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=5, Criteria1:="<>0"
ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=6, Criteria1:="0"
ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=7, Criteria1:="0"
ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=8, Criteria1:="0"
ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=9, Criteria1:="0"
ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=10, Criteria1:="0"
ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=11, Criteria1:="0"
ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=12, Criteria1:="0"
ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=13, Criteria1:="0"
ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=14, Criteria1:="0"
ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=15, Criteria1:="0"
ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=16, Criteria1:="0"
ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=17, Criteria1:="0"
ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=18, Criteria1:="0"
ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=19, Criteria1:="0"


    'suma
        Range("E10").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range("E11").Select
    Selection.End(xlDown).Select
    Range("E498").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R[-482]C:R[-2]C)"
    Range("E498").Select
    Selection.Copy
    Selection.End(xlUp).Select
    Range("E9").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

 

 'filtro
    Rows("11:11").Select
    ActiveSheet.ShowAllData
    Range("A10").Select
    
    ' 2do ciclo 


ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=6, Criteria1:="<>0"
ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=7, Criteria1:="0"
ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=8, Criteria1:="0"
ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=9, Criteria1:="0"
ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=10, Criteria1:="0"
ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=11, Criteria1:="0"
ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=12, Criteria1:="0"
ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=13, Criteria1:="0"
ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=14, Criteria1:="0"
ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=15, Criteria1:="0"
ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=16, Criteria1:="0"
ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=17, Criteria1:="0"
ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=18, Criteria1:="0"
ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=19, Criteria1:="0"

 

Gracias 

 

Share this post


Link to post
Share on other sites

Hola...

Sub Filtro()
Dim n&, cCriterio$
    For n = 5 To 19
        If n = 5 Then cCriterio = "<>0" Else cCriterio = "0"
        ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=n, Criteria1:=cCriterio
    Next n
    'suma
        Range("E10").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range("E11").Select
    Selection.End(xlDown).Select
    Range("E498").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R[-482]C:R[-2]C)"
    Range("E498").Select
    Selection.Copy
    Selection.End(xlUp).Select
    Range("E9").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    'filtro
    Rows("11:11").Select
    ActiveSheet.ShowAllData
    Range("A10").Select
    
    ' 2do ciclo

    For n = 6 To 19
        If n = 6 Then cCriterio = "<>0" Else cCriterio = "0"
        ActiveSheet.Range("$A$11:$AH$434").AutoFilter Field:=n, Criteria1:=cCriterio
    Next n

End Sub

Saludos.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

INFORMACIÓN BÁSICA SOBRE PROTECCIÓN DE DATOS

Responsable: Sergio Andrés Celemín

Finalidad: Moderar y responder comentarios de usuarios. Recuerda que la información que facilites es pública, y los datos que incluyas los leerá cualquier visitante de esta web, así como el avatar que poseas.

Legitimación: Consentimiento del interesado.

Destinatarios: Hetzner Online GmbH.

Derechos: Puedes ejercitar en cualquier momento tus derechos de acceso,
rectificación, supresión, oposición y demás derechos legalmente establecidos a
través del email sergio@ayudaexcel.com.

Información adicional: Encontrarás más información en la política de privacidad.




  • Posts

    • Me vais a hacer llorar. 😂😂😘😷. Suerte a todos en estos tiempos difíciles.
    • Hola a todos Sin saber cómo recoger mi publicación, la elimino por completo Sigo aqui! Al decir que no tenga en cuenta lo que solicité anteriormente. Como en parte logré resolver el problema yo mismo: Sin embargo, el hecho es que la imagen no es la original, sino que tiene un fondo oscuro, 2) también podría decirme cómo por código puedo una vez que la imagen ha sido presentada en el formulario de usuario Puede eliminar la imagen que está en mi subcarpeta Clasificada como (mImg) o cómo darle un nombre diferente a cada imagen extraída. ¡Todo está aquí! Gracias #################################### Hi everyone Not knowing how to pick up my post I delete it completely I continue here! In saying not to keep in mind what I requested above. As in part I managed to solve the problem myself: However, the fact remains that the image is not the original one, but with a dark background, 2) you could also tell me how by code I can once the image has been presented in the userform Can delete the image that is in my subfolder Classified as (mImg) or how to give it a different name to each extracted image Everything here! Thank you (P.s) Declaro que la imagen cambia solo si el enlace está en (Label3) y ya no hay rastros de la imagen en la subcarpeta ################################ I state that the image changes only if the link is in (Label3) and there is no longer any trace of the image in the subfolder
    • Saludos @manzano Guion x coma 1.1.xlsm
    • Buenas tardes. Consulta lo que estoy intentado hacer es posible desde excel? Saludos.
    • Es un reconocimiento mas que merecido, para alguien como tu @Antoni Que todo vaya bien allá por tu lado, con esta "pandemia"   Saludos 
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy