Macro : Selon valeur cellule

Résolu/Fermé
Keusti_001 Messages postés 29 Date d'inscription mercredi 15 mai 2019 Statut Membre Dernière intervention 7 février 2023 - 2 oct. 2019 à 16:48
Keusti_001 Messages postés 29 Date d'inscription mercredi 15 mai 2019 Statut Membre Dernière intervention 7 février 2023 - 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
A voir également:

2 réponses

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
3 oct. 2019 à 08:15
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
1
Keusti_001 Messages postés 29 Date d'inscription mercredi 15 mai 2019 Statut Membre Dernière intervention 7 février 2023
Modifié le 3 oct. 2019 à 10:37
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.
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
3 oct. 2019 à 11:00
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
1
Keusti_001 Messages postés 29 Date d'inscription mercredi 15 mai 2019 Statut Membre Dernière intervention 7 février 2023
Modifié le 16 oct. 2019 à 12:51
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
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
16 oct. 2019 à 13:46
Bonjour,

c'est bon
0
Keusti_001 Messages postés 29 Date d'inscription mercredi 15 mai 2019 Statut Membre Dernière intervention 7 février 2023
16 oct. 2019 à 14:10
Oui, j'ai fini par y arriver effectivement :D. Merci à vous deux ! :)
0