Nom de Bouton

Bonjour,

J'ai un bouton qui me permet d'afficher un UserForm. A partir de la je rentre un nom "Alain" qui se range en A54.

Et là ou je bloque, j'aimerai que un autre bouton (qui celui-ci à l'heure actuel m'ouvre une feuil) prend le nom "Alain".

J'ai écris dans un module:

Sub Nom_1()
DF_Cliquer.Caption = Range("A54")
End Sub

DF_Cliquer est le nom de mon bouton.

J'ai essayé de faire aussi:

Sub DF_Cliquer()
CommandButton.Caption = Range("A54")
End Sub

Merci à mon ou ma sauveur(se)

J'ai également essayé:

Private Sub Nom_1()
ActiveSheet.DF_Cliquer.Caption = [A54]
End Sub

Et au lieu d'écrire dans Module j'ai écris dans la Feuil..

Toujours pas

Voilà mon Exemple ci joint:

Aurais-je posé une colle au forum ?

Salut,

Je crois pas avoir très bien saisie ton problème, mais voilà une solution.

En sachant que j'ai créer un "Bouton (Contrôle de formulaire)" et que ce bouton se nommera automatiquement "Button 1"

Tu va donc modifier ton Private Sub CommandButton1_Click () par :

Private Sub CommandButton1_Click()
Range("B2") = TextBox1.Value
ActiveSheet.Shapes.Range(Array("Button 1")).Select
Selection.Characters.Text = TextBox1.Value
Unload Me
End Sub

Ainsi, ton Bouton prendra le nom que tu a saisie dans ton UserFrom

Bonjour,

Dans le code associé à la feuille où se trouvent tes boutons :

Sub Nom_1()
    Me.Shapes("Rectangle 1").TextFrame2.TextRange.Characters.Text = Range("B2")
End Sub

Bonjour,

Ta formule ne fonctionne pas Thev enfin du moins je n'arrive pas à la faire fonctionner..

Je n'y arrive pas non plus avec le code de Juice

Je ne comprend pas.

Pouvez-vous m'envoyer le Excel s'il vous plait ? Ce serra plus concret pour comprendre.

Cela doit être un problème d'appel de la Macro que tu as mise dans Feuil1. Il suffit de mettre l'instruction dans la procédure évènementielle d'activation de la feuille.

Private Sub Worksheet_Activate()
    Me.Shapes("Rectangle 1").TextFrame2.TextRange.Characters.Text = Range("B2")
End Sub

Okey, ça fonctionne seulement j'ai encore un pti soucis.

Si mon Bouton (Celui qui doit prendre le nom de ma cellule) nommé actuellement Rectangle 1.

Et possédant actuellement cette macro:

Sub Rectangle1_Cliquer()
Sheets(Feuil2.Name).Select
End Sub

Si je lui met cette macro:

Sub DF_Cliquer()
Sheets(Feuil2.Name).Select
End Sub

Alors je dois modifier l'autre macro comme ceci ?

Private Sub Worksheet_Activate()
    Me.Shapes("DF").TextFrame2.TextRange.Characters.Text = Range("B2")
End Sub

J'imagine que non car ça ne fonctionne pas... ^^

Néanmoins en laissant cette macro:

Private Sub Worksheet_Activate()
    Me.Shapes("Rectangle 1").TextFrame2.TextRange.Characters.Text = Range("B2")
End Sub

Ca fonctionne mais si j'ai plusieurs bouton que j'ai renommé comment savoir si c'est le rectangle 2 le 1 le 3 le 35 ... ?

Sebyg,

Je te met mon fichier pour que tu puisse prendre ce qui t’intéresse :

Ca fonctionne mais si j'ai plusieurs bouton que j'ai renommé comment savoir si c'est le rectangle 2 le 1 le 3 le 35 ... ?

ci-joint exemple de nommage via ton UserForm avec ton deuxième bouton.

Il n'y a pas plus simple ?

Ce code fonctionne super bien:

Private Sub Worksheet_Activate()
    Me.Shapes("Rectangle 1").TextFrame2.TextRange.Characters.Text = Range("B2")
End Sub

Mais mon bouton lui ayant affecté une macro:

Sub DF_Cliquer()
Sheets(Feuil2.Name).Select
End Sub

Dès que je change dans mon premier code ("Rectangle 1") par ("DF") ou ("DF_Cliquer")

Il ne retrouve pas le nom ça me met debogage..

Si seulement je savais le nom qu'il portait avant de lui donner DF :'(

Bon du coup en refaisant mes boutons et en ne changeant pas le nom tout va bien ça fonctionne au poil.

Par contre je copie ce bouton pour le coller dans une autre feuille et là, il ne change pas de nom.

Une idée ?

Par contre je copie ce bouton pour le coller dans une autre feuille et là, il ne change pas de nom.

Pas de problème, car l'identification complète du bouton est liée à la feuille :

Me.Shapes("Rectangle 1") = Feuil1.Shapes("Rectangle 1") si le code est lié à la feuille Feuil1

Me.Shapes("Rectangle 1") = Feuil2.Shapes("Rectangle 1") si le code est lié à la feuille Feuil2

Me représente toujours l'objet auquel le code est associé (WorkBook, WorkSheet, UserForm, Module)

D'accord,

du coup je peux faire le code de ce genre ?

Me.Shapes("Rectangle 1") = Feuil1.Name.Shapes("Rectangle 1")

Comme le nom de ma feuille peux éventuellement changer je met: Feuil1.Name

Seulement il me met un message d'erreur.

J'ai également essayé de mettre dans ma feuil2:

Private Sub Worksheet_Activate()
    Me.Shapes("Rectangle 15") = ("Feuil2.Name").Shapes("Rectangle 15")
End Sub

Sans résultat je suis désolé je suis vraiment mauvais en VBA Je débute totalement

Ne pas confondre les 2 propriétés de la feuille :

1- nom de la feuille apparaissant dans les onglets du classeur = propriété .Name (propriétés éditeur VBA = Name)

2- code de la feuille apparaissant dans l'éditeur VBA = propriété .CodName (propriétés éditeur VBA = (Name))

donc c'est :

 Feuil2.Shapes("Rectangle 15")       'code de la feuille dans éditeur VBA

ou

Sheets("Feuil2").Shapes("Rectangle 15")  'nom de la feuille  dans le classeur Excel

Okey, si je comprend bien,

Dans ma Feuil1 j'ai mon bouton "Rectangle 15" qui ce met correctement à jour qui change de nom.

Sachant que ma Feuil1 se nomme (A) mais peut se nommé (X) etc Alors dans mon Code il vaut mieux que je prenne cette version:

{ Feuil2.Shapes("Rectangle 15") 'code de la feuille dans éditeur VBA}

Je vais dans ma feuil2 et là j'ai fait une copie de mon rectangle 15 que je colle.

Dans ma Feuil2 je rentre le code:

Private Sub Worksheet_Activate()
    Me.Shapes("Rectangle 15") = Feuil1.Shapes("Rectangle 15")
End Sub

et c'est sensé fonctionner non ?

Ca me met encore "l'élément portant ce nom est introuvable"

PS: Le code da ma Feuil1 est celui-ci:

'Automatisation des noms sur Bouton'
Private Sub Worksheet_Activate()
    Me.Shapes("Rectangle 15").TextFrame2.TextRange.Characters.Text = Range("A54")
End Sub

Cette instruction n'est pas valide

Me.Shapes("Rectangle 15") = Feuil1.Shapes("Rectangle 15")

car Me.Shapes("Rectangle 15") et Feuil1.Shapes("Rectangle 15") ne représentent que les 2 objets boutons sans aucune propriété associée par défaut.

Range("A1") par exemple a une propriété associée par défaut (.Value). Ce qui signifie que selon l'instruction Range("A1") peut être soit l'objet cellule, soit sa valeur.

La bonne instruction est :

Me.Shapes("Rectangle 15").TextFrame2.TextRange.Characters.Text = Feuil1.Shapes("Rectangle 15").TextFrame2.TextRange.Characters.Text

Salut !!

D'accord, je comprend mon erreur. Et ce code je dois bien le mettre dans ma Feuille ou ce trouve le bouton que j'ai copier coller sur l'autre ?

En mettant:

Private Sub Worksheet_Activate()
   Me.Shapes("Rectangle 15").TextFrame2.TextRange.Characters.Text = Feuil2.Shapes("Rectangle 15").TextFrame2.TextRange.Characters.Text
End Sub

En adaptant Rectangle 15 suivant le nom de mon bouton et suivant l'emplacement de mon bouton original qui se trouve en Feuil2 là.

C'est ça ?

Normalement oui.

Rechercher des sujets similaires à "nom bouton"