VBA ajout bouton commande

Bonjour,

Mon fichier me permet,via un script, de créer plusieurs feuilles ou un calendrier est affichés. J'aimerais pouvoir ajoutés via un script un bouton de type commande a chacune des feuilles que je créer. Cependant je n'ai aucune idée comment le faire mais aussi comment liés le code aux boutons que je vais créer.

Si quelqu'un peut m'aider je lui en serais infiniment reconnaissant

Cordialement

Dushmol

Bonjour,

Mon fichier me permet,via un script, de créer plusieurs feuilles ou un calendrier est affichés. J'aimerais pouvoir ajoutés via un script un bouton de type commande a chacune des feuilles que je créer. Cependant je n'ai aucune idée comment le faire mais aussi comment liés le code aux boutons que je vais créer.

Si quelqu'un peut m'aider je lui en serais infiniment reconnaissant

Cordialement

Dushmol

Bonjour,

Et le code des Boutons de commands ainsi créés il consiste en quoi ?

  • un code particulier à chaque feuille ?
  • un liens hypertexte ?

Oui j'ai oublié de preciser enfaite les boutons vont permettre de calculer certaines données le code seras commun quelque soit la feuille

Oui j'ai oublié de preciser enfaite les boutons vont permettre de calculer certaines données le code seras commun quelque soit la feuille

Ok donc si c'est le même code il sera plus facile de mettre le code dans un module pour pouvoir l'appeler

par son nom dans les boutons de command.

j'avais penser au module mais je n'ai aucune idée de comment liés un modules aux différents bouton qui serons créer

j'avais penser au module mais je n'ai aucune idée de comment liés un modules aux différents bouton qui serons créer

Un exemple ; mais dans un premier temps enregistres une macro manuellement pour la création d'un bouton

activeX ( tu auras le code pour la position, taille du bouton… )

Dans mon exemple le bouton n'est sans doute pas à la place souhaitée.

Pour le Code du bouton

Tu indiques juste Code=et entre guillemets le nom de la macro qui contient le code.

Sub Macro1()

    ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False _
        , DisplayAsIcon:=False, Left:=312.75, Top:=26.25, Width:=180, Height _
        :=54).Select

    Code = "Macro2"

End Sub

Tout compte fait c'est plus simple avec un Bouton ordinaire plutôt qu'un Bouton ActiveX.

Sub Macro4()
    ActiveSheet.Buttons.Add(345.75, 173.25, 174, 67.5).Select
    Selection.OnAction = "Macro2" ' insertion nom macro qui aura le code
    Selection.Characters.Text = "CALCUL" ' titre du bouton
    Range("G18").Select

End Sub

parfait j'ai tout compris maintenant.

Je te remercie je vais de ce pas me mettre au travail

Cordialement,

dushmol

je reviens vers vous parceque j'ai une erreur que je ne comprend pas.

L'erreur indique une incompatibilité de type

voici les différentes partie concerné

la création du bouton

Sheets(Sheets_Name).Buttons.Add(300, 885, 174, 67.5).Select
    Selection.OnAction = "Module9.Calcul" 
    Selection.Characters.Text = "CALCULER" 

et le code du bouton

Sub Calcul()
    Dim Tableau(60, 1)
    Dim cptCase As String
    Dim cptTab As String
    Range("A57") = "Projet"
    Range("B57") = "Nb demi-journée"
    Range("C57") = "% Sur le mois"
 End Sub

L'erreur est indiqué sur la ligne Sub Calcul() et je ne comprend pas du tout le rapport entre le message d'erreur et la ligne concerné

La macro s'appel module 9 ?

je ne pense pas

si elle est dans le module 9 elle commence par Sub....... ()

donc son nom c'est le petit point dans cette exemple.

oops c'est le code qui suit dans ton exemple donc : Calcul

avec un C majuscule

en espérant que tu n'as pas utilisé Calcul pour d'autres nom de macro ?

j'ai essayer avec seulement Calcul mais cela ne marche pas.

Je vais essayer d'être plus clair je me suis rendus compte que j'avais mal expliqué

La création du bouton s'effectue dans le code de l'index du fichier. Le but de se bouton est d'effectuer un calcul sur toutes les pages créer depuis l'index.

Pour cela j'ai placer le code s'effectuant au click de se bouton dans un module qui s'appelle Module9.

Quoique je fasse pour l'appel du code (Module9.Calcul ou juste Calcul) je me retrouve avec une erreur d'incompatibilité de type...

je pense qu'il y a quelque chose qui m'echappe mais je n'arrive pas a voir quoi

j'ai essayer avec seulement Calcul mais cela ne marche pas.

Je vais essayer d'être plus clair je me suis rendus compte que j'avais mal expliqué

La création du bouton s'effectue dans le code de l'index du fichier. Le but de se bouton est d'effectuer un calcul sur toutes les pages créer depuis l'index.

Pour cela j'ai placer le code s'effectuant au click de se bouton dans un module qui s'appelle Module9.

Quoique je fasse pour l'appel du code (Module9.Calcul ou juste Calcul) je me retrouve avec une erreur d'incompatibilité de type...

je pense qu'il y a quelque chose qui m'echappe mais je n'arrive pas a voir quoi

L'index du fichier ? tu veux dire l'onglet que tu as appelé "index" ?

Le code fonctionne quand il est activé à partir de cet onglet ?

Dans ce cas en début de code du module 9 ajoutes

With sheet("index")

.activate

…..

end with

j'ai essayer avec seulement Calcul mais cela ne marche pas.

Je vais essayer d'être plus clair je me suis rendus compte que j'avais mal expliqué

La création du bouton s'effectue dans le code de l'index du fichier. Le but de se bouton est d'effectuer un calcul sur toutes les pages créer depuis l'index.

Pour cela j'ai placer le code s'effectuant au click de se bouton dans un module qui s'appelle Module9.

Quoique je fasse pour l'appel du code (Module9.Calcul ou juste Calcul) je me retrouve avec une erreur d'incompatibilité de type...

je pense qu'il y a quelque chose qui m'echappe mais je n'arrive pas a voir quoi

L'index du fichier ? tu veux dire l'onglet que tu as appelé "index" ?

Le code fonctionne quand il est activé à partir de cet onglet ?

Dans ce cas en début de code du module 9 ajoutes

With sheet("index")

.activate

…..

end with

Oui depuis l'ongle qu j'ai appelé index pardon

je m'en vais essayer

merci !

J'ai essayer d'ajouter le With Sheet("Index") mais malheureusement pas de résultat concluant j'ai maintenant une erreur disant

instruction incorrect a l’extérieur d'une procédure

J'ai essayer d'ajouter le With Sheet("Index") mais malheureusement pas de résultat concluant j'ai maintenant une erreur disant

instruction incorrect a l’extérieur d'une procédure

With Sheets("Index")

.Activate

oops avec le s à sheets

et à la fin de la macro

end with

C'est se que je me suis dit mais même avec le "s" j'ai la même erreur

est ce que le With doit être placer avant le Sub ?

Bonjour,

Les boutons et les feuilles, c'est comme l'apéro 1 ç'est bon, après... bonjour les dégats !

En admettant que tu aies vraiment besoin de 365 feuilles ce qui me semble pas prouvé, à quoi bon mettre un bouton sur chaque feuille si chaque bouton recalcule toutes les feuilles.

Tu mets un bouton unique sur ta feuille index et basta...

Ou encore mieux tu crées un bouton macro unique dans le ruban et à toi la belle vie...

A+

C'est se que je me suis dit mais même avec le "s" j'ai la même erreur

est ce que le With doit être placer avant le Sub ?

non non surtout pas le with c'est après le sub.

- Le code qui crée les nouveaux onglets avec le nouveaux boutons il fait aussi une "save" du fichier ?

il faut peut être qu'il enregistre les modifs avant de pouvoir vérifier le nombre d'onglets ?

- Tu lances comment ta macro d'habitude ?

Le plus simple serait encore de joindre un fichier avec les infos confidentielles en moins

oops pas vu la réponse de galopin mais pas bête : au lieu d'un bouton macro un bouton lien hypertexte

pour revenir à ta ton onglet index et lancer le calcul

Bonjour,

Petite précision les feuilles créer représente 1 mois.

L'idée du bouton dans le ruban est intéressante cependant je ne sais pas si c'est la meilleure des solutions vu que le fichier seras utilisé par les employés ( un bouton pour chaque mois me semble le plus simple ) l'idée de se bouton est de fournir un tableau récapitulatif une fois toutes les infos données

Cordialement

dushmol

Je vais joindre les fichiers pour plus de compréhension

Attention je prefere préciser c'est un peu le bazar étant donné que je suis encore débutant en vba

Désolé mais même avec le fichier je ne vois pas à quel moment ton code du module9 est utilisé

dans l'onglet "index"

Rechercher des sujets similaires à "vba ajout bouton commande"