Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Exécuter macro si

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 !

Marc_du_78

XLDnaute Accro
Bonjour les ami (e)s,
Je plante pour une histoire de comparaison de cellule.

Sur la même feuille, dans la cellule "I12" on saisie une valeur de 1 à 6
En "A30" s'affiche sous condition (=SI(B30="";"";1) le chiffre 1,
en "A31" le chiffre 2, (=SI(B31="";"";2)
...
en "A35" le chiffre 6 (=SI(B35="";"";6)
Je désirerai que, lorsque le chiffre affiché est égal à celui saisie en "I12" que ca m'appele une macro nommée "NombreAtteint"
Ces chiffres de 1 à 6 ne s'affichent que si une cellule correspondante est renseignée.

Si vous avez quelques idées, je suis bien évidemment preneur.
En vous remerciant et vous souhaitant une onne soirée. Chez moi, ca gronde et il pleut en torrents.
 
Re : Exécuter macro si

Bonjour Marc_du_78,

Pas sur d'avoir compris,peut être ce code?

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sel As Range
Set Sel = Range("i12")
If Not Application.Intersect(Sel, Range(Target.Address)) Is Nothing Then
If Range("a30").Value = Range("i12") Or Range("a31").Value = Range("i12") Or Range("a35").Value = Range("i12").Value Then NombreAtteint
End If
End Sub

Salut Yves
 
Dernière édition:
Re : Exécuter macro si

Bonsoir le fil, bonsoir le forum,

Assez proche de la proposition de Ziopizza je propose cette solution :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 
Dim plage As Range 'déclare la variable plage
Dim cel As Range 'déclare la variable cel
 
Set plage = Range("B30:B35") 'définit la variable plage
 
'si l'édition se fait ailleurs que dans la plage ou I12, sort de la procédure
If Application.Intersect(Target, plage) Is Nothing And Target.Address <> "$I$12" Then Exit Sub
 
For Each cel In plage.Offset(0, -1) 'boucle sur les cellules contenant les formules (colonne A)
 
    If cel.Value = Range("I12") Then 'si la valeur de la cellule est égale à celle de I12
        Call nombreAtteint 'lance la macro
        Exit For 'sort de la boucle
 
    End If 'fin de la condition
 
Next cel 'prochaine cellule de la plage
 
End Sub
 
- 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
2
Affichages
378
Réponses
9
Affichages
362
Réponses
7
Affichages
367
Réponses
12
Affichages
452
Réponses
4
Affichages
548
  • Question Question
Microsoft 365 Formule si ?
Réponses
7
Affichages
508
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…