Via VBA, j'utilise un Webbrowser. mais...

Fermé
IFFIC-BZH Messages postés 14 Date d'inscription mardi 19 mars 2019 Statut Membre Dernière intervention 1 juillet 2023 - Modifié le 23 juin 2023 à 14:49
yg_be Messages postés 23295 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 octobre 2024 - 1 juil. 2023 à 19:50

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 23295 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 octobre 2024 Ambassadeur 1 548
24 juin 2023 à 10:37

bonjour,

tu veux savoir quelle est la syntaxe html pour ajouter des infobulles?
 

0
IFFIC-BZH Messages postés 14 Date d'inscription mardi 19 mars 2019 Statut Membre Dernière intervention 1 juillet 2023
24 juin 2023 à 12:32

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?

0
yg_be Messages postés 23295 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 octobre 2024 1 548
24 juin 2023 à 14:21

Partage plutôt ici le contenu de ton fichier html.

0
IFFIC-BZH Messages postés 14 Date d'inscription mardi 19 mars 2019 Statut Membre Dernière intervention 1 juillet 2023
24 juin 2023 à 14:58

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

0
yg_be Messages postés 23295 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 octobre 2024 1 548
24 juin 2023 à 17:07

c'est le contenu du fichier PAGE_HTML.html qui nous est utile.

0
IFFIC-BZH Messages postés 14 Date d'inscription mardi 19 mars 2019 Statut Membre Dernière intervention 1 juillet 2023 > yg_be Messages postés 23295 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 octobre 2024
24 juin 2023 à 17:41

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

0
IFFIC-BZH Messages postés 14 Date d'inscription mardi 19 mars 2019 Statut Membre Dernière intervention 1 juillet 2023 > IFFIC-BZH Messages postés 14 Date d'inscription mardi 19 mars 2019 Statut Membre Dernière intervention 1 juillet 2023
24 juin 2023 à 17:44
0
IFFIC-BZH Messages postés 14 Date d'inscription mardi 19 mars 2019 Statut Membre Dernière intervention 1 juillet 2023
Modifié le 24 juin 2023 à 15:25
' 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


  
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
IFFIC-BZH Messages postés 14 Date d'inscription mardi 19 mars 2019 Statut Membre Dernière intervention 1 juillet 2023
24 juin 2023 à 15:37

J'ai oublié de noter qu'à partir de "

Public WithEvents TRUC As MSHTML.HTMLAnchorElement"

Le code est dans un Module de Classe

0
jordane45 Messages postés 38263 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 octobre 2024 4 693
24 juin 2023 à 20:08

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


0
IFFIC-BZH Messages postés 14 Date d'inscription mardi 19 mars 2019 Statut Membre Dernière intervention 1 juillet 2023
Modifié le 24 juin 2023 à 21:38

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)

0
jordane45 Messages postés 38263 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 octobre 2024 4 693
Modifié le 24 juin 2023 à 21:57
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

0
IFFIC-BZH Messages postés 14 Date d'inscription mardi 19 mars 2019 Statut Membre Dernière intervention 1 juillet 2023
25 juin 2023 à 14:10

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 Sub
  

En variables Public, il ne me reste qu "DOSSIER_CHOISI" et "GROUPE"

Bonne fin de semaine à tous

0
IFFIC-BZH Messages postés 14 Date d'inscription mardi 19 mars 2019 Statut Membre Dernière intervention 1 juillet 2023
Modifié le 26 juin 2023 à 18:31

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.

0
IFFIC-BZH Messages postés 14 Date d'inscription mardi 19 mars 2019 Statut Membre Dernière intervention 1 juillet 2023
1 juil. 2023 à 16:57
0
yg_be Messages postés 23295 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 octobre 2024 1 548 > IFFIC-BZH Messages postés 14 Date d'inscription mardi 19 mars 2019 Statut Membre Dernière intervention 1 juillet 2023
1 juil. 2023 à 19:50

Les infobulles ne fonctionnent pas?

0