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 :

Animer un drapeau sur Userform (VBA) [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2013
    Messages : 23
    Par défaut Animer un drapeau sur Userform (VBA)
    Bonjour cher tous !
    Novice en VBA et souhaitant apprendre et comprendre,
    j'ai créé un userfor sur lequel j'ai inséré l'icone du drapeau de mon pays,
    mais je ne connais pas le code pour qu'il s'anime, automatiquement que le UserForm s'affiche. Aidez-moi à construire le code d'animation s'il vous plaît ! Merci !

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Que veux tu dire par s'animer ?

  3. #3
    Membre averti
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2013
    Messages : 23
    Par défaut
    Le rendre "vivant"

  4. #4
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Cool, bah écoute quand tu arriveras à rendre un drapeau "vivant" tu pourras postuler pour le prix Nobel

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour,

    Essayez la démarche suivante
    1) créez un UserForm1
    2) dans sa fenêtre de code, copiez le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub UserForm_Initialize()
    Dim WBS As Object 'WebBrowser
    Set WBS = Me.Controls.Add("Shell.Explorer.2")
    WBS.Navigate "about:<html><body scroll='no'><img src='http://www.gif-anime.org/im/gif/drapeau/benin/benin3.gif'></img></body></html>"
    End Sub
    3) lancez le UserForm1

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    PMO2017

    Une précision quand même, il est clair qu'une connexion Internet est nécessaire.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Salut,

    Je pense qu'il a voulu montrer simplement le principe. C'est à dire d'utiliser une image GIF pour l'animation. Mais rien n'oblige à avoir une connexion internet. Seulement pour cette exemple présent-ci.

  8. #8
    Membre averti
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2013
    Messages : 23
    Par défaut
    Bonsoir, j'ai accusé réception de votre code, je l'ai inséré. il fonctionne. Toutefois, le cadre dans lequel il se trouve est assez grand et j'aurais vous que la couleur de fond s'adapte à la couleur du userform. A défaut, c'est un travail que j'ai pas encore fini, mais je vous envoie le projet pour que vous voyiez par vous même. Merci pour l'aide précieuse.

    Effectivement, rien n'oblige à avoir nécessairement une connexion internet. Dans ce cas, quel serait le code si l'image gif était sur mon ordinateur (sans connexion) ?
    Fichiers attachés Fichiers attachés

  9. #9
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonsoir,
    inspires-toi de ce fichier bien fait

    bonne soirée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  10. #10
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    En utilisant un fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub UserForm_Initialize()
    Dim WBS As Object
    Dim Drapeau As String
     
    Drapeau = "C:\Users\user\Desktop\Benin.Gif"
    Set WBS = Me.Controls.Add("Shell.Explorer.2")
    With WBS
        .Width = 90
        .Height = 70
        .Navigate "about:<html><body scroll='no'><img src='" & Drapeau & "'></img></body></html>"
    End With
    Set WBS = Nothing
    End Sub
    Edit: Beaux drapeaux gif

  11. #11
    Membre averti
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2013
    Messages : 23
    Par défaut
    Bonsoir à tous !
    Bonsoir PMO2017,
    vous demander de m'aider à revoir le fichier que j'ai joint "BASE_PDF" surtout en ce qui concerne le recadrage du drapeau et la mise en conformité de la couleur du userform (même en dessous du drapeau). Tel que vous l'avez proposé, ça fonctionne très bien, mon inquiétude, c'est juste ce dont je viens de parler. Merci encore pour votre aide et merci aux autres posts, qui ne sont pas des moindre.

  12. #12
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour mercatog, je suis toujours avec intérêt tes interventions dans les post, là je me suis trompé de fichier, celui-ci était qu'un exemple, voici celui que je voulais communiquer
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  13. #13
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour,

    signorepel Bonsoir, j'ai accusé réception de votre code, je l'ai inséré. il fonctionne. Toutefois, le cadre dans lequel il se trouve est assez grand et j'aurais voulu que la couleur de fond s'adapte à la couleur du userform.
    J'ai traité
    1) la suppression de la bordure du WebBrowser
    2) l'application de la couleur de fonds du UserForm à celle du WebBrowser avec toutefois une restriction au fonctionnement qui est expliqué dans le code (voir les ###)
    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
    Private Sub UserForm_Initialize()
    Dim WBS As Object 'WebBrowser
    Set WBS = Me.Controls.Add("Shell.Explorer.2")
    WBS.Navigate "about:<html><body scroll='no'><img src='http://www.gif-anime.org/im/gif/drapeau/benin/benin3.gif'></img></body></html>"
    '---
    DoEvents
    With WBS.Document.Body.Style
      '--- Supprime la bordure ---
      .BorderStyle = "none"
      '--- Applique la couleur de fonds du UserForm ---
      '################################################################################
      '### ATTENTION :                                                              ###
      '### Pour que l'instruction suivante fonctionne, il est impératif de définir  ###
      '### la couleur de fonds du UserForm (BackColor) par le biais de l'onglet     ###
      '### "Palette" de la fenêtre de Propriétés et NON pas par l'onglet "Système". ###
      '### L'affectation de la couleur par code est également possible avec une     ###
      '### instruction comme, par exemple :       Me.BackColor = 16744576           ###
      '################################################################################
      .BackgroundColor = InvertRGB(Me.BackColor)
    End With
    End Sub
     
    Private Function InvertRGB(Color As Long) As Long
    Dim A$
    Dim B$
    Dim i&
    A$ = Hex(Color)
    Do Until Len(A$) >= 6
      A$ = "00" & A$
    Loop
    For i& = 6 To 2 Step -2
      B$ = B$ & Mid(A$, i& - 1, 2)
    Next i&
    InvertRGB = CLng("&H" & B$)
    End Function
    Bon courage et à plus.

  14. #14
    Membre averti
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2013
    Messages : 23
    Par défaut
    Bonsoir PMO2017
    J'ai fait, tel que tu as expliqué, le code fonctionne bien. Toutefois, je constate que la couleur de fond du Userform diffère de celle en dessous du Drapeau, je serais ravi que tu m'orientes sur quelle ligne il faut insérer une modification dans le code. Je voudrais aussi, te demander, au cas où je n'aurais pas la connexion, et que l'image gif se trouverait sur mon poste, s'il n'y aurait pas un code qu'on pourrait insérer pour faire flotter le drapeau offline.
    Je ne saurais comment te remercier infiniment et tous ceux d'ailleurs qui lisent aussi, ma préoccupation. Merci !

  15. #15
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour,

    signorepel Toutefois, je constate que la couleur de fond du Userform diffère de celle en dessous du Drapeau
    Cela dépend des GIF. Certains ont leur couleur de fonds qui peut être modifiée, d'autres pas. Il faut donc choisir ceux qui réagissent bien.
    ***
    au cas où je n'aurais pas la connexion, et que l'image gif se trouverait sur mon poste
    mercatog avait indiqué la démarche dans son message du 01/07/2013 20h53
    ***
    Je mets, en pièce jointe, un exemple qui traite le problème de la connexion. Soit on est connecté et on va chercher un GIF sur Internet, soit on l'est pas et on affiche le GIF qui est sur l'ordinateur (il faudra adapter le chemin et le nom du fichier GIF dans le code).

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

Discussions similaires

  1. [XL-2010] VBA afficher une image (variable) sur Userform avec hyperlien
    Par kevina82 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/06/2015, 21h55
  2. [XL-2000] Userform VBA Excel
    Par Igloobel dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 12/04/2015, 14h49
  3. Double action sur un seul bouton (userform)VBA)
    Par willybass dans le forum VBA Access
    Réponses: 5
    Dernier message: 14/05/2008, 16h10
  4. [VBA-E] - Loop sur userform
    Par Qatari dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 26/03/2007, 15h00
  5. Probleme d'enregistrement sur Macro/VBA de Excel
    Par life is magic dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/11/2005, 18h23

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