Microsoft 365 Suppression barres de défilement dans WebBrowser

AIXELS

XLDnaute Occasionnel
Supporter XLD
Bonjour à tous les Amis du Forum. :)
En reprenant une ancienne application qui fonctionnait très bien
Jusqu'au changement de la version d'Excel, je suis sous Microsoft 365.
Les WebBrowser contenant des Gif animés, affichent des barres de défilement.
Comment les supprimer à l'affichage
. Je vous joins les fichiers nécessaires.
Pour l'exemple, le chemin d'accès du gif est sous :

VB:
  'Chemin à modifier pour affiche le GIF
            img.src = "C:\TEMP\porte de sortie.gif"

A l'époque, c'est @patricktoulon qui m'avait gentiment résolu mon problème.
Merci pour aide.
Bien cordialement.
 

Pièces jointes

  • porte de sortie.gif
    porte de sortie.gif
    3.5 KB · Affichages: 15
  • WebBrowser.xlsm
    37.4 KB · Affichages: 3

patricktoulon

XLDnaute Barbatruc
Bonjour
ben là il faut un peut tricher
c'est a dire la masquer avec la frame
autrement dit le webbroser doit avoir 12/15 point de plus en largeur que la frame qui le contient
et puis il faut dimensionner les éléments html aussi body , img et si possible en pourcentage

demo1.gif

change le chemin de l'image !!!car je l'ai changé
 

Pièces jointes

  • WebBrowser.xlsm
    29.8 KB · Affichages: 8

patricktoulon

XLDnaute Barbatruc
et ben tu fait pareil que le width
par contre vu ta capture il y a un soucis de renderer qui est différent chez moi
d'une part je n'ai pas la scroll horizontale
et d'autre part je vois que ton image est tronquée par la scrollbarhorizontal alors quelle ne devrait pas
donc essaie
VB:
Private Sub UserForm_Activate()
    Caption = Space(28) & Application.Proper(Format(Now, "dddd dd mmmm yyyy")) & " - il est : " & Format(Now, "hh:mm")
    CommandButton2.SetFocus
    With WebBrowser1
        .Width = Frame1.Width + 15
        .Height = Frame1.Height + 15
        .Navigate "about:blank"
        Do While .ReadyState < 4: DoEvents: Loop
        With .Document
            .Body.Style.margin = 0
            Set img = .Body.appendchild(.createelement("img"))
            With img
                '********************************************
                'Chemin à modifier pour affiche le GIF
                .src = ThisWorkbook.Path & "\porte de sortie.gif"
                '********************************************
                .Style.Height = "80%"
                .Style.Width = "100%"
            End With
            End With
       Debug.Print .Document.getelementsbytagname("HTML")(0).outerhtml
     End With
End Sub
 
Dernière édition:

AIXELS

XLDnaute Occasionnel
Supporter XLD
Re @patricktoulon
Merci pour ton retour.
Cela fonctionne. Une remarque le Gif est tassé.
Est-il possible de l'agrandir en hauteur pour le voir en totalité ?
Sur quels paramètres il faut intervenir dans ton code ?
J'ai ajouté une deuxième image Gif pour exemple de paramétrage.
Sur quoi tu te bases pour la paramétrer ?

Bien cordialement.
 

Pièces jointes

  • ligne_a_puce020.gif
    ligne_a_puce020.gif
    3.7 KB · Affichages: 11
  • porte de sortie.gif
    porte de sortie.gif
    3.5 KB · Affichages: 10
  • WebBrowser ave 2 frames.xlsm
    34.6 KB · Affichages: 3
Dernière édition:

jurassic pork

XLDnaute Occasionnel
Hello,
voici un code qui utilise les événements de l'activeX webbrowser pour ajuster la taille de l'image à la taille de l'activeX :

VB:
Private Sub UserForm_Activate()
    Me.WebBrowser1.Navigate "D:\TEMP\porte de sortie.gif"
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    Me.WebBrowser1.Document.Body.Style.Border = "none"
End Sub

Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
    Dim images As Object, img As Object
    Me.WebBrowser1.Document.Body.Scroll = "no"
    Me.WebBrowser1.Document.Body.TopMargin = "0"
    Me.WebBrowser1.Document.Body.BottomMargin = "0"
    Me.WebBrowser1.Document.Body.LeftMargin = "0"
    Me.WebBrowser1.Document.Body.RightMargin = "0"
    Set images = Me.WebBrowser1.Document.GetElementsByTagName("img")
    Set img = images(0)
    img.Style.Height = "100%"
    img.Style.Width = "100%"
End Sub

Plus besoin de mettre l'activeX dans un container.

Ami calmant, J.P
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
Bonjour @jurassic pork
je connaissait pas ces possibilité
je suis d'ailleurs perplexe
normalement avec navigate "chemin image" ou "chemin pdf"
toute les fonctions html et JS CSS et attributs pour les élements html sont déactivé
donc les elements body etc... ne devraient pas fonctionner
y compris la getelementsbytagname
je tombe sur le C.. là 🤣

ceci donne le même résultat sauf que la on est vraiment dans un document html
VB:
Private Sub UserForm_Activate()
affiche_image "C:\Users\patricktoulon\Downloads\porte de sortie.gif"
End Sub

Private Sub affiche_image(fichierImG)
    With WebBrowser2
        .Navigate "about:blank"
        Do While .ReadyState < 4: DoEvents: Loop
        With .Document
            .Body.Scroll = "no"
            .Body.Style.margin = 0
            Set img = .Body.appendchild(.createelement("img"))
            With img
                .src = fichierImG
                .Style.Height = "100%"
                .Style.Width = "100%"
            End With
        End With
    End With
End Sub
 

patricktoulon

XLDnaute Barbatruc
une autre version avec la méthode de jurassic pork
sauf que là on se passe des events webbrowser
VB:
Private Sub UserForm_Activate()
     affiche_image2 "C:\Users\patricktoulon\Downloads\porte de sortie.gif"
End Sub

Private Sub affiche_image2(FichierImG)
    Dim images As Object, img As Object
    With WebBrowser1
        .Navigate FichierImG
        Do While .ReadyState < 4: DoEvents: Loop 'navigate complete
        With .Document.Body
            .Scroll = "no"
            .TopMargin = "0"
            .BottomMargin = "0"
            .LeftMargin = "0"
            .RightMargin = "0"
            .Style.Border = "none"
            Set img = .all(0)
            img.Style.Height = "100%"
            img.Style.Width = "100%"
        End With
    End With
End Sub
 

Membres actuellement en ligne

Statistiques des forums

Discussions
313 770
Messages
2 102 236
Membres
108 181
dernier inscrit
Chr1sD