A voir également:
- VBA Excel : récupérer termes instruction
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
15 réponses
Tu peux éventuellement récupérer le nom du contrôle actif (ici ton bouton) avec cette commande :
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").
Me.ActiveControl.NameAprè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").
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".
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".
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 :
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.
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.
J'ai copier/coller le code que tu a écrit mais toujours la même erreur!!
Toujours sur "ActiveControl"
Toujours sur "ActiveControl"
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+
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+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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).
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).
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.
ça me dépasse un peu ; je pense que Yoskopolite partait sur une utilisation dans un UserForm.
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.
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.
Bonjour,
Difficile de t'aiguiller sans point de repère, montre la routine qui crée tes boutons et le code
A+
Difficile de t'aiguiller sans point de repère, montre la routine qui crée tes boutons et le code
A+
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 )?
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 )?
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)
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)
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.
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.
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)
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)
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.
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.
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
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