Bonjour
pas très compliqué
tu ajoute une variable public " cellule" dans le module tool
tu la determine en modifiant dans le selectchange de la feuil1
et dans la sub de suppression ce n'est pas active cell mais cellule
terminé
justement c'est ce que je veux dire
être débutant n'est pas une faute il faut bien commencer par quelque chose
cela dit quand on debute on choisi des méthodes plus conventionnelles
pourrait on avoir les images d'origine dans un zip que je le refasse avec des controls image
qui ont leur propre event mousemove
justement c'est ce que je veux dire
être débutant n'est pas une faute il faut bien commencer par quelque chose
cela dit quand on debute on choisi des méthodes plus conventionnelles
pourrait on avoir les images d'origine dans un zip que je le refasse avec des controls image
qui ont leur propre event mousemove
Hello,
je n'ai pas vu l'astuce à Job75 ? où est-elle ?
On peut lancer une macro directement à partir d'un lien en spécifiant le paramètre Address de la façon suivante :
Address:="#" & MacroName & "()"
Mais il faut que la Macro soit une fonction et renvoie une cible. Il ne faut pas non plus que la feuille soit protégée. Exemple :
VB:
Function Calculatrice()
' Déclarer la variable pour le chemin de l'application
Dim cheminCalculatrice As String
' Définir le chemin de l'application Calculatrice Windows
cheminCalculatrice = "calc.exe"
' Ouvrir l'application Calculatrice Windows
Shell cheminCalculatrice, vbNormalFocus
Set Calculatrice = Selection
End Function
Selection représente en fait l'image sur laquelle on a cliqué.
Voici le code d'initialisation des liens :
VB:
Sub refreshInfoBulleJP()
Dim ws As Worksheet
Dim shap As Shape
' Utiliser la feuille active
Set ws = ActiveSheet
Set shap = Sheets(1).Shapes("Image 1")
shap.Parent.Hyperlinks.Add shap, Address:="#EnvoyerMail()", ScreenTip:="envoyer par Email"
Set shap = Sheets(1).Shapes("Image 2")
shap.Parent.Hyperlinks.Add shap, Address:="#Impression()", ScreenTip:="Imprimer la commande"
Set shap = Sheets(1).Shapes("Image 3")
shap.Parent.Hyperlinks.Add shap, Address:="#GenererPDF()", ScreenTip:="enregistrer en PDF"
Set shap = Sheets(1).Shapes("Image 4")
shap.Parent.Hyperlinks.Add shap, Address:="#Calculatrice()", ScreenTip:="ouvrir la calculatrice"
Set shap = Sheets(1).Shapes("Image 5")
shap.Parent.Hyperlinks.Add shap, Address:="#Ajout()", ScreenTip:="ajouter un article"
Set shap = Sheets(1).Shapes("Image 6")
shap.Parent.Hyperlinks.Add shap, Address:="#Supprimer()", ScreenTip:="supprimer un article"
Set shap = Sheets(1).Shapes("Image 7")
shap.Parent.Hyperlinks.Add shap, Address:="#Imprimer()", ScreenTip:="enregistrer le fichier"
End Sub
En pièce jointe un classeur sans protection de feuille, sans événements de feuille.
Hello,
je n'ai pas vu l'astuce à Job75 ? où est-elle ?
On peut lancer une macro directement à partir d'un lien en spécifiant le paramètre Address de la façon suivante :
Address:="#" & MacroName & "()"
Mais il faut que la Macro soit une fonction et renvoie une cible. Il ne faut pas non plus que la feuille soit protégée. Exemple :
VB:
Function Calculatrice()
' Déclarer la variable pour le chemin de l'application
Dim cheminCalculatrice As String
' Définir le chemin de l'application Calculatrice Windows
cheminCalculatrice = "calc.exe"
' Ouvrir l'application Calculatrice Windows
Shell cheminCalculatrice, vbNormalFocus
Set Calculatrice = Selection
End Function
Selection représente en fait l'image sur laquelle on a cliqué.
Voici le code d'initialisation des liens :
VB:
Sub refreshInfoBulleJP()
Dim ws As Worksheet
Dim shap As Shape
' Utiliser la feuille active
Set ws = ActiveSheet
Set shap = Sheets(1).Shapes("Image 1")
shap.Parent.Hyperlinks.Add shap, Address:="#EnvoyerMail()", ScreenTip:="envoyer par Email"
Set shap = Sheets(1).Shapes("Image 2")
shap.Parent.Hyperlinks.Add shap, Address:="#Impression()", ScreenTip:="Imprimer la commande"
Set shap = Sheets(1).Shapes("Image 3")
shap.Parent.Hyperlinks.Add shap, Address:="#GenererPDF()", ScreenTip:="enregistrer en PDF"
Set shap = Sheets(1).Shapes("Image 4")
shap.Parent.Hyperlinks.Add shap, Address:="#Calculatrice()", ScreenTip:="ouvrir la calculatrice"
Set shap = Sheets(1).Shapes("Image 5")
shap.Parent.Hyperlinks.Add shap, Address:="#Ajout()", ScreenTip:="ajouter un article"
Set shap = Sheets(1).Shapes("Image 6")
shap.Parent.Hyperlinks.Add shap, Address:="#Supprimer()", ScreenTip:="supprimer un article"
Set shap = Sheets(1).Shapes("Image 7")
shap.Parent.Hyperlinks.Add shap, Address:="#Imprimer()", ScreenTip:="enregistrer le fichier"
End Sub
En pièce jointe un classeur sans protection de feuille, sans événements de feuille.
Encore une autre approche.... c'est vrai génial tout ceci. En revanche, je suis obligé de protéger la feuille (ça évite pas mal de mauvaise manip des utilisateurs). Donc, si je comprends bien, pas de déprotéger et reprotéger la feuille à chaque fois ?
Je n'ai pas encore vu pourquoi le fait de protéger la feuille empêche cette méthode de fonctionner. Si quelqu'un a une idée ? Par exemple est-que la sélection fonctionne sur une feuille protégée ?
Je n'ai pas encore vu pourquoi le fait de protéger la feuille empêche cette méthode de fonctionner. Si quelqu'un a une idée ? Par exemple est-que la sélection fonctionne sur une feuille protégée ?
Cela ne se produit pas sur la calculatrice mais sur les macros où on touche aux cellules de la feuille (ex : Ajout, Supprimer) et si on fait le système de déprotection protection dans la macro cela ne fonctionne pas non plus. C'est comme si avant d'exécuter la macro, excel vérifie qu'il n'y a pas dedans des instructions de modifications de cellules.
Cela ne se produit pas sur la calculatrice mais sur les macros où on touche aux cellules de la feuille (ex : Ajout, Supprimer) et si on fait le système de déprotection protection dans la macro cela ne fonctionne pas non plus. C'est comme si avant d'exécuter la macro, excel vérifie qu'il n'y a pas dedans des instructions de modifications de cellules.
re
bonjour tous les deux
chez moi avec ta méthode @jurassic pork j'ai un phénomène d'event propagation(l'action se répete deux fois)
conclusion
à tenter voir si ça marche !!??
au début de chaque sub refaire un refresch des links
pour la dé protection dans ce cas de figure ça doit se passer dans les subs aussi je suppose
j'aurais appris quelque chose aujourd'hui
j'ignorais que l'on pouvait mettre des sub dans les address et que par conséquent le clic lance la sub de l'address c'est jolie jolie tout ça
bravo le très vieux cochon
Bonjour Forum Dans une feuille, j'ai deux images nommées BoutonPlus et BoutonMoins auxquelles des macros sont déjà attribuées. Mon objectif est d'afficher automatiquement une infobulle lorsque je survole ces deux boutons, sans pour autant remplacer les macros qui leur sont attribuées. Par...
Hello patricktoulon,
peux-tu nous montrer ton code, parce que moi en fait ce que j'ai c'est que le Unprotect de la feuille ne fonctionne pas dans la macro appelée par l'hyperlien. En exécutant la macro dans l'Editeur VBA cela fonctionne. De plus quand la macro est appelée par l'hyperlien les points d'arrêt ne fonctionnent pas.