Visualisation fichier lié hypertexte lors survol souris

erics83

XLDnaute Impliqué
Bonjour,

Suite à un précédent post, mapomme (encore merci !) a expliqué comment créer rapidement un lien hypertexte vers un fichier. Pour rappel, c'est un classeur qui contient une liste de lieux par département, le code de mapomme permettant de faire un lien vers la fiche "signalitique" du lieux.

Est-il possible, au passage de la souris, d'ouvrir et/ou d'avoir un aperçu de la fiche liée ? (évite de devoir ouvrir le fichier complètement).

Les fiches sont majoritairement des pdf.

Il me semble qu'avec les images, c'est possible, mais avec les fiches....?

Une petite piste/aide ?

En vous remerciant par avance,
 

Pièces jointes

  • erics83- Liens vers fichier- v2.xlsm
    17.3 KB · Affichages: 68
  • erics83- Liens vers fichier- v2.xlsm
    17.3 KB · Affichages: 53

job75

XLDnaute Barbatruc
Re : Visualisation fichier lié hypertexte lors survol souris

Bonjour erics83,

Voici une solution.

Créer d'abord manuellement dans la 2ème feuille une bibliothèque d'images caractéristiques des fichiers dont on veut créer les liens hypertextes.

Les images sont renommées avec le nom du fichier correspondant.

Avec l'image déterminée la macro crée un fichier JPEG qui est chargé dans le commentaire de la cellule :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal R As Range, Cancel As Boolean)
Dim chemin$, fichier, nom$, ext$, o As Object
If R.Column <> 3 Or R.Row = 1 Or R(1, 0) = "" Then Exit Sub
Cancel = True
chemin = ThisWorkbook.Path & "\" 'à adapter
ChDir chemin
fichier = Application.GetOpenFilename
If fichier = False Then Exit Sub
nom = Left(fichier, InStrRev(fichier, ".") - 1)
ext = Mid(fichier, Len(nom) + 1)
nom = Mid(nom, InStrRev(nom, "\") + 1)
Hyperlinks.Add R, fichier, TextToDisplay:=nom & ext
R(1, 2) = FileDateTime(fichier)
'R(1, 2) = Date 'pourquoi pas ?
'---fichier JPEG---
On Error Resume Next 'si l'image n'existe pas
Set o = Feuil2.Pictures(nom)
If o Is Nothing Then Exit Sub
fichier = chemin & nom & ".jpg"
o.CopyPicture
With Feuil2.ChartObjects.Add(0, 0, o.Width, o.Height).Chart
  .Paste
  .Export fichier, "JPG"
  .Parent.Delete
End With
'---commentaire---
R.ClearComments
With R.AddComment
  .Shape.Width = o.Width
  .Shape.Height = o.Height
  .Shape.Fill.UserPicture fichier
  .Visible = False
End With
Kill fichier 'suppression du fichier JPEG
End Sub
Le survol de la cellule du lien fait apparaître l'image.

Fichiers joints, à télécharger dans le même répertoire (le bureau).

A+
 

Pièces jointes

  • Fichier(1).pdf
    85.9 KB · Affichages: 103
  • Fichier(2).pdf
    150.1 KB · Affichages: 86
  • erics83- Liens vers fichier(1).xlsm
    82.2 KB · Affichages: 117
Dernière édition:

erics83

XLDnaute Impliqué
Re : Visualisation fichier lié hypertexte lors survol souris

Merci job75,

Effectivement c'est une solution qui fonctionne bien.

Mon souci est que j'ai environ 100 fiches, chiffre qui évolue puisque mes collègues mettent de nouvelles fiches chaque semaine...., ce qui veut dire qu'il faut que je créé dans "Feuil2", les images de toutes les fiches....

Donc je travaille actuellement sur ton code, pour voir comment "lire" tous les fichiers pdf (et certains sont en word) qui sont dans le dossier, les transformer en image, et les mettre dans "Feuil2".

ça s'annonce sportif....lol......mais j'aime bien.....

Merci pour ton aide,
 

job75

XLDnaute Barbatruc
Re : Visualisation fichier lié hypertexte lors survol souris

Bonjour eris83,

pour voir comment "lire" tous les fichiers pdf (et certains sont en word) qui sont dans le dossier, les transformer en image, et les mettre dans "Feuil2".

ça s'annonce sportif....lol......mais j'aime bien.....

Par macro je pense que vous n'y arriverez pas, il faut le faire manuellement, mais bon courage :)

A+
 

job75

XLDnaute Barbatruc
Re : Visualisation fichier lié hypertexte lors survol souris

Re,

Par contre vous pouvez contrôler régulièrement les images en lançant cette macro :

Code:
Sub ControleImages()
'se lance par Ctrl+A
Dim chemin$, fichier$, o As Object, mes$
chemin = ThisWorkbook.Path & "\" 'à adapter
fichier = Dir(chemin & "*.*") '1er fichier du dossier
On Error Resume Next
While fichier <> ""
  If fichier <> ThisWorkbook.Name Then
    Set o = Nothing
    Set o = Feuil2.Pictures(Left(fichier, InStrRev(fichier, ".") - 1))
    If o Is Nothing Then mes = mes & vbLf & fichier
  End If
  fichier = Dir 'fichier suivant
Wend
MsgBox IIf(mes = "", "Images au complet", "Fichier(s) :" & vbLf & mes), , "Images à créer"
End Sub
Fichier (2).

A+
 

Pièces jointes

  • erics83- Liens vers fichier(2).xlsm
    83.8 KB · Affichages: 58

erics83

XLDnaute Impliqué
Re : Visualisation fichier lié hypertexte lors survol souris

Super Merci job75,

Effectivement votre code permet de voir les fichiers à traiter, et c'est une super grande aide : permet d'être certain que toutes les images sont dans "Feuil2", c'est parfait ! Merci !

Par contre, comment convertir les PDF(ou .docx) en JPEG ? et surtout est-il possible de le faire via Excel : cela permettrait de faire une boucle sur les fichiers (comme votre code) et de les introduire dans "Feuil2" ?

En vous remerciant pour votre aide,
A+
 

job75

XLDnaute Barbatruc
Re : Visualisation fichier lié hypertexte lors survol souris

Re,

Pour créer manuellement une image à partir d'un fichier PDF :

- menu Edition => Prendre un instantané => sélectionner la zone à copier

- aller dans Excel => touches Ctrl+V pour coller le contenu du presse-papiers.

A partir d'un fichier Word :

- sélectionner le texte désiré => touches Ctrl+C

- aller dans Excel => touches Ctrl+V

- prendre une photo des cellules : les sélectionner => commande "Copier comme image" => touches Ctrl+V.

Comme vous le voyez tout repose sur le choix de la zone à copier...

A+
 

erics83

XLDnaute Impliqué
Re : Visualisation fichier lié hypertexte lors survol souris

merci job75,

oui, je connais l'instantané de Adobe, mais....j'ai espéré qu'il existait une autre solution....:eek:

Non pas que je sois fainéant, mais ça veut dire qu'il va falloir que j'ouvre tous les fichiers pdf (ou word), que je fasse les copier-coller...j'espérais que VBA ferait le boulot à ma place....:)

J'essaye de voir si on peut faire : ouverture du pdf, copie-écran, enregistrer en image, nommer le fichier et le mettre dans "Feuil2" et faire tourner votre très bon code. Sportif quoi....lol

vous pensez que la piste est bonne ?

En vous remerciant pour votre aide,
A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Visualisation fichier lié hypertexte lors survol souris

Re,

Il est possible en effet de réaliser une capture d'écran par VBA mais le résultat ne sera pas fameux.

Et comme il faudra réduire l'image pour la mettre dans un commentaire de taille raisonnable ce ne sera pas "lisible".

A+
 

job75

XLDnaute Barbatruc
Re : Visualisation fichier lié hypertexte lors survol souris

Re,

Bon voilà ce que ça donne avec une capture d'écran comme image :

Code:
'---API Windows---
Private Declare Sub keybd_event Lib "user32" _
(ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'---
On Error Resume Next 'si l'image n'existe pas
Set o = Feuil2.Pictures(nom)
'---création de l'image si elle n'existe pas---
If o Is Nothing Then
  On Error GoTo 1  'en cas d'avis de sécurité Excel
  ThisWorkbook.FollowHyperlink fichier 'ouvre le fichier
  keybd_event vbKeySnapshot, 1, 0&, 0& 'capture l'écran
  DoEvents
  Sleep 100 'attente 100 ms
  Application.Goto Feuil2.[A:A].Find("", , xlValues) '1ère cellule vide
  ActiveSheet.Paste
  Set o = Selection
  o.Name = nom 'renomme l'image
  o.Height = ActiveCell.Height 'redimensionne
  ActiveCell = nom
  ActiveCell(2 - ActiveCell.Row).Select 'sélectionne A1
  Me.Activate
End If
Bien sûr le fichier est alors ouvert, l'utilisateur devra le fermer.

Fichier (3).

Bonne nuit.

Edit : j'ai revu toute la macro, le lien hypertexte est maintenant créé à la fin.
 

Pièces jointes

  • erics83- Liens vers fichier(3).xlsm
    26.9 KB · Affichages: 57
Dernière édition:

erics83

XLDnaute Impliqué
Re : Visualisation fichier lié hypertexte lors survol souris

Super merci job75,

vraiment super code, et qui fonctionne à merveille !!!

Mais comme tu le disais plus haut, c'est vrai que le copie-écran n'est pas visible et n'apporte finalement pas la plus value recherchée.....

J'ai continué mes essais, et...je me suis dis qu'en créant un USF (qui s'ouvrirait lors du survol souris et/ou commentaire), je pourrais faire "apparaitre" mon pdf dedans....et lorsque j'ai regardé dans les compléments de la boite à outil, j'ai vu que "acropdf" existait....j'ai donc mis "acropdf" dans la boite à outil, créé une plage dans l'USF, mais.....je ne sais pas comment faire pour "appeler" mon pdf....avec les images, c'est facile on met le lien, mais pour le pdf, il n'y a pas cette possibilité...sauf peut-être à mettre un code, mais.....lequel et/ou quel type...?

Merci pour votre aide,
 

erics83

XLDnaute Impliqué
Re : Visualisation fichier lié hypertexte lors survol souris

Merci job75,

Merci pour votre lien, il me donne des idées et/ou solutions envisageables : dans "choixfichier", je pourrais inclure mes listes de lieux par exemple...

En fait, à force de chercher, je suis tombé sur une contribution de Kiki29, qui pourrait être LA solution :

Le post

J'ai essayé, cela fonctionne parfaitement....

Reste plus qu'à trouver comment modifier le lancement de "SelFichierPDF()" : là c'est avec un bouton, il faudrait maintenant que ce soit au survol de souris.....

Merci pour votre aide,
A+
 
Dernière édition:

erics83

XLDnaute Impliqué
Re : Visualisation fichier lié hypertexte lors survol souris

job75,

J'essaye d'utiliser votre code, car il pourrait aussi être LA solution....en fait, il faudrait que le WebBrowser soit dans la feuille excel, ainsi on pourrait le faire apparaitre/disparaitre au survol de la souris....

J'ai fait un essai avec votre fichier, mais le WebBrowser de la feuille n'est pas alimenté...

Mais.....votre USF peut être la solution : l'autre éventualité est de remplacer la listbox des fichiers pdf par la liste des lieux, et en cliquant dessus la fiche s'affiche dans le WebBrowser (= en prenant votre code, au lieu d'avoir la liste des fichiers pdf, on voit la liste des lieux (colonne A et B), et au clic dessus, le pdf s'affiche dans le webBrowser)

Une petite aide ?
A+
 

Pièces jointes

  • Copie de Copie de Form_FichiersListe V2.xls
    72.5 KB · Affichages: 36
Dernière édition:

job75

XLDnaute Barbatruc
Re : Visualisation fichier lié hypertexte lors survol souris

Re,

En fait il me semble que l'objet de cette discussion est un faux problème.

En effet si l'on a besoin d'un aperçu c'est lors du choix du fichier avant la création du lien hypertexte.

Une fois le lien créé on n'a pas besoin d'aperçu, il suffit d'ouvrir le fichier et de le refermer.

Voyez ce fichier (4) avec un USF doté d'un WebBrowser donnant l'aperçu des fichiers PDF.

Edit : ajouté If ListBox1.ListIndex = -1 Then Exit Sub dans la macro du bouton.

A+
 

Pièces jointes

  • erics83- Liens vers fichier(4).xlsm
    27.6 KB · Affichages: 60
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 203
Messages
2 086 181
Membres
103 152
dernier inscrit
Karibu