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

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

  • Valeur imposée à C en F° valeur d'1 autre C.xlsm
    11.2 KB · Affichages: 43

job75

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

Patrick75

XLDnaute Junior
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: 39
  • Sans titre.png
    Sans titre.png
    24.7 KB · Affichages: 42

job75

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

Patrick75

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

Discussions similaires