Masquer ligne sous condition de résultat d'une formule

Bonjour,

Je ne connais rien au VBA mais il me semble que c'est la seule solution à mon besoin. Je souhaite afficher/masquer une ligne en fonction du résultat d'une formule. En cherchant sur les forums, j'ai trouvé et tenté d'adapter cette macro:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub '<-- si plusieurs cellules sont sélectionnées on quitte la procédure sinon ça bug

If Target.Address = "$C$10" Then '<-- vérification que la modification se passe dans la cellule C10

Select Case Target.Value

Case "Trajet formation": Rows("10").Hidden = True

Case "": Rows("10").Hidden = False

End Select

End If

End Sub

mais le résultat n'est pas concluant:

  • je n'arrive pas à enregistrer/exécuter la macro sur ma feuille
  • les cellules C10; C14; G10...contiennent des formules
  • il faut que je reproduise cette macro pour plusieurs cellules/lignes (G10 => ligne 10; C14 et G14 => ligne 14...)

Pouvez-vous m'aider? Merci d'avance!!!!!

Bonjour.

Tu peux te servir de Application.Intersect dont l'utilisation est bien illustrée ici https://forum.excel-pratique.com/cours-astuces/utilisation-de-la-methode-intersect-t1314.html

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub '<-- si plusieurs cellules sont sélectionnées on quitte la procédure sinon ça bug
If Not Application.Intersect(Target, Range("C10,C14,G10")) Is Nothing Then
Select Case Target.Value
Case "Trajet formation": Rows(Target.Row).Hidden = True
Case "": Rows(Target.Row).Hidden = False
End Select
End If

End Sub

Cordialement

Docmarti

Rechercher des sujets similaires à "masquer ligne condition resultat formule"