Bonjour,
Je suis un autodidacte, et votre code m'a été très utile en servant de base pour masquer des colonnes par rapport à 2 critères.
J'ai malgré tout un souci et je sollicite votre aide.
La ligne contenant les valeurs à rechercher est la 6.
La colonne de départ est la colonne Q, soit la 16.
Je demande à arrêter le masquage à la colonne CX, soit la 101.
Cela fonctionne, mais pour une raison qui m'échappe, lorsque l'onglet à plus de 15 lignes, la macro bloque sur la ligne 16.
Pour contourner le problème, je laisse la ligne 16 vide, je la masque, et tout fonctionne de nouveau.
Étrange !!!!
Sub Masque()
'On bloque le rafraichissement de l'écran
Application.ScreenUpdating = False
Dim depart As Long
'On supprime le précédent masquage
Cells.Select
Selection.EntireColumn.Hidden = False
Range("a1").Select
'On cherche le numéro de la dernière colonne utilisée
depart = Cells(16, Columns.Count).End(xlToLeft).Column
'on parcours les autres colonnes et si la ligne 2 de la colonne
'est différente de 3, on la masque
'Avec Excel 2003, j'ai 256 colonnes. Avec une autre version, il faut changer le 256 par le
'nombre de colonnes
'depart + 5 permet de décaler le masquage à partir de la 5ème colonne
For i = depart + 16 To 101
If Cells(6, i) <> Range("D4").Value And Cells(6, i) <> Range("E4").Value Then Columns(i).Hidden = True
Next i
End Sub
Au plaisir d'avoir une solution.
Cordialement