Via VBA, j'utilise un Webbrowser. mais...
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à qui passera par là
La création de la page visible dans le webbrowser de l'usf est effective.
En navigant sur une liste d'images, le résultat est ultra rapide et parfait.
Il me manque sérieusement les infobulles (Hypertextes) dans ce code:
Ou encore mieux, un truc du genre "Label" en dessous de l'image.
Option Compare Text
Sub REDACTION_DE_LA_PAGE_HTML()
Print #1, "<A href='" & ADRESSE & "'>"
Print #1, "<IMG WIDTH=250 HEIGHT=250 SRC='" _
& ADRESSE & "'ALT='" & CONDIMENT & "'></IMG></A>"
End Sub
Je pourrais envoyer un fichier exemple, mais débarquant ici, je ne sais si je suis dans une page idoine, et s'il m'est possible de le faire
A qui saura me répondre, par avance : Merci
PS, pour Info:
Au départ, je passe par une ListBox changée
Private Sub UserForm_Activate()
Open ThisWorkbook.Path & "\PAGE_HTML.html" For Output As #1
For i = 0 To ALBUM.ListBox1.ListCount - 1
CONDIMENT = ALBUM.ListBox1.List(i, 0) ' Le nom du Fichier avec son extension
ADRESSE = ALBUM.ListBox1.List(i, 1) 'Le Path complet
Call REDACTION_DE_LA_PAGE_HTML
Next i
Close #1 'Sinon il y a une redondance à une nouvelle ouverture de l'USF
WebBrowser1.Navigate ThisWorkbook.Path & "\PAGE_HTML.html"
End Sub
PJ Ici si cela marche:
https://www.cjoint.com/c/MFxmUUBIfvf
10 réponses
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
tu veux savoir quelle est la syntaxe html pour ajouter des infobulles?
-
Merci yg_be d'avoir pris la peine de me répondre.
Effectivement, je cherche à savoir comment créer des infobulles.
Je préfèrerais une légende sous les photos, mais il me semble, après mes recherches, que cela soit impossible.
Au plaisir de te lire si tu as une solution.
As-tu téléchargé mon dossier exemple?
-
Je pense qu'il serait plus facile de télécharger mon exemple déposé sur Cjoint.
Cependant, je vais voir comment partager le contenu ici.
Pardon de ne pas encore savoir manipuler les outils du Forum.
A plus tard
-
Bonjour, et encore Merci d'avoir regardé.
Je pense qu'il sera difficile d'aboutir sans que mon Dossier déposé soit consulté, et éventuellement modifié.
Le Fichier "PAGE_HTML" n'existe pas au départ dans le dossier parent. Il n'est créé que par ma macro d'initialisation.
Je joins cependant ce que je puis, mais doutant que cela puisse faire avancer les choses.
Je ne serai pas vexé ni désolé qu'il ne me soit pas apporté de réponses concrètes.
Par ailleurs, il est certain que si je vois un sujet où je puisse aider, je n'y manquerai pas.
Bonne fin de semaine à vous
-
-
' Dans l'USF "ALBUM" avec Controls Webbrowser et Listbox Option Compare Text Dim PAGE_HTML As HTMLDocument Private Sub UserForm_Activate() Open ThisWorkbook.Path & "\PAGE_HTML.html" For Output As #1 For i = 0 To ALBUM.ListBox1.ListCount - 1 CONDIMENT = ALBUM.ListBox1.List(i, 0) ' Le nom du Fichier avec son extension ADRESSE = ALBUM.ListBox1.List(i, 1) 'Le Path complet Call REDACTION_DE_LA_PAGE_HTML Next i Close #1 'Sinon il y a une redondance à une nouvelle ouverture de l'USF WebBrowser1.Navigate ThisWorkbook.Path & "\PAGE_HTML.html" End Sub Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant) Call CREATION_DU_GROUPE End Sub Sub CREATION_DU_GROUPE() Dim GROUPE_VIGNETTES As CLICK_VIGNETTES Dim i As Integer Dim VIGNETTES As HTMLAnchorElement Set GROUPE = New Collection Set PAGE_HTML = WebBrowser1.Document For i = 0 To PAGE_HTML.Links.Length - 1 Set VIGNETTES = PAGE_HTML.Links.Item(i) Set GROUPE_VIGNETTES = New CLICK_VIGNETTES Set GROUPE_VIGNETTES.TRUC = VIGNETTES GROUPE.Add GROUPE_VIGNETTES Next i End Sub ' Dans un module Ordinaire Option Compare Text Sub REDACTION_DE_LA_PAGE_HTML() Print #1, "<A href='" & ADRESSE & "'>" Print #1, "<IMG WIDTH=250 HEIGHT=250 SRC='" _ & ADRESSE & "'ALT='" & CONDIMENT & "'></IMG></A>" End Sub 'Dans un module ordinaire: Public DOSSIER_CHOISI As String Public GROUPE As Collection Public CONDIMENT As String Public ADRESSE As String 'Dans un Module de Classe: Public WithEvents TRUC As MSHTML.HTMLAnchorElement Private Function TRUC_onclick() As Boolean ' Ceci empêche de voir l'image en grand par suite à un Click End Function Private Sub TRUC_onmousemove() 'Quand Survol ALBUM.Label1.Caption = Mid(Replace(TRUC.href, "%20", " "), InStrRev(Replace(TRUC.href, "%20", " "), "/") + 1) End Sub Private Sub TRUC_onmousedown() ' Quand Click ALBUM.Label1.Caption = Mid(Replace(TRUC.href, "%20", " "), InStrRev(Replace(TRUC.href, "%20", " "), "/") + 1) ALBUM.Label2.Caption = "Vous avez choisi : " & Split(ALBUM.Label1.Caption, ".")(0) End Sub -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
J'ai oublié de noter qu'à partir de "
Public WithEvents TRUC As MSHTML.HTMLAnchorElement"Le code est dans un Module de Classe -
Bonjour,
Ce que tu cherches c'est l'attribut TITLE ( pour l'infobulle )
https://www.w3schools.com/tags/att_global_title.asp
Et le "caption" pour pouvoir mettre un texte à ton image
https://www.w3schools.com/tags/tag_figcaption.asp
-
1
Bonsoir ou Bonjour suivant l'heure Jordane45
Cela me semble plus concret comme réponse.
Mais étant totalement néophyte en langage HTML (Malgré mes 73 balais) ,
je suis infichu de comprendre où et comment incorporer ces codes dans mes procédures.
A moins que la lassitude me gagne comme elle est en train de commencer,
je vais tenter quelques tests, tout en ayant peu d'espoir.
Recevoir mon VBAProject rectifié m'aurait bien aidé, mais ………
Grand Merci cependant pour ces liens intéressants et certes instructifs pour qui sait comprendre.
(Je sais faire un max en VBA, mais là, je patine grave)
-
Sub REDACTION_DE_LA_PAGE_HTML() Print #1, "<A href='" & ADRESSE & "'>" Print #1, "<figure><IMG WIDTH=250 HEIGHT=250 SRC='" _ & ADRESSE & "'ALT='" & CONDIMENT & "' title='" _ & CONDIMENT & "'></IMG> <figcaption>TRUC MACHIN CHOSE.</figcaption></figure></A>" End Sub
-
Bonjour ou Bonsoir à ceux qui passeront par ici
Merci encore Jordane45 pour ton aide.
Grace à ton exemple, j'ai avancé un peu sur mon projet en apportant certaines modifications.
Le module "REDACTION_PAGE_HTML" est supprimé mais incorporé à l'ouverture de l'USF.
Ceci évite des variables "Public" fastidieuses.
Il me reste deux choses à régler :
_ La mise en forme du texte, (Police et taille). La couleur Black semblant déjà acquise.
Et ce qui est le plus important :
_ Retrouver 4 images sur une largeur de la page, au lieu d'une seule.
Nota bene : Je l'avais automatiquement sur mon projet initial, mais cela ne l'est plus.
Il me reste aussi à mettre à ma sauce le module de classe qui n'est pas de moi,
et qui ne correspond pas à ce que j'ai l'habitude de faire.
Ne voulant pas abuser de votre gentillesse, je vais fouiner du côté des liens donnés par Jordane45
Étant depuis toujours obsédé par la simplification des procédures, je suis heureux que mon VBAProject se résume ainsi :
' Dans l'USF "ALBUM" avec Controls Webbrowser (H = 330, W = 546) et Listbox visible ou non Option Compare Text Dim PAGE_HTML As HTMLDocument Private Sub UserForm_Activate() Open ThisWorkbook.Path & "\PAGE_HTML.html" For Output As #1 For i = 0 To ALBUM.ListBox1.ListCount - 1 CONDIMENT = ALBUM.ListBox1.List(i, 0) ' Le nom du Fichier avec son extension ADRESSE = ALBUM.ListBox1.List(i, 1) 'Le Path complet Print #1, "<A href='" & ADRESSE & "'>" Print #1, "<IMG WIDTH=250 HEIGHT=250 SRC='" _ & ADRESSE & "'ALT='" & CONDIMENT & "'></A>" Print #1, "<figcaption> "; Split(ALBUM.ListBox1.List(i, 0), ".")(0); " </figcaption></figure></A>" Next i Close #1 'Sinon il y a une redondance à une nouvelle ouverture de l'USF WebBrowser1.Navigate ThisWorkbook.Path & "\PAGE_HTML.html" End Sub Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant) Call CREATION_DU_GROUPE End Sub Sub CREATION_DU_GROUPE() Dim GROUPE_VIGNETTES As CLICK_VIGNETTES Dim i As Integer Dim VIGNETTES As HTMLAnchorElement Set GROUPE = New Collection Set PAGE_HTML = WebBrowser1.Document For i = 0 To PAGE_HTML.Links.Length - 1 Set VIGNETTES = PAGE_HTML.Links.Item(i) Set GROUPE_VIGNETTES = New CLICK_VIGNETTES Set GROUPE_VIGNETTES.TRUC = VIGNETTES GROUPE.Add GROUPE_VIGNETTES Next i End SubEn variables Public, il ne me reste qu "DOSSIER_CHOISI" et "GROUPE"
Bonne fin de semaine à tous
-
Fin
Bonsoir ou Bonjour suivant l'heure à tous, et en particulier à Jordane45 qui m'ont donné signe de vie.
Je suis passé de la ListBox à la Listview qui est bien plus confortable pour moi.
Cependant, comme dans certaine version le "Windows\SysWOW64" est déplacé, et que le "mscomctl.ocx" n'est plus efficient, et que sous 64 bits. Il y a un bordel incommensurable pour référencer " Microsoft Windows common controls 6.0 (sp6)", il est inutile que je joigne autre morceau de mes essais.
J'ai bien aidé sur autres Forums en rectifiant les Classeurs transmis par des demandeurs. (Env 3300 Posts)
Comme un croquis vaut bien mieux souvent qu'un long discourt, j'avais pensé utile de déposer mon Dossier test sur Cjoint. Puisqu'en une ou deux lignes de modification ou complément, l'affaire aurait été résolue de cette façon.
Je respecte le fait que vous privilégiez fournir un lien où je puisse passer mes heures de loisir à fouiner.
J'abandonne donc mon projet, et reviens à ma création dynamique d'images et de Labels dans un Multipage.
C'est qq secondes de plus lent, mais pas grave mes utilisateurs s'y feront.
Merci encore, et Bravo de savoir vous appliquer à partager vos compétences sur ce Forum
Bonne suite à vous.


