[résolu]macro de création d'un bouton, de code VBA et d'affectation de code au bouton

Over_gamer

XLDnaute Nouveau
Bonjour,

ça fait maintenant 4 heures que je bloque sur la même macro, à savoir la création d'un bouton ainsi que de son code VBA via un bouton sur une feuille excel.

Je m'explique:

on click sur le bouton1

ma macro s'éxécute, elle créé le bouton2, créé le code VBA dans le module1 et affecte le code en question au bouton2


C'est principalement la partie "création du code" qui me pose soucis.

Si quelqu'un s'y connais en création de code via un bouton et à le temps de jeter un coup d’œil, merci d'avance :)


Je vous joint un fichier exemple.


ps: le nombre de bouton à créer sera d'une 20aine environ

Cordialement
 

Pièces jointes

  • ATR test.xlsm
    16.9 KB · Affichages: 74
  • ATR test.xlsm
    16.9 KB · Affichages: 76
  • ATR test.xlsm
    16.9 KB · Affichages: 76
Dernière édition:
G

Guest

Guest
Re : macro de création d'un bouton, de code VBA et d'affectation de code au bouton

Bonjour,

Pourquoi mettre les macros des boutons dans les modules de feuille?!

Si tu tiens absolument à le faire la propriété OnAction sera: NomFeuille.NomMacro et ta macro devra être de niveau publique. Il y avait également une erreur d'écriture de la macro en chaine:

Code:
laMacro = laMacro & "Range(" & """L27""" & ").Select" & vbCrLf
Ne pas oublié les double guillemets """L27"""

Code:
Dim laMacro As String
Dim x As Integer
 
laMacro = "Public Sub Rectangle" & crea & "()" & vbCrLf
laMacro = laMacro & "Range(" & """L27""" & ").Select" & vbCrLf
laMacro = laMacro & "MsgBox " & """Opération terminée!""" & vbCrLf
laMacro = laMacro & "End Sub"

With ThisWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule
    x = .CountOfLines + 1
    .InsertLines x, laMacro
End With
MyShape.OnAction = ActiveSheet.Name & ".Rectangle" & crea

A+
 

Over_gamer

XLDnaute Nouveau
Re : macro de création d'un bouton, de code VBA et d'affectation de code au bouton

Merci beaucoup!

Pour expliquer rapidement, je mets en place une procédure dans mon entreprise (je suis apprentis), et cette procédure nécessite que des non informaticiens puissent créer des boutons.

Par rapport au code que tu m'a donné, c'est exactement ce qu'il me fallait, à un détails près, un gros détail même, cette ligne:

laMacro = laMacro & "Range(" & """L27""" & ").Select" & vbCrLf

Il est nécessaire pour mon programme que la ligne sélectionnée soit la ligne choisie par l'utilisateur, c'est à dire la variable crea, de plus comme plusieurs boutons vont être créér, je pense qu'il faudra que le code inscrit soit la valeur de crea et non "crea"

As-tu une idée?

Merci d'avance

ps: je t'ai en pj mon fichier "un peu plus avancé" si ça peux t'aider à comprendre ce que je veux.
 

Pièces jointes

  • ATR test.xlsm
    21.6 KB · Affichages: 49
  • ATR test.xlsm
    21.6 KB · Affichages: 56
  • ATR test.xlsm
    21.6 KB · Affichages: 57
Dernière édition:
G

Guest

Guest
Re : macro de création d'un bouton, de code VBA et d'affectation de code au bouton

Bonjour,

Voici ta ligne corrigée
Code:
laMacro = laMacro & "Range(" & """L" & crea & """" & ").Select" & vbCrLf

Comme la correction était basique, et comme tu sembles ne pas maîtriser VBA, je te décourage d'utiliser les objets de VBProject dans ta procédure professionnelle.

Dans le fichier joint tu trouveras une autre façon de faire, moins lourde qui appelle une macro générique (toujours dans feuil1) pour tous les boutons.

A+
 
Dernière modification par un modérateur:

Over_gamer

XLDnaute Nouveau
Re : macro de création d'un bouton, de code VBA et d'affectation de code au bouton

Bonjour,

Ta première réponse me convient parfaitement ;)

Je tiens juste à dire que je ne trouve pas cette réponse "basique", l'imbrication des guillemets étant de mon point de vue assez chaotique ^_^

Concernant mon niveau en VBA, il tiens la route sur des choses basiques, mais pas sur des sujets très pointu comme l'écriture de code VBA grace au code VBA ou d'autres choses dans le genre pour lesquels je suis obligé de farfouiller sur ce forum.

ps: J'ai regardé ton fichier joint, il marche, mais il utilise des choses que je ne connais pas, comme "Application.Caller" donc je préfère en rester à la première version.

Encore merci ;)
 
G

Guest

Guest
Re : macro de création d'un bouton, de code VBA et d'affectation de code au bouton

Re,

Application.Caller ne fait qu'indiquer comment a été appelé la macro, si c'est un Shape, Application.Caller est de type string et contient le nom du bouton.

Touche magique: F1:)

A+
 

Over_gamer

XLDnaute Nouveau
Re : macro de création d'un bouton, de code VBA et d'affectation de code au bouton

Ok, je comprend mieux merci

Et perso je préfère chercher sur google plutôt que dans l'aide de microsoft, plus rapide ;) étant donné la lenteur du pc qui m'est assigné.

A+
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 947
Membres
101 849
dernier inscrit
florentMIG