Imposer la valeur 0 à une cellule si réponse "Oui" dans une autre cellule

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 !

Patrick75

XLDnaute Junior
Bonjour aux membres du Forum,

Je souhaiterais imposer la valeur "0" à une cellule si la réponse est "Oui" dans une autre cellule (avec menu déroulant "Oui" ou "Non".

Pouvez-vous m'aider s'il vous plait ?

je joins un fichier pour expliquer le contexte de ma demande.
Cordialement,
Patrick
 

Pièces jointes

Re : Imposer la valeur 0 à une cellule si réponse "Oui" dans une autre cellule

Bonsoir Patrick75,

Clic droit sur l'onglet => Visualiser le code et coller cette macro :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If [G5] = "Oui" And CStr([G3]) <> "0" Then [G3] = 0
End Sub
A+
 
Dernière édition:
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

Merci et cordialement,
Patrick
 

Pièces jointes

  • Sans titre.png
    Sans titre.png
    24.7 KB · Affichages: 42
  • Sans titre.png
    Sans titre.png
    24.7 KB · Affichages: 44
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
Bonne journée.
 
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
 
- 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

Retour