Macro : Selon valeur cellule

Résolu
Keusti_001 Messages postés 31 Statut Membre -  
Keusti_001 Messages postés 31 Statut Membre -
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

2 réponses

  1. Frenchie83 Messages postés 2254 Statut Membre 339
     
    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
    1. Keusti_001 Messages postés 31 Statut Membre
       
      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
  2. Frenchie83 Messages postés 2254 Statut Membre 339
     
    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
    1. Keusti_001 Messages postés 31 Statut Membre
       
      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
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Bonjour,

      c'est bon
      0
    3. Keusti_001 Messages postés 31 Statut Membre
       
      Oui, j'ai fini par y arriver effectivement :D. Merci à vous deux ! :)
      0