Macro : Selon valeur cellule

Messages postés
14
Date d'inscription
mercredi 15 mai 2019
Statut
Membre
Dernière intervention
16 octobre 2019
- - Dernière réponse : Keusti_001
Messages postés
14
Date d'inscription
mercredi 15 mai 2019
Statut
Membre
Dernière intervention
16 octobre 2019
- 16 oct. 2019 à 14:10
Bonjour à tous,

Je suis débutant en macro, mais avide d'apprendre / comprendre !

Je souhaite appeler, selon la valeur d'une cellule, une macro plutot qu'une autre.

Si la cellule C23 de l'onglet "Analyses" est égale à 1, alors j'aimerais lancer la macro "ZSOLO_BoutonSOLO".
Si C23 > 1, alors lancer la macro "Z_BOUTON".

Je ne sais pas si c'est important, mais la case C23 est complété selon une recherche verticale.

Ca me parait tout simple, mais je cale !

un grand merci pour votre aide!

Keusti
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
2001
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
16 octobre 2019
230
1
Merci
Bonjour,

Il vous faut activer la macro à chaque changement de la valeur que vous recherchez avec la formule Recherchev
Exemple: supposons que la valeur à rechercher est en B3 de la feuille "Analyses"
Votre formule: Recherchev(B3; Plage de recherche; colonne; 0)
Macro à copier dans le module de la feuille "Analyses"
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$23" Then
        If [C23] = 1 Then
            ZSOLO_BoutonSOLO
        ElseIf [C23] > 1 Then
            Z_BOUTON
        End If
    End If
End Sub


Cdlt

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 64099 internautes nous ont dit merci ce mois-ci

Keusti_001
Messages postés
14
Date d'inscription
mercredi 15 mai 2019
Statut
Membre
Dernière intervention
16 octobre 2019
-
Hello !

Merci pour ton aide !

Est-ce possible de donner un nom a cette macro, et de pouvoir l'appliquer via un bouton? :)

Quelques chose comme ceci ?
Sub Test()
Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$23" Then
If [C23] = 1 Then Call ZSOLO_BoutonSOLO
ElseIf [C23] > 1 Then Call Z_Bouton
End If
End If
End Sub

Mais il me mets la 2e ligne en rouge - Erreur de compilation / syntaxe...


PS : Petite faute de frappe dans la 2e ligne de ton code ? Il s'agit bien de "$C$23" et non "$B$23" ;-).
D'ailleurs, est-ce que les $ sont indispensables dans les macro ? Je comprends l'utilité dans les formules, mais moins dans une macro.
Commenter la réponse de Frenchie83
Messages postés
2001
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
16 octobre 2019
230
1
Merci
Si vous voulez lancer la macro via un bouton:

Sub Test()
    If [C23] = 1 Then
        ZSOLO_BoutonSOLO
    ElseIf [C23] > 1 Then
        Z_BOUTON
    End If
End Sub


Cdlt

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 64099 internautes nous ont dit merci ce mois-ci

Keusti_001
Messages postés
14
Date d'inscription
mercredi 15 mai 2019
Statut
Membre
Dernière intervention
16 octobre 2019
-
Comment je peux faire si la case C23 est dans un autre onglet?

Quelque chose comme ceci ?

Sub AA_MACRO_GLOBALE()
If Worksheets("Procédures").Range("C23") = 1 Then
AC_Bouton_SOLO
ElseIf Worksheets ("Procédures").Range("C23") > 1 Then
AB_Bouton
End If
End Sub
michel_m
Messages postés
15934
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 octobre 2019
2813 -
Bonjour,

c'est bon
Keusti_001
Messages postés
14
Date d'inscription
mercredi 15 mai 2019
Statut
Membre
Dernière intervention
16 octobre 2019
-
Oui, j'ai fini par y arriver effectivement :D. Merci à vous deux ! :)
Commenter la réponse de Frenchie83