bouton qui change de nom...

grodep

XLDnaute Occasionnel
Bonjour à tous, je vous soumets ce souci qui survient dans un classeur qui, jusqu'à maintenant, tournait correctement.
lorsque je lance ma macro, un bout du code est chargé de déplacer un bouton:
Code:
 ActiveSheet.Shapes("Button 2").Select
    With ActiveSheet.Shapes("Button 2")
    .Left = Range(Chr(78 + i) & S + 4).Left
    .Top = Range(Chr(78 + i) & S + 4).Top
     End With

aujourd'hui, pour une raison que j'ignore, il me répond que "l'élément portant ce nom est introuvable" . Or, je n'ai pas renommé ce bouton.
D'une part je n'arrive pas à atteindre les propriétés du bouton afin de vérifier qu'il s'agit bien du "button 2", si qqun pouvait rappeler à ma cervelle d'oiseau comment faire ce serait très sympa(office 2007).
D'autre part, j'aimerai, afin d'éviter toute nouvelle mésaventure de cet ordre, savoir comment écrire une instruction qui, dans une feuille, permet de détecter les différents boutons pour leur réaffecter un nom. Je ne parle pas du "titre" du bouton tel qu'il s'affiche dessus, mais bien de son nom(caption, il me semble en vba).

Merci d'avance et désolé pour les questions récurrentes, j'ai fait une recherche sur "renommer boutons" dans le forum mais ne trouve que des explications pour des commandbuttons dans des userforms, ce qui ne s'applique pas dans mon cas présent.

NB: ce qui est vraiment incompréhensible, c'est que pour lancer ce code, je clique sur ce fameux bouton ,qui lors de l'initialisation du tableau est appelé "button 2" par défaut et la macro lui est affecté
Code:
 Sheets("vols").Select
    ActiveSheet.Buttons.Add(180.75, 273, 89.25, 37.5).Select
    Selection.OnAction = "traitement_tableau"
    ActiveSheet.Shapes("Button 2").Select
    Selection.Characters.Text = "Traitement données"
: donc d'un coté, il est correctement identifié et il fonctionne(puisque la macro se lance quand je clique dessus) et d'un autre coté, il me dit ensuite qu'il n'existe pas...
strange, very strange...

je ne vous fournis pas tout le code( c'est tellement trop du charabia que j'ai trop honte de l'afficher ici) mais je doute qu'il vous soit utile pour répondre à mon souci en tout cas pas dans un premier temps.
 
Dernière édition:

Cousinhub

XLDnaute Barbatruc
Re : bouton qui change de nom...

Bonjour,

Application.Caller te donne le nom du bouton qui appelle le code :

Code:
X = Application.Caller
    With ActiveSheet.Shapes(X)
    .Left = Range(Chr(78 + I) & S + 4).Left
    .Top = Range(Chr(78 + I) & S + 4).Top
     End With

que tu peux résumer ainsi :

Code:
With ActiveSheet.Shapes(Application.Caller)
    .Left = Range(Chr(78 + I) & S + 4).Left
    .Top = Range(Chr(78 + I) & S + 4).Top
End With
 

grodep

XLDnaute Occasionnel
Re : bouton qui change de nom...

hmmm ça me paraissait idéal comme solution, malheureusement ça ne fonctionne pas
Code:
ActiveSheet.Shapes(Application.Caller).Select
    With ActiveSheet.Shapes(Application.Caller)
    .Left = Range(Chr(78 + i) & S + 4).Left
    .Top = Range(Chr(78 + i) & S + 4).Top
     End With
me renvoi la meme erreur : l'élément portant ce nom est introuvable.
 

grodep

XLDnaute Occasionnel
Re : bouton qui change de nom...

ah oui je n'ai pas précisé, il s'agit d'un bouton issu de la barre d'outils "controles" dans l'onglet développeur.

enfin pour etre précis, puisqu'il s'agit de office 2007 : onglet développeur, groupe controle, insérer, controle de formulaire,bouton.

Du coup, difficile de dire s'il appartient a la barre d'outils controle ou la barre formulaires :)
 
Dernière édition:

Cousinhub

XLDnaute Barbatruc
Re : bouton qui change de nom...

Re-,

Comme tu as utilisé "groupe controle", c'est donc un bouton issu de la barre d'outils "Contrôle"

PS, d'ailleurs, ce serait bien que tu précises la version Excel utilisée dans ton profil.....

Regarde le fichier joint..

Avec un module de classe, j'obtiens le nom du bouton qui a provoqué le code...

Nota, si tu modifies ou rajoute du code, il te faut impérativement re-dérouler l'initialisation des CommandButtons (par appui sur le bouton vert...)
 

Pièces jointes

  • mdl classe cmd_feuille.xls
    37.5 KB · Affichages: 99

grodep

XLDnaute Occasionnel
Re : bouton qui change de nom...

grand merci pour ton aide, qui m'apporte quelques informations bien utiles(et meme indispensable) !!

Cependant, la vérité était ailleurs : chr(72+i) renvoyait un caractère qui n'était plus une lettre de l'alphabet, et c'est cela qu'excel considérait comme "introuvable"... sans cet éclair de lucidité ce matin, j'aurai cherché encore longtemps :p

grand merci
 

Discussions similaires

Statistiques des forums

Discussions
312 392
Messages
2 088 004
Membres
103 693
dernier inscrit
vincs