Format de cellule "formule" pose probleme sur macro

  • Initiateur de la discussion Initiateur de la discussion gvives
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

gvives

XLDnaute Occasionnel
Bonjour à tous,

J'ai un petit soucis avec une macro VBA qui est la suivante.

Private Sub Worksheet_Change(ByVal Target As Range)
If Split(Target.Address, "$")(1) = "H" Then
Select Case UCase(Target.Value)
Case "OUI", ""
Rows(Target.Row + 1).Hidden = True
Case "NON"
Rows(Target.Row + 1).Hidden = False
End Select
End If
End Sub

Ce code me permet de créer un questionnaire dynamique qui fait apparaitre des lignes (donc des questions) par rapport à la réponse (oui / non) indiquée sur la ligne précédente dans la colonne H. Cependant voilà j'ai également prévu des formules pour définir les "oui / non" de certaines cases et il me semble que lorsque ces "oui / non" proviennent d'une formule ils ne sont pas pris en compte.

Auriez vous une solution ?

Merci à tous.
 
Re : Format de cellule "formule" pose probleme sur macro

Bonjour Gvives,

En l'état, je ne vois pourquoi tes OUI/NON ne serait pas pris en compte !?

Il va falloir expliciter ton interrogation (avec un fichier peut-être)

A+
 
Re : Format de cellule "formule" pose probleme sur macro

Bonjour gvives, Bonjour Bruno, 🙂

L'évènement Worksheet_Change ne se produit que lors de la saisie de valeurs dans les cellules, pas lors du recalcul d'une formule
Pour les formules il faudrait envisager de passer par l'évènement Worksheet_Calculate
 
Re : Format de cellule "formule" pose probleme sur macro

Bonjour toute l'équipe,

Essaye ceci, mais attention : ton truc est hyper-dangereux. Enfin, je suppose que tu sais ce que tu fais.
Code:
    Dim Contenu As Variant
    
    Contenu = Target.Address
    If Split(Contenu, "$")(1) = "H" Then
 
Re : Format de cellule "formule" pose probleme sur macro

Salut dormeur74,

Je n'y arrive toujours pas...

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Contenu As Variant
Contenu = Target.Address
If Split(Contenu, "$")(1) = "H" Then
Select Case UCase(Target.Value)
Case "OUI", ""
Rows(Target.Row + 1).Hidden = True
Case "NON"
Rows(Target.Row + 1).Hidden = False
End Select
End If
End Sub

Pourquoi celà est-il si dangereux ? je ne risque quand même pas la visite de la brigade anti terroriste ;P

Merci encore à toi...
 
Re : Format de cellule "formule" pose probleme sur macro

Non, ce n'est pas vraiment dangereux de cacher une ligne. Suffit de savoir la restaurer.
J'ai mis des OUI, des NON, des oui, des non et des espaces vides dans la colonne H et chez moi, ça marche. C'est la ligne suivante qui est masquée (Excel 2003).
 
Re : Format de cellule "formule" pose probleme sur macro

Oui effectivement lorsqu'il s'agit d'une saisie ça marche parfaitement mais le problème se pose au niveau de la cellule H6 (texte en blanc) sur laquelle l'affichage du oui ou du non résulte d'un calcul...

Selon tototiti2008 le problème vient de worksheet.calculate mais je ne sais pas comment imbriquer un worksheet.calculate et un worksheet.change sur le même code pour que le masquage s'effectue lors d'un calcul et lors d'une saisie.

As tu une solution ?
 
Re : Format de cellule "formule" pose probleme sur macro

Bonjour Dormeur,
Re,

un solution serait de mettre une formule volatile quelque part dans la feuille de calcul (par exemple =AUJOURDHUI())
ça impliquera que chaque saisie dans ton formulaire va lancer un calcul et donc lancer Worksheet_Calculate
Tu n'auras plus besoin de Worksheet_Change, le seul soucis est que Worksheet_Calculate ne renvoie pas de plage (Target) comme Worksheet_Change, il faudra donc tester toutes les valeurs de la colonne H pour savoir s'il faut masquer ou non la ligne suivante

Tu t'en sens capable ?
 
Re : Format de cellule "formule" pose probleme sur macro

Merci beaucoup pour ta réponse tototiti2008,

Je vais essayer 😉 Heu juste une question qu'entends tu par tester toutes les valeurs de la colonne H ? Juste pour m'aiguiller sur le problème...

Merci encore...
 
Re : Format de cellule "formule" pose probleme sur macro

Re,

Tu parcours les lignes de la colonne H à partir de la ligne 3 jusqu'à la ligne de la dernière cellule remplie
Si elle contient Non, tu affiches la ligne suivante, si elle contient Oui tu la masques
 
Re : Format de cellule "formule" pose probleme sur macro

Re,

Peut-être un truc comme ça :

Code:
Private Sub Worksheet_Calculate()
Dim i As Long
    Application.EnableEvents = False
    For i = 3 To 8 'numéros des lignes des réponses à adapter
        If UCase(Range("H" & i).Value) = "NON" Then
            Rows(i + 1).Hidden = False
        Else
            Rows(i + 1).Hidden = True
        End If
    Next i
    Application.EnableEvents = True
End Sub

en mettant quelque part une formule genre

Code:
=NBVAL(H:H)
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
212
Réponses
4
Affichages
254
Réponses
7
Affichages
172
Réponses
9
Affichages
601
Retour