Modification texte d'un bouton

Bonjour,

Je rencontre une problématique sur une modification de texte pour un bouton.

J'ai réalisé un petit code VBA permettant la modification du texte, qui se réalise correctement. Mais lorsque je ferme et relance ma userform la modification ne se prend pas en compte.

Auriez vous une idée ?

Merci

23test.xlsm (19.25 Ko)

Salut Jess,

Salut le Forum,

Mais lorsque je ferme et relance ma userform la modification ne se prend pas en compte.

Parceque c'est un paramètre qui doit être définit et sauvegardé et si tu veux définitivement le modifier, alors il faut retourner dans la fenêtre de propriété!

Auriez vous une idée ?

Il existe bien un moyen de tricher :

1. A l'initialisation de ton UserForm, lancer une macro à partir d'un module qui définit la Caption de ton Bouton :

Sub Init()
UserForm1.CommandButton2.Caption = "a"
End Sub

2. Lors de la modification du nom du bouton, aller chercher la ligne de code correspondante dans ton Module1 et la modifier par ta nouvelle saisie :

Private Sub CommandButton1_Click()
Dim i As Long, txt As String
If MsgBox("Voulez vous modifier le texte ?", vbYesNo, "Modification ") = vbYes Then
    txt = InputBox("Quel nom voulez vous modifier ?", "Choix nom")
    CommandButton2.Caption = txt
    Set VB = ThisWorkbook.VBProject.VBComponents("Module1").CodeModule
    For i = 2 To VB.CountOfLines
        If VB.Lines(i, 1) Like "UserForm1.CommandButton2.Caption = *" Then VB.ReplaceLine i, "UserForm1.CommandButton2.Caption = """ & txt & """"
    Next
End If
End Sub

Comme sa ton code est modifié, et la prochaine fois que tu ouvre ton UF, le button 1 affichera le nouveau texte

Je te laisse tester et revenir vers nous

A dispo

20pour-jess.xlsm (23.25 Ko)

Bonjour Juice,

Merci pour ton aide, ce forum est juste génial pour apprendre et progresser.

Je viens d'essayer ton fichier et cela ne fonctionne pas, en pj, j'ai pris un screen du code avec l'erreur en jaune.

Cdt,

12screenerreur.xlsx (28.93 Ko)

Re- Jess

Est ce que tu a activé la référence 'Microsoft Visual basic For Application Extensibility 5.3' et activé le paramètre 'Accès approuvé au modèle du projet VBA' ?

J'ai pas pensé a te le dire mais c'est nécessaire pour pouvoir modifier du code VBA avec du code :p

A dispo!

Bonjour,

A mon sens, le mieux est de stocker le caption du bouton dans un nom invisible qui est récupéré à l'ouverture de la Form si il existe. Petit conseil, évite les Goto "étiquette" mis à part pour les gestionnaires d'erreurs, le code peut devenir difficile à maintenir, c'est ce qu'on appelle une code spaghetti :

Private Sub UserForm_Initialize()

    Dim Nom As Name

    On Error Resume Next
    Set Nom = ThisWorkbook.Names("TitreBtn")
    If Err.Number <> 0 Then Exit Sub

    CommandButton2.Caption = Replace(Right(Nom, Len(Nom) - 1), """", "")

End Sub

Private Sub CommandButton1_Click()

    Dim x As String

    If MsgBox("Voulez vous modifier le texte ?", vbYesNo, "Modification ") = vbNo Then Exit Sub

    x = InputBox("Quel nom voulez vous modifier ?", "Choix nom")

    CommandButton2.Caption = x

    ThisWorkbook.Names.Add "TitreBtn", x, False

End Sub

Bonjour Juice et Theze,

Merci pour vos infos si précieuse.

Cela fonctionne !

Heureusement qu'il existe des expert comme vous !

A bientôt

Rechercher des sujets similaires à "modification texte bouton"