comment créer un bouton pour lancer mon programme depuis Excel - VB/VBA/VBS - Programmation
Marsh Posté le 21-10-2009 à 10:26:14
Bonjour
S'agit-il de VBA Excel ?
Excel 2007 ou précédents ?
Marsh Posté le 21-10-2009 à 11:50:18
VBA 6.5
Excel 2003 (mais je pense qu'il doit y avoir certains ordis dans la boîte ou une version plus récente est installée)
pour l'instant, j'ai une feuille Excel avec juste un bouton au milieu marque "lancer le programme, mais c'est pas génial comme méthode.
Marsh Posté le 23-10-2009 à 16:17:28
vedammi a écrit : VBA 6.5 |
Marsh Posté le 23-10-2009 à 16:21:25
Je peux vous proposer une solution, malheureusement, je pars dans une heure à l'étranger pour une dizaine de jours, et n'ai pas le temps de rédiger une explication complète.
Si cela n'est pas trop tard, je vous propose de vous la donner à mon retour, vers le 2-3 novembre.
Désolé de ce délai...
Marsh Posté le 23-10-2009 à 18:05:32
Salut, un exemple sur http://cjoint.com/?kxsekcosBX , à adapter à ton contexte
voir également http://fring.developpez.com/vba/excel/barremenu/
Marsh Posté le 03-11-2009 à 15:38:46
Bonjour,
Comme promis (si cela vous est toujours utile), voici une solution que j'utilise régulièrement.
En plus de "MonAppli.xls", je crée un fichier d'installation (InstalMonAppli.xls par exemple) avec le code suivant :
"
Sub Auto_Open()
'
'Lancement du programme "MonAppli".
'Si le bouton de lancement existe déjà, on le supprime et on le recrée.
'S'il n'existe pas de bouton de lancement de l'application "MonAppli",
'on en installe un dans la barre d'outils "Standard"
'L'image de ce bouton se trouve dans la feuille "Feuil1" de ce fichier.
'
chemin = ActiveWorkbook.Path
ChDir chemin
Set MonBouton = CommandBars.FindControl _
(Type:=msoControlButton, Tag:="MonAppli" )
If Not MonBouton Is Nothing Then
MonBouton.Delete 'Supprime le bouton existant
End If
'Le bouton n'existe pas. On le crée.
Set MonBouton = Application.CommandBars("Standard" ).Controls.Add _
(Type:=msoControlButton, Before:=16, Id:=1)
ActiveSheet.Unprotect
ActiveSheet.Shapes("MonAppli" ).Select
Selection.Copy
MonBouton.PasteFace 'Mise à jour de l'image du bouton
MonBouton.Tag = "MonAppli" 'Identification du bouton
MonBouton.Caption = "Mon Application" 'Info-bulle
MonBouton.OnAction = chemin & "\InstalMonAppli.xls!lanceur" 'Action à effectuer.
Lanceur
End Sub
Sub Lanceur()
'Lancement de la routine "Init" du programme MonAppli 'ouvert en Read Only pour éviter les
‘modifications intempestives et/ou permettre une utilisation multiple éventuellement.
chemin = ThisWorkbook.Path
ChDir chemin
Workbooks.Open FileName:=chemin & "\MonAppli.xls", updatelinks:=0, ReadOnly:=True
Run "MonAppli.xls!Init"
ThisWorkbook.Close savechanges = False
End Sub
"
J'ouvre ce fichier dans Excel la première fois pour installer le bouton dans la barre d'outils Stadards d'Excel.
Les lancement suivants se feront en cliquant directement sur le bouton dans la barre d'outils Standard d'Excel.
Le passage par l'intermédiaire : "InstalMonAppli.xls!lanceur" permet de lancer l'application en ‘read only pour éviter les
modifications intempestives et/ou permettre une utilisation multiple éventuellement.
Marsh Posté le 03-11-2009 à 15:42:37
PS:
Avec Excel 2007, le bouton sera positionné automatiquement dans l'onglet "Compléments" du Ruban, avec cette méthode.
Marsh Posté le 20-10-2009 à 11:34:12
Bonjour, j'ai quasiment fini mon programm, et j'aimerais savoir comment faire pour créer un bouton pour le lancer depuis la barre d'outils, afin de le rendre disponible facilement depuis n'importe quel fichier excel ouvert.