Affecter un lien hypertexte à un boutton dans le ruban personnalisé

kyasteph

XLDnaute Occasionnel
Bonjour,
j'ai un ruban excel personnalisé créé à partir de l'outil custom ui editor.
Dans le groupe "Paie",je souhaite affecter un lien hypertexte au bouton "Paie" pour ouvrir un fichier sur mon bureau,
nommé "GestionPaie".
Voici mon code :

Code:
<group id="Paie" label="Paie">

<button  id="GestionPaie" label="Gestion de la Paie" screentip="PCE Devxl et Consulting" onAction="OpenPaie" supertip="Accede au programme de gestion de la paie" size="large"
imageMso="MailMergeRecipientsEditList"  />


</group>

Quelqu'un peut il m'aider?

Merci d'avance.
 

kyasteph

XLDnaute Occasionnel
Re : Affecter un lien hypertexte à un boutton dans le ruban personnalisé

Bonjour,
Apres quelques recherches sur le net,sur ce site :"http://dj.joss.free.fr" j'ai trouvé ceci:

Un lien hypertexte sur le bouton
Il est tout à fait possible de mettre un lien hypertexte sur un bouton
Par exemple pour ouvrir une page web ou bien simplement ouvrir un fichier d'aide
Dans l'Editeur Visual Basic (Alt + F11) insérez un nouveau module et collez ce code :
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpfile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Public Sub OpenBrowser(ByVal control As IRibbonControl)
ShellExecute 0&, vbNullString, control.Tag, vbNullString, vbNullString, SW_SHOWNORMAL
End Sub
'La macro lancera le lien indiqué après la balise "tag" du code XML (Tag="le lien")
Dans l'éditeur ouvrez votre classeur "testruban.xlsm"
Ajouter le code ci-dessous après la balise </group>
Ce qui ajoutera un nouveau groupe appelé "Visitez mon site Web" avec un bouton "Site VBAXL"
N'oubliez pas d'ajouter l'image pour le bouton en cliquant sur "Insert Icons"
<group id="Services" label="Visitez mon site Web">
<button id="VBAXL" label="Site VBAXL" onAction="OpenBrowser" size="large" image="vbaxl"
tag="http://dj.joss.free.fr" />
</group>

Avec cet exemple il n'y a aucun probleme;mais comment l'adapter à mon cas;comment adapter la balise "tag" du code XML (Tag="le lien") pour ouvrir mon fichier "GestionPaie" qui se trouve sur le bureau.

Merci de m'aider s'il vous plait.
 

kyasteph

XLDnaute Occasionnel
Re : Affecter un lien hypertexte à un boutton dans le ruban personnalisé

Bonjour,
le code en vba existe bel et bien le voici:

Dans l'Editeur Visual Basic (Alt + F11) insérez un nouveau module et collez ce code :

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpfile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long

Public Sub OpenPaie(ByVal control As IRibbonControl)
ShellExecute 0&, vbNullString, control.Tag, vbNullString, vbNullString, SW_SHOWNORMAL
End Sub

Mon probeme est comment adapter le lien (tag) dans le code XML;je pense maintenant s'il faut adapter aussi ce code pour que ça marche...ce serait bien venu.

Merci de m'aider s'il vous plait
 

Regueiro

XLDnaute Impliqué
Re : Affecter un lien hypertexte à un boutton dans le ruban personnalisé

Re
Pour contrôler l'existence de ton fichier
Code:
Function WbIsOpen(WbName As String) As Boolean
On Error Resume Next
WbIsOpen = Not Workbooks(WbName) Is Nothing
End Function

Sub Test3()
Dim WbName$, AbsFN$, WayOfFile$
WbName = "FORM. METRE.xlsm" 'Le nom du fichier à modifier
AbsFN = ThisWorkbook.FullName
WayOfFile = Left(AbsFN, Len(AbsFN) - Len(ThisWorkbook.Name))
MsgBox WayOfFile
MsgBox WayOfFile & WbName
If WbIsOpen(WbName) Then
  Workbooks(WbName).Activate
Else
  Workbooks.Open Filename:=WayOfFile & WbName
End If
End Sub
 

kyasteph

XLDnaute Occasionnel
Re : Affecter un lien hypertexte à un boutton dans le ruban personnalisé

Re;
Mon fichier existe bel et bien mais je n'arrive toujours pas à l'ouvrir;je ne sais comment adapter le lien (tag):

Je reformule ma question afin peut etre de mieux me faire comprendre:

je vous envoie en piece jointe un fichier téléchargé sur le site Exemples de procédures Visual Basic Edition Applications pour Excel.
Cet exemple permet d'ouvrir le site ci dessus grace à un lien hypertexte affecté au bouton "Site VBAXL";et il marche tres bien.

Voici donc ma question:
Comment pourrais je utiliser le meme procédé pour ouvrir non pas un site web,mais plutot un fichier placé sur le bureau ?

Merci de m'aider s'il vous plait.
 

Pièces jointes

  • testruban.xlsm
    15 KB · Affichages: 27
  • testruban.xlsm
    15 KB · Affichages: 34

Regueiro

XLDnaute Impliqué
Re : Affecter un lien hypertexte à un boutton dans le ruban personnalisé

Bonsoir le Forum, kyasteph
j'ai bien ouvert ton fichier du Post précédent
Je n'arrive malheureusement pas mettre dans le Tag un chemin d'accès
Actuellement j'ai mis dans le tag:
Code:
tag="C:\Desktop"
Mais je n'arrive pas mettre le chemin complet ??
Si je met le chemin complet à l'ouverture du fichier il n'y pas l'onglet Perso

Pour y remédier, voici le code qui ouvre bien un fichier :
Code:
Sub test(ByVal control As IRibbonControl)
Dim WbName$, AbsFN$, WayOfFile$
MsgBox control.Tag
WbName = "ACCUEIL_2012-V03.xlsm"
AbsFN = "C:\Users\José\Desktop\"

WayOfFile = Left(AbsFN, Len(AbsFN) - Len(ThisWorkbook.Name))
WayOfFile = AbsFN
 MsgBox WayOfFile
 MsgBox WayOfFile & WbName
 'ShellExecute 0&, vbNullString, control.Tag, vbNullString, vbNullString, SW_SHOWNORMAL
 
 If WbIsOpen(WbName) Then
 Workbooks(WbName).Activate
Else
   Workbooks.Open Filename:=WayOfFile & WbName
 End If
 End Sub
    'ShellExecute 0&, vbNullString, control.Tag, vbNullString, vbNullString, SW_SHOWNORMAL


Function WbIsOpen(WbName As String) As Boolean
 On Error Resume Next
 WbIsOpen = Not Workbooks(WbName) Is Nothing
 End Function
A1
 

kyasteph

XLDnaute Occasionnel
Re : Affecter un lien hypertexte à un boutton dans le ruban personnalisé

Bonsoir le forum;Regueiro
Merci beaucoup pour ton code,je l'ai testé et cela marche.
Mais qu'en est il d'un fichier avec extension ".exe" et non pas "xlms" ?
Est il possible d'adapter le code pour ouvrir un tel fichier ?

J'ai essayé d'ouvrir un tel fichier à l'aide du code en l'état mais cela me donne un fichier illisible.

Existe t il une solution à cela.

Merci de m'aider s'il vous plait.
 

Regueiro

XLDnaute Impliqué
Re : Affecter un lien hypertexte à un boutton dans le ruban personnalisé

Bonsoir
Un exemple qui ouvre la calculatrice.
Chemin à modifier selon votre systeme
Code:
Sub lanceCalculatrice()
Dim Chemin
Chemin = "C:\Windows\System32\CALC.EXE"
Dim RetVal
' Exécute la calculatrice.
'C:\Windows\System32
'RetVal = Shell("C:\WINDOWS\CALC.EXE", 1)
RetVal = Shell(Chemin, 1)

End Sub
 

kyasteph

XLDnaute Occasionnel
Re : Affecter un lien hypertexte à un boutton dans le ruban personnalisé

Bonsoir,
Grand merci....j'ai enfin la solution à mon probleme;encore merci pour ta sollicitude et pour ces codes .
Vous me faites ainsi énormément avancé dans mon programme;merci encore.
Longue vie au forum.,et bon dimanche.
 

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 182
dernier inscrit
moutassim.amine