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
	
	
	
	
	
		
ma macro filtre
	
	
	
	
	
		
merci d'avance
	
		
			
		
		
	
				
			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
		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
	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
	merci d'avance