Format de cellule "formule" pose probleme sur macro

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.
 
C

Compte Supprimé 979

Guest
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+
 

tototiti2008

XLDnaute Barbatruc
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
 

gvives

XLDnaute Occasionnel
Re : Format de cellule "formule" pose probleme sur macro

Salut BrunoM45,

Je te joint un fichier exemple.

J'ai mis en vert les actions que tu dois faire pour arriver à mon "beug".

Merci pour ton aide ;)
 

Pièces jointes

  • Exemple.xlsm
    33.1 KB · Affichages: 45
  • Exemple.xlsm
    33.1 KB · Affichages: 54
  • Exemple.xlsm
    33.1 KB · Affichages: 47

Dormeur74

XLDnaute Occasionnel
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
 

gvives

XLDnaute Occasionnel
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...
 

Dormeur74

XLDnaute Occasionnel
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).
 

gvives

XLDnaute Occasionnel
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 ?
 

tototiti2008

XLDnaute Barbatruc
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 ?
 

gvives

XLDnaute Occasionnel
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...
 

tototiti2008

XLDnaute Barbatruc
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
 

tototiti2008

XLDnaute Barbatruc
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)
 

Discussions similaires

  • Résolu(e)
Microsoft 365 pb formule vba
Réponses
15
Affichages
762

Statistiques des forums

Discussions
312 185
Messages
2 086 010
Membres
103 090
dernier inscrit
Createlier