VBA - Filtre + calcul.

0

Bonjour a tous , deja bonne année a vous .

Je me permet de vous deranger pour vous demander un peu d'aide car je suis un peu perdu .

j'ai un GROS fichier et j'ai deja une vba qui masque les ligne selon la casse cocher dans une autre feuille

et une autre vba qui filtre si une case est vide . j'aimerais fusionner les deux et les mettre en filtre si possible .

De plus j'aimerais avoir si vous auriez une idee pour faire en sorte que les calcul ne ce fasse pas sur toutes les pages a chaque changement .

ma macro avec masquage

[CODE=vb] If Not Intersect(Target, Range("I6:I65")) Is Nothing Then

        If Cells(Target.Row, 9) = "X" Then

            Cells(Target.Row, 9) = ""

            For Each f In Sheets(Array("HJanvier", "Janvier", "BJanvier"))

                         

                If f.Range("A6") = "Jours" And f.Range("A8") = Range("X26") Then

                    For i = 9 To 65

                        If f.Range("A" & i) = Cells(Target.Row, 8).Value Then

                            f.Rows(i & ":" & i).EntireRow.Hidden = False

                        End If

                    Next i

                End If

               

            Next f

        Else

            Cells(Target.Row, 9) = "X"

            For Each f In Sheets(Array("HJanvier", "Janvier", "BJanvier"))

                         

                If f.Range("A6") = "Jours" And f.Range("A8") = Range("X26") Then

                    For i = 9 To 65

                        If f.Range("A" & i) = Cells(Target.Row, 8).Value Then

                            f.Rows(i & ":" & i).EntireRow.Hidden = True

                        End If

                    Next i

               

                End If

            Next f

        End If[/CODE]

ma macro filtre

[CODE]Private Sub Worksheet_Change(ByVal Target As Range)

Application.ScreenUpdating = False

    Dim WS As Worksheet

    Dim wss As Worksheet

For Each WS In Sheets(Array("HJanvier", "HFevrier", "HMars", "HAvril", "HMai", "HJuin", _

                          "HJuillet", "HAout", "HSeptembre", "HOctobre", "HNovembre", "HDecembre", _

                          "BJanvier", "BFevrier", "BMars", "BAvril", "BMai", "BJuin", _

                          "BJuillet", "BAout", "BSeptembre", "BOctobre", "BNovembre", "BDecembre", _

                          "Bilan"))

                         

                    If Not Intersect(Target, Range("H5:H69")) Is Nothing Then

                                              WS.Unprotect "azerty"

                                    WS.Range("$A$8:$A$67").AutoFilter Field:=1, Criteria1:="<>", Visibledropdown:=False

                                      WS.Protect ("azerty"), DrawingObjects:=True, Contents:=True, Scenarios:=True _

                      , AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True, AllowFiltering:=True

                                             

                                             

End If

Next WS

    For Each wss In Sheets(Array("Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", _

                          "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Decembre"))

                         

                    If Not Intersect(Target, Range("H5:H69")) Is Nothing Then

                                            wss.Unprotect "azerty"

                                    wss.Range("$A$8:$A$67").AutoFilter Field:=1, Criteria1:="<>", Visibledropdown:=False

                                    wss.Protect ("azerty"), DrawingObjects:=True, Contents:=True, Scenarios:=True _

                      , AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True, AllowFiltering:=True

                                   

                                             

                                             

End If

Next wss

Application.ScreenUpdating = True

End Sub

[/CODE]

merci d'avance


    Posté le 2 janvier 2020, 11:03
    par Latos
    Répondre
    0

    Bonjour,

    Afin de tester, ce serait super d'avoir la structure des feuilles avec quelques données (rendues anonymes bien entendu)

    https://www.cjoint.com/

    Merci par avance

    MicXL Posté le 7 janvier 2020, 05:45
    par MicXL

    Si vous n'êtes pas inscrit sur le site, vous pouvez poster librement (en tant qu'invité).
    Pour cela, indiquez un pseudonyme (nom d'utilisateur) et une adresse email :