[VBA] Ouvrir lien hypertexte grâce a une macro

TeethBrush3r

XLDnaute Nouveau
Bonjour tout le monde!

J'ai un document excel utilisé comme base de donnée pour des instructions de travail. C'est plutot simple: les opérateurs choisissent le moule voulu dans une liste défilante et la feuille va chercher automatiquement les données dans une autre feuille. J'ai aussi une section image qui montre une photo du moule, de la pièce qu'il produit et de l'installation sur la presse. Avant j'utilisais la fonction DÉCALER pour aller chercher la bonne photo automatiquement dans la feuille contenant les photos, mais étant donné qu'elle contenanit plus de 500 photos, le fichier est devenu très volumineux et très lent.

Voilà ce que je cherche a faire: j'ai remplacé toutes les images par le lien et ai créer une fonction qui va automatiquement chercher les bons liens et les rammene dans la feuille. Maintenant, je voudrais pouvoir ouvrir ces liens avec un bouton. Étant donné qu'il y a 4 liens, il y aurait 4 boutons qui en ouvriraient chacun un.

Dans le fond, il me faudrait quelque chose de semblable à cela:
Code:
Workbooks.Open Filename:="R:\Dossier contenant toutes les images\img1.jpg"
mais qu'au lieu de contenir un lien, ça irait automatiquement chercher celui dans la cellule C56.

Aussi faudrait-il que l'image se ferme automatiquement après environ 25 minutes.



J'espère que c'était clair, et merci à l'avance de votre aide!


P.S. Mes connaissances en VBA sont quasi-nulles.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : [VBA] Ouvrir lien hypertexte grâce a une macro

Bonjour.
Je pense que vous allez devoir utiliser des contrôles Image de la boite à outils contrôles et à exécuter des instructions du style :
VB:
Feuil1.ImageX.Picture = LoadPicture(Chemin & "\" & NomFic & ".jpg")
Cordialement.
 
Dernière édition:

TeethBrush3r

XLDnaute Nouveau
Re : [VBA] Ouvrir lien hypertexte grâce a une macro

Wow, merci de la reponse rapide!
Mais comme dit précédement, mes connaissances en VBA sont presque inexistantes. Serait-il possible de savoir comment integrer le code SVP? Aussi, comment je fais pour que le chemin d'accès et le nom du fichier soit pris automatiquement de la cellule C56?

Merci encore!
 

Dranreb

XLDnaute Barbatruc
Re : [VBA] Ouvrir lien hypertexte grâce a une macro

Eh ben vous le récupérez dans une procédure comme ça:
VB:
Feuil1.ImageX.Picture = LoadPicture(Feuil1.[C56].Value)
Feuil1 étant le bon CodeName de la feuille et ImageX le nom d'un objet Image qui y existe.
 

TeethBrush3r

XLDnaute Nouveau
Re : [VBA] Ouvrir lien hypertexte grâce a une macro

Lorsque tu dis que ImageX est "le nom d'un objet Image qui y existe", tu veux dire que c'est la nom de la forme sur laquelle je clique pour activer la macro? Si c'est bien cela, comment je fais pour trouver son nom?

Désolé je sais, je suis vraiment débutant :rolleyes:
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : [VBA] Ouvrir lien hypertexte grâce a une macro

Je n'ai pas parlé de forme mais d'objet Image de la Boîte à outils Contrôles (même icone montagne + soleil (ou lune plutôt ?) que celui de la barre d'outils dessin qu'il ne faut pas prendre)
Une fois implanté en mode création, affichez la fenêtre de propriété, cliquez sur l'objet: c'est sa propriété Name.
 

TeethBrush3r

XLDnaute Nouveau
Re : [VBA] Ouvrir lien hypertexte grâce a une macro

Merci! Une petite dernière chose: les images sont beaucoup plus grosses que l'objet Image, comment je fais pour qu'elles se redimensionnent automatiquement à la grosseur de l'objet Image?
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : [VBA] Ouvrir lien hypertexte grâce a une macro

Pas de problème, c'est une propriété de l'objet image que vous devriez trouver facilement. Sinon je vous dirais. SizeMode je crois.
P.S. À mettre sur Zoom, je crois, aussi…
 
Dernière édition:

TeethBrush3r

XLDnaute Nouveau
Re : [VBA] Ouvrir lien hypertexte grâce a une macro

Ça marche! Voilà 3 jours que je lis des tutoriels pour programmer en VBA et que j'essaie différentes chose, un gros merci!!

Mais y a-t-il un moyen de mettre un bouton qui permet de réinitialiser l'objet Image (le vider pour plus qu'il n'y ait de photo).


Encore merci!
 

Dranreb

XLDnaute Barbatruc
Re : [VBA] Ouvrir lien hypertexte grâce a une macro

Vous affectez à sa Picture une chaine vide = LoadPicture("")
Soit vous écrivez tout ça dans un module ordinaire et vous affectez les macros à des boutons de formulaires (ancienne pratique),
soit vous écrivez dans le module de la feuille des procédures évènements (…_Click ici) pour des boutons de commande (même boîte à outils, nouvelle pratique).
À +
 
Dernière édition:

TeethBrush3r

XLDnaute Nouveau
Re : [VBA] Ouvrir lien hypertexte grâce a une macro

Parfait, merci!

Encore une derniere petite chose (je sais, ça fait plusieurs fois que je dis ça), mais parfois, j'ai des liens qui mènent a des images inexistantes (j'ai l'intention de les ajouter plus tard). Lorsque je clique sur un bouton menant a un lien invalide, je reçois un message d'erreur disant "Erreur d'exécution '76': Chemin d'accès introuvable". Que dois-je faire si j'aimerais qu'à la place, une fenêtre apparaisse et dise "Image introuvable"?
 

Dranreb

XLDnaute Barbatruc
Re : [VBA] Ouvrir lien hypertexte grâce a une macro

Bonjour.
Mais ne vous faites donc pas tant de mal !
Qu'y a-t-il de stupide à avoir su appliquer mes recommandations irréprochablement, alors que vous annonciez :
P.S. Mes connaissances en VBA sont quasi-nulles.
Ce n'est pas mal du tout !
Juste une dernière recommandation: le curseur texte étant sur un élément de programmation, faites un usage fréquent de la touche F1.
Cordialement.
 

TeethBrush3r

XLDnaute Nouveau
Re : [VBA] Ouvrir lien hypertexte grâce a une macro

Bonjour.
Mais ne vous faites donc pas tant de mal !
Qu'y a-t-il de stupide à avoir su appliquer mes recommandations irréprochablement, alors que vous annonciez :
P.S. Mes connaissances en VBA sont quasi-nulles.
Ce n'est pas mal du tout !

Eh bien merci!

Juste une dernière recommandation: le curseur texte étant sur un élément de programmation, faites un usage fréquent de la touche F1.
Cordialement.

J'en prends bonne note, je ne connaissais pas ce truc. Merci!
 

Discussions similaires