VBA Excel : récupérer termes instruction

hardgratte Messages postés 450 Date d'inscription   Statut Membre Dernière intervention   -  
hardgratte Messages postés 450 Date d'inscription   Statut Membre Dernière intervention   -
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.



A voir également:

15 réponses

Yoskopolite Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   8
 
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
hardgratte Messages postés 450 Date d'inscription   Statut Membre Dernière intervention   76
 
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
Yoskopolite Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   8
 
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
hardgratte Messages postés 450 Date d'inscription   Statut Membre Dernière intervention   76
 
J'ai copier/coller le code que tu a écrit mais toujours la même erreur!!
Toujours sur "ActiveControl"
0
Zoul67
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
hardgratte Messages postés 450 Date d'inscription   Statut Membre Dernière intervention   76
 
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
Zoul67
 
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
Yoskopolite Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   8
 
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
hardgratte Messages postés 450 Date d'inscription   Statut Membre Dernière intervention   76
 
Je pense aussi. Et c'est peut être une meilleur idée.
A méditer.
Merci à toi Zoul67
Bonne nuit
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bonjour,
Difficile de t'aiguiller sans point de repère, montre la routine qui crée tes boutons et le code
A+
0
hardgratte Messages postés 450 Date d'inscription   Statut Membre Dernière intervention   76
 
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
hardgratte Messages postés 450 Date d'inscription   Statut Membre Dernière intervention   76
 
Mon bouton est dans une feuille Excel !!
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
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
hardgratte Messages postés 450 Date d'inscription   Statut Membre Dernière intervention   76
 
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
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
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
hardgratte Messages postés 450 Date d'inscription   Statut Membre Dernière intervention   76
 
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
Tonio
 
Je suis dans le même cas que toi, aurais tu trouvé une solution?
Merci
0
hardgratte Messages postés 450 Date d'inscription   Statut Membre Dernière intervention   76
 
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