Bonjour,
Je travaille sur un classeur ou certaines colonnes et lignes doivent être masquées.
Je réutilise pour ça une macro de jp14 : https://www.excel-downloads.com/threads/masquer-certaines-lignes-suivant-conditions.131493/
Le code ci-dessous bloque (erreur 2023 ou erreur incompatibilité de type, souligné en jaune dans l'interface VB)
Pourriez-vous m'aider pour lever cette erreur et éventuellement de meilleure idées pour alléger ce code ?
PI :
- les lignes sont masquées si je trouve 15 dans la ligne en colonne F (correspond à la couleur du format de la ligne en colonne E)
- Les colonnes sont masquées si je trouve le texte X ou Y dans l'entête de colonne)
Merci pour votre aide 🙂
	
	
	
	
	
		
	
		
			
		
		
	
				
			Je travaille sur un classeur ou certaines colonnes et lignes doivent être masquées.
Je réutilise pour ça une macro de jp14 : https://www.excel-downloads.com/threads/masquer-certaines-lignes-suivant-conditions.131493/
Le code ci-dessous bloque (erreur 2023 ou erreur incompatibilité de type, souligné en jaune dans l'interface VB)
Pourriez-vous m'aider pour lever cette erreur et éventuellement de meilleure idées pour alléger ce code ?
PI :
- les lignes sont masquées si je trouve 15 dans la ligne en colonne F (correspond à la couleur du format de la ligne en colonne E)
- Les colonnes sont masquées si je trouve le texte X ou Y dans l'entête de colonne)
Merci pour votre aide 🙂
		Code:
	
	
	Sub Masque_Lignes_et_Colonnes()
Dim Target As Range
Dim cellule As Range
'evite le flashage
    Application.ScreenUpdating = False
    Set Target = Sheets("14").Range("K7")
    With Sheets("14")
    .Rows("2:" & 200).EntireRow.Hidden = False
'La plage de cellule ou il faut chercher
        For Each cellule In .Range("K7:K" & 200)
        
'on récupere la valeur de la cellule si cest 15 on masque
             If cellule.Value = "15" Then
                .Rows(cellule.Row).EntireRow.Hidden = True
             End If
            
        Next cellule
    End With
'On repete la meme operation sur la deuxieme feuille (il y en aura plus)
    Set Target = Sheets("50").Range("K7")
    With Sheets("50")
    .Rows("2:" & 200).EntireRow.Hidden = False
        
        For Each cellule In .Range("K7:K" & 200)
        
            If cellule.Value = "15" Then
             .Rows(cellule.Row).EntireRow.Hidden = True
            End If
                      
            
        Next cellule
    End With
'Ensuite On Masque les colonnes de la premiere feuille
    Set Target = Sheets("14").Range("G3")
    With Sheets("14")
    .Columns("A:IV").EntireColumn.Hidden = False
        For Each cellule In .Range("G3:IV3" & 256)
              
                
 'dans chaque il y a des colonnes avec toujours les deux mêmes en tetes à masquer, ce n'est plus un nombre comme pour les lignes a masquer mais du texte
 
            If cellule.Value = "Volume reserve par l annonceur " Then
                .Columns(cellule.Column).EntireColumn.Hidden = True
            End If
            
            If cellule.Value = "Part de voix indicative reservee par l annonceur" Then
                .Columns(cellule.Column).EntireColumn.Hidden = True
            End If
            
        Next cellule
              
    End With
'Masque les lignes de la deuxieme feuille, il y en a potentiellement plus
    Set Target = Sheets("50").Range("G3")
    With Sheets("50")
    .Columns("A:IV").EntireColumn.Hidden = False
   '
         For Each cellule In .Range("G3:IV3" & 256)
                
                
 '!!!!!! dans la ligne suivante la macro bloque toujours avec l'erreur 2023 ou 13 incompatibilité de type. Pourtant c'est le meme code que pour la premiere feuille !!!!
 
 
            If cellule.Value = "Volume reserve par l annonceur " Then
                .Columns(cellule.Column).EntireColumn.Hidden = True
            End If
            
            If cellule.Value = "Part de voix indicative reservee par l annonceur" Then
                 .Columns(cellule.Column).EntireColumn.Hidden = True
            End If
            
        Next cellule
    
    End With
Application.ScreenUpdating = True
End Sub