IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Les WebBrowser arrêtent de s'animer quand une macro s'exécute. [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2017
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2017
    Messages : 39
    Par défaut Les WebBrowser arrêtent de s'animer quand une macro s'exécute.
    Dans une feuille vierge j'ai créé 3 "webbrowser". Avec une macro, je mets une animation Gif dans chacun d'eux. Cette partie-là fonctionne.
    La première ligne de macro mets une animation dans le premier WebBrowser" et l'animation roule.
    Le problème c'est que lorsque la macro exécute la 2e ligne, qui mets l'animation dans le 2e Webbrowser, l'animation dans le premier arrête de jouer.
    Lorsque la 3e ligne mets l'animation dans le 3e Webbrowser, l'animation du premier se remet à jouer, mais c'est l'animation du 2e qui arrête de jouer.
    En bout de ligne, je me retrouve avec plus d'animations qui ne jouent pas, que d'animations qui jouent.

    Je veux savoir pourquoi les animations arrête de jouer, quand une macro s'exécute, et qu'est-ce qu'il faut faire pour prévenir ça???
    Si on ne peut pas empêcher de les arrêter de jouer pendant qu'une macro s'exécute y a t-il une commande VBA qui les repart tous?
    Sur certains forums il est suggéré de mettre "DoEvents", ou de faire "Design OFF puis ON"... j'ai essayé, sans succès.
    Merci
    André

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    te servirais tu de la meme variable pour designer les xebbroser??
    exemple set

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    set web=me.webbrowser1
    'blablabla....
    set web=me.webbrowser2
    'balablabla
    .......

    EDIT !!! :
    AUTANT POUR MOI IL SEMBLERAIT QUE LE CONTROLS FASSE PARTIE INTEGRANTE DE L'USERFORM ET NE SOIT PAS INDEPENDANT
    j'ai testé avec une pose en tre chaque webbrowser et effectivement l'animation s'arrete
    je regarderais cela ce soir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Private Sub CommandButton1_Click()
        Dim tabgif(4)
        tabgif(1) = "C:\Users\polux\Desktop\martian1.gif"
        tabgif(2) = "C:\Users\polux\Desktop\aalien9.gif"
        tabgif(3) = "C:\Users\polux\Desktop\greenguy.gif"
        For i = 1 To 3
            With Me.Controls("WebBrowser" & i)
                .Navigate "about:blank"
                .Silent = True
                .Document.Write "<html><body scroll='no'>" & "<img src='" & tabgif(i) & "'></img></body></html>"
                .Silent = False
                .Refresh
                Do: DoEvents: Loop While .ReadyState <> 4 
                DoEvents
                Application.Wait (Now + TimeValue("0:00:03"))
            End With
        Next
    End Sub
    peut être te faudra il jouer avec du CSS et la propriété visibility de l'image en les injectant dans leurs webbrowsers respectifs a l'avance
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2017
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2017
    Messages : 39
    Par défaut
    Merci PatrickToulon pour ta réponse, mais ça n'aide pas... je m'explique:
    1- dans le code que tu propose, la seule chose qui est différente de ce que je fais déjà, est de faire un "DoEvents", que j'avais déjà essayé, sans succès (voir mon post original) et aussi tu fais une boucle de pause, qui n'aide pas non plus.
    2- Tu as écrit : " il jouer avec du CSS et la propriété visibility de l'image en les injectant dans leurs webbrowsers respectifs a l'avance " Je n'ai AUCUNE idée de quoi tu parle, et qu'est-ce qu'il faut faire avec ça. Peux-tu donner des précisions/exemples??

    Merci

    André

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    je viens de faire le test avec 3 webbrowsers et ls css visible/idden et même la 3 c'est un peu lourd

    met 3 webbrowsers dans un usf et un bouton
    change les adresse des 3 gif bien entendu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    Private Sub CommandButton1_Click()
         i = Round((1 + (Rnd * 2)))
            With Me.Controls("WebBrowser" & i)
                Set mesimages = .Document.getelementsbytagname("IMG")
                 For d = 0 To mesimages.Length - 1
                mesimages(d).Style.visibility = "hidden"
                Next
                c = Round((1 + (Rnd * 2)))
     
     
                    .Document.getelementbyid("image" & c).Style.visibility = "visible"
     
              Do: DoEvents: Loop While .ReadyState <> 4 Or .Busy
     
            End With
     
    End Sub
    Private Sub UserForm_Activate()
        Dim tabgif(4)
        tabgif(1) = "C:\Users\polux\Desktop\martian1.gif"
        tabgif(2) = "C:\Users\polux\Desktop\aalien9.gif"
        tabgif(3) = "C:\Users\polux\Desktop\greenguy.gif"
        For i = 1 To 3
            With Me.Controls("WebBrowser" & i)
                .Navigate "about:blank"
                .Silent = True
                .Silent = False
                .Document.Write "<html><body scroll='no'></body></html>"
                .Refresh
                Do: DoEvents: Loop While .ReadyState <> 4
                For m = 1 To 3
                    Set img = .Document.createElement("IMG")
                    img.src = tabgif(m)
                    img.ID = "image" & m
                    img.Style.visibility = "hidden"
                    img.Style.Top = "1px"
                    img.Style.Left = "1px"
                    .Document.body.appendchild (img)
                Next
     
            End With
        Next
    End Sub
    Private Sub UserForm_Click()
    End Sub
    Nom : demo4.gif
Affichages : 993
Taille : 576,1 Ko
    le bouton choisi 1 des 3 webbrowser au hazard et affiche une des 3 images au hazard
    teste plusieurs fois le boutons
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2017
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2017
    Messages : 39
    Par défaut
    ok.... Je regarde ça.
    Mes problèmes sont que je ne travaillais pas avec un UserForm, alors il faudra que je change de stratégie,
    et mon autre problème est que dans ta programmation tu as un "With Me.Controls("WebBrowser" & i)" qui me donne un " Erreur de compilation. Utilisation incorrecte du mot clé Me"
    Il faut que je trouve pourquoi "Me" ne fonctionne pas dans mon VBA de mon Excel!!!

    André

  6. #6
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2017
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2017
    Messages : 39
    Par défaut
    AUSSI.... j'oubliais, et c'est très important...
    ma grille Excel finale aura 63 Webbrowsers différents.
    Déjà avec mon test de 3 WebBrowsers, certains gèlent...
    avec 63, c'est au moins la moitié qui ne sont pas animées. Ça en fait beaucoup!!

    André

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    "Me" représente l'object dans le quel est le code
    si c'est dans un userform se sera l'userform
    maintenant si le code est dans un module feuille se sera la feuille
    voila
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Excel - dissocier les mois entre deux dates et créer une ligne pour chaque
    Par Quentin35 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 30/06/2016, 12h11
  2. Réponses: 3
    Dernier message: 18/11/2011, 14h50
  3. [Excel] Changer de profil lors de l'éxécution d'une macro
    Par TeetyTweety dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/02/2007, 08h35
  4. Supprimer les messages lors de l'exe d'une macro
    Par kluh dans le forum Access
    Réponses: 2
    Dernier message: 01/12/2005, 22h00
  5. [VBA-E] Effacer les doubles dans 1 colonne grace à une macro
    Par Stef.proxi dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/08/2004, 15h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo