Je suis assez fier de moi
En bidouillant un peu ton code,
Option Explicit
Option Compare Text
Private Sub Worksheet_Change(ByVal Target As Range)
'Macro par DAN le 19/06/07
If Not Application.Intersect(Target, Range("A2:A2000")) Is Nothing Then
Select Case Target.Value
Case Is = "Oui"
Columns("D: D").EntireColumn.Hidden = True
Columns("B:C").EntireColumn.Hidden = False
Case Is = "Non"
Columns("B:C").EntireColumn.Hidden = True
Columns("D: D").EntireColumn.Hidden = False
End Select
End If
End Sub
(espace entre D: D pour éviter le racourci smiley)
J'obtiens le résultat voulu si l'on ne se base que sur une seule ligne. Si on utilise une seconde ligne, pour un seconde contrat, par contre il y a un effet indésirable.
Exemple:
Première ligne : Oui
Seconde ligne : Non
Résultat => seuls les colonnes associées à la réponse non s'affichent.
Cela serait parfait, si à la ligne n (Réponse non par exemple), toutes les réponses négatives (colonnes D) s'affichaient. A la ligne (n+1), (que l'on prends arbitrairement Oui) toutes les réponses B&C s'affichaient.
Cela suppose probablement une relation de récurence, malheureusement je n'ai pas le niveau pour la coder
J'espère avoir réussi à me faire comprendre. En tout cas merci de votre aide!