VBA Excel : récupérer termes instruction

Bonjour,

==> Sub Bouton_02_Click()

Voila comment commence mon code (jusque là, pas de problème).
Je voudrais pouvoir récupérer, dans le code de cette procédure, le numéro qui se trouve dans "Sub Bouton_02_Click()", c'est à dire, "02".
Est ce possible ? Et comment faire ?

Merci d'avance et bonne année.

15 réponses

  1. Salut Tonio

    J'ai abdiqué pour le CommandButton.
    Mais je l'ai remplacé par Lien HyperText.
    Ainsi, je peux trouver directement le nom de cellule vu que le "vrai-faux" bouton créé (voir lien ci-dessous) est une cellule maquillée.
    http://www.cijoint.fr/cjlink.php?file=cj201105/cijmGeQOgS.xls
    Bonne continuation
    0
    1. J'ai lu vos codes en long, en large et en travers...et non en diagonale!!
      Ces code servent à créer des boutons "à répétition" en mettant leur code dans un feuille.
      Ce que je demande n'a rien a voir avec ça. Je voudrai juste trouver un équivalent de "Me.ActiveControl.Name" mais dans une feuille.
      0
      1. Je suis dans le même cas que toi, aurais tu trouvé une solution?
        Merci
        0
    2. Contributeur
      Là ... t'est vraiment dur à comprendre..
      Sic :
      Merci mais ce n'est pas vraiment ce que je cherche.
      C'est tout à fait ce que tu cherche.

      Le code du bouton, quand à lui, je ne l'ai pas encore créé car la commande...

      Voila comment commence mon code (jusque là, pas de problème)....

      Ton code qui EST DANS LA FEUILLE...

      Je te donne l'occasion de créer ton code dans ta feuille avec le 1er exemple.
      Dans ce code tu n'a que d'initialiser une variable public.
      Mais je pense que tu ne les a regardé qu'en "diagonale" sans chercher à comprendre"
      Abandon du suivi.

      L'expérience instruit plus sûrement que le conseil. (André Gide)
      Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
      0
      1. Merci mais ce n'est pas vraiment ce que je cherche.
        Je vous rappel mon problème :

        ==> Sub Bouton_02_Click()

        Voila comment commence mon code (jusque là, pas de problème).
        Je voudrais pouvoir récupérer, dans le code de cette procédure, le numéro qui se trouve dans "Sub Bouton_02_Click()", c'est à dire, "02".
        En sachant que la procédure est dans une feuille.
        0
        1. Contributeur
          Tout à fait possible

          Bouton + code

          Autre 1

          Autre 2

          A+
          L'expérience instruit plus sûrement que le conseil. (André Gide)
          Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
          0
          1. Mon bouton est dans une feuille Excel !!
            0
            1. Voila le code qui créé le bouton :

              Private Sub CommandButton2_Click()

              Dim MC As Range
              Dim BoutonEffacer As OLEObject
              Dim NextLine As Long
              Dim Code As String
              Dim Ix As Integer, Num As String
              Sheets("Feuil2").Select
              Ix = ActiveSheet.OLEObjects.Count + 1
              Num = "0" & Ix: Num = Right(Num, 2)

              Set MC = Sheets("Feuil2").Range("D19").Offset(2 * (Ix - 1), 0)

              MC = Sheets("Feuil1").ComboBox2.Value
              MC.Offset(0, 9) = Sheets("Feuil1").TextBox2.Value

              'Ajouter bouton "Retirer du panier" à chaque produits
              Set BoutonEffacer = Sheets("Feuil2").OLEObjects.Add("Forms.CommandButton.1")
              With BoutonEffacer
              .Top = MC.Offset(0, 11).Top - 5
              .Left = MC.Offset(0, 11).Left
              .Width = 100
              .Height = 30
              .Name = "BoutonRetirerPanier_" & Num
              .Object.Caption = "Retirer du panier"
              End With

              Le code du bouton, quand à lui, je ne l'ai pas encore créé car la commande "Me.ActiveControl.Name " ne marche pas (en tout cas dans un feuille).

              A votre connaissance, est ce possible de faire marcher cette commande dans une feuille (et non pas que dans un UserForm )?
              0
              1. Contributeur
                Bonjour,
                Difficile de t'aiguiller sans point de repère, montre la routine qui crée tes boutons et le code
                A+
                0
                1. Je pense aussi. Et c'est peut être une meilleur idée.
                  A méditer.
                  Merci à toi Zoul67
                  Bonne nuit
                  0
                  1. Mais il ne crée pas de code VBA correspondant à l'appui sur le bouton, je pense ?!
                    ça me dépasse un peu ; je pense que Yoskopolite partait sur une utilisation dans un UserForm.
                    0
                    1. Pour être franc il s'agissait même d'une méthode que j'utilisais dans les forms d'Access, donc j'imagine que ça correspond aux UserForm d'Excel.

                      A titre informatif, moi ça m'était utile au sein d'une gestion d'erreur personnalisée : ça me permettait de savoir quel était l'évènement qui avait appellé ma fonction qui était en erreur, et ce sans avoir à transmettre à chaque fois le nom de l'évenement appelant en paramètre de la fonction.
                      0
                  2. Mon Bouton est dans une feuille Excel.
                    Ce n'est pas moi qui créé le bouton directement, mais un code qui créé ce bouton (en faite, il en créé plusieurs, à chaque fois avec un indice de nom différent).
                    0
                    1. Bonsoir,

                      Ton bouton est dans un UserForm ou dans une feuille Excel ?
                      A part ça, ça me paraît un peu curieux de récupérer automatiquement le nom d'un bouton que tu as saisi manuellement.

                      A+
                      0
                      1. J'ai copier/coller le code que tu a écrit mais toujours la même erreur!!
                        Toujours sur "ActiveControl"
                        0
                        1. Merci pour la commande mais lorsque je tape :

                          Private Sub CommandButton1_Click()

                          Me.ActiveControl.Name

                          End Sub

                          J'ai "erreur de compilation : membres de méthodes ou de données introuvable"
                          Et il me surligne le "ActiveControl".
                          0
                          1. Ah oui par contre il faut en faire quelque chose de ce nom. Tout dépend de ce que tu veux faire après, mais en gros, récupère ça dans une variable que tu pourras utiliser après :

                            Private Sub CommandButton1_Click() 
                            
                                Dim ControlName As String 
                                Dim Numero As Integer 
                            
                                ControlName = Me.ActiveControl.Name 
                                Numero = CInt(Mid(ControlName, 14, 1)) 
                            
                            End Sub 

                            Ce code permet de récupérer le numéro (dans ce cas de test précis c'est "1").
                            Pour info :
                            - Mid sert à récupérer une sous-partie d'une chaine de caractère
                            - CInt permet de transformer notre sous-chaine de caractère en entier.

                            Après, à toi d'adapter selon tes besoin, puis d'utiliser cette variable "Numero" comme bon te semble.
                            0
                        2. Tu peux éventuellement récupérer le nom du contrôle actif (ici ton bouton) avec cette commande :
                          Me.ActiveControl.Name
                          Après il te suffit de le splitter pour ne récupérer que le "02".

                          Personnellement je n'ai jamais trouvé le moyen de récupérer le nom de l'event ("Bouton_02_Click"), seulement celui du contrôle ("Bouton_02").
                          0