Re : Imposer la valeur 0 à une cellule si réponse "Oui" dans une autre cellule
Bonjour Job75,
la macro fonctionne dans le fichier exemple que j'ai joint hier à ma question. Elle ne fonctionne pas dans le fichier dans lequel je l'ai intégrée. J'obtiens le message suivant :
"Erreur de compilation : Nom ambigu détecté : WorkSheet_Change".
Pouvez-vous m'aider sur ce point ?
Je joins la copie des deux macros de ma feuille Excel
Re : Imposer la valeur 0 à une cellule si réponse "Oui" dans une autre cellule
Bonjour Patrick75, le forum,
Avec ce message ça ne vous vient pas à l'esprit qu'il faut une seule macro WorkSheet_Change ???
Code:
Private Sub Worksheet_Change(ByVal R As Range)
If [H9] = "Oui" And CStr([O7]) <> "0" Then [O7] = 0
If R.Address <> "$C$12" Then Exit Sub
Me.Unprotect "XXX"
Rows("14:19").Hidden = IIf(R = "Non", 1, 0)
Me.Protect "XXX"
End Sub
Evidemment les cellules C12 H9 O7 doivent être déverrouillées.
On peut écrire plus simplement :
Code:
Private Sub Worksheet_Change(ByVal R As Range)
If [H9] = "Oui" And CStr([O7]) <> "0" Then [O7] = 0
Me.Unprotect "XXX"
Rows("14:19").Hidden = [C12] = "Non"
Me.Protect "XXX"
End Sub
Re : Imposer la valeur 0 à une cellule si réponse "Oui" dans une autre cellule
Merci Job75, cela fonctionne très bien
Hélas, je n'ai pas de connaissances Excel. Je crée des fichiers utilitaires en ayant appris "sur le tas" quelques notions de bases.
J'avais essayé par moi-même de regrouper les deux macros en une mais le faisant "au petit bonheur la chance", j'ai vu subitement toutes mes macros s'ouvrir à l'écran ! J'ai vite annulé craignant l'arrivée d'un bug dans mon fichier.
j'ai appris quelque chose aujourd'hui. Merci encore
Bien cordialement
Patrick