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 :

Afficher un message et une image d'attente pendant l'exécution d'une Macro [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 164
    Points : 88
    Points
    88
    Par défaut Afficher un message et une image d'attente pendant l'exécution d'une Macro
    Bonjour,

    Je pense que mon Pb a été déjà évoqué et même résolu plusieurs fois ici mais j'ai pas trouvé un exemple qui répond vraiment à mon besoin

    Ce que je souhaite faire c'est évidement d'afficher un message d'attente avec une image (un sablier pour représenter le temps qui coule) et cela avec une vue agréable un peu grande sur l’écran pour l'utilisateur qui attend en utilisant bien sur un UserForm



    Merci

  2. #2
    Membre éprouvé
    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
    Points : 1 219
    Points
    1 219
    Par défaut
    Bonjour,

    Je crois que c'est impossible, Excel ne peut traiter 2 procédures simultanément.
    Puissent les contributeurs me démentir.
    ****
    Cependant, il existe une piste envisageable en passant par un HTA (fichier HTML Application).
    Faites moi signe si cela vous intéresse, j'ai un exemple tout fait d'une barre de progression qui utilise cette technique et je peux le mettre en pièce jointe. C'est compliqué et cela ne fonctionnera que sur un PC mais vous aurez le pied à l'étrier pour le parfaire selon votre idée.

  3. #3
    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
    Points : 2 553
    Points
    2 553
    Par défaut
    Tu peux faire avancer un compteur pendant ta Routine...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i = 1 to 1000000
    'tescalculs
    Compteur=compteur+1
    Textbox = compteur/1000000 & "%"
    Next i
    Mais ce que tu gagnes en joli, tu le perds en rapidité puisqu'il fera 1000000 opérations inutiles et 1000000 actualisations de la carte graphique :S Donc affiche un userform avec une image calcul en cours en GIF si tu veux que ce soit stylé et basta

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut
    Bonjour,

    c'est possible via un UserForm en mode non modal …

    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 164
    Points : 88
    Points
    88
    Par défaut
    Bonjour PMO2017

    Merci pour ta réponse

    Oui oui donne moi STP cet exemple et si c'est possible explique moi un peu comment le mettre en place

    Mercii

  6. #6
    Membre éprouvé
    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
    Points : 1 219
    Points
    1 219
    Par défaut
    Voilà le bébé.

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 164
    Points : 88
    Points
    88
    Par défaut
    Re PMO2017

    Ton exemple est super intéressant, c'est ce que je voulais faire mais je ne sais pas comment l'adapter à ma macro qui se trouve dans mon fichier Excel A

    Je m'explique :
    Dans mon fichier Excel A j'ai une macro qui serre a ouvrir un autre fichier Excel B
    A l'ouverture de ce fichier Excel B par la macro du fichier Excel A il fait un traitement de données avec une macro puis il se ferme

    Ce que je veux faire c'est d'afficher le message d'attente que tu m'as passé durant tout le temps que le fichier B reste ouvert puis disparait a sa fermeture

    Voilà ma macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub MonTraitement()
    Dim wb As Workbook
    Dim ws As Worksheet
    'Set wb = Workbooks.Open("C:\Users\SDVS1733\Desktop\Mondossier\FichierExcelB.xlsm")
    Set ws = wb.Worksheets(1)
    wb.Saved = True
    wb.Close
    End Sub
    Merci

  8. #8
    Membre éprouvé
    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
    Points : 1 219
    Points
    1 219
    Par défaut
    Bonjour jérémyp8,

    Ce que j'ai compris :
    1) un classeur maître qui ouvre un classeur secondaire
    2) un classeur secondaire qui lance une macro à son ouverture
    Une fois le traitement de cette macro achevé, le classeur secondaire se ferme et rend la main au classeur maître.

    Si c'est bien cela, alors une piste avec l'exemple en pièce jointe.
    Il faudra adapter le chemin et le nom du classeur secondaire dans l'instruction suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set WB = Workbooks.Open("C:\B.xlsm")   'chemin et nom du fichier à adapter
    Il est impératif de faire une gestion d'erreur. Ceci est expliqué dans le code du module mod_Traitement

    Bon courage et à plus.

  9. #9
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 164
    Points : 88
    Points
    88
    Par défaut
    Bonjour PMO2017

    Un grand merci pour toi ....C'est tout à fait ce que je voulais faire

    Juste une dernière petite chose
    Es ce que c'est possible d'exécuter ma macro pour ouvrir le fichier B ainsi que le message d'attente automatiquement quand j'ouvre le fichier A


    Quand j'exécute manuellement la macro tout ce passe bien c'est-à-dire que le fichier B s'ouvre avec le message d'attente pendant le traitement mais quand je veux exécuter la macro automatiquement quand j'ouvre le fichier A le traitement se fait mais sans le message d'attente

    Jai essayé toutes ces possibilités
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub Workbook_Open()
    'Call LanceTraitementAvecProgressionbarre
    'Call MonTraitement
    End Sub
    Merci

  10. #10
    Membre éprouvé
    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
    Points : 1 219
    Points
    1 219
    Par défaut
    Bonjour jérémyp8,

    Essayez plutôt ceci pour la raison qui est signalée dans le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Workbook_Open()
    '--- On est obligé de diffèrer la procédure de traitement ---
    '--- pour l'obtention du rafraîchissement des fenêtres    ---
    Application.OnTime Now + TimeValue("00:00:01"), "LanceTraitementAvecProgressionbarre"
    End Sub

  11. #11
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 164
    Points : 88
    Points
    88
    Par défaut
    C'est Génial

    Encore une fois un enorme Merci pour toi...Porte toi bien

  12. #12
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut heu
    Bonjour PMO2017

    exellent ton idée de progressbar dans un hta dynamique
    avantage 1 independante de l'application excel
    avantage 2 possibilité de la transformer avec les apis
    un shell pour demarer
    un sendmessage pour fermer
    un kill pour jetter le fichier

    rien a dire sinon que +2 points

    un tout petit regret cependant

    je regrette que tu ne soit pas aller plus loin dans la construction de ton hta
    avec un peu de CSS
    on pourrait faire un jolie truc

    Au plaisir
    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

  13. #13
    Membre éprouvé
    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
    Points : 1 219
    Points
    1 219
    Par défaut
    Salut patricktoulon,

    un tout petit regret cependant

    je regrette que tu ne soit pas aller plus loin dans la construction de ton hta
    avec un peu de CSS
    on pourrait faire un jolie truc
    Je suis plutôt du genre cambouis. Je m'intéresse plus à la motorisation et il est vrai que je ne fait pas dans la joliesse.
    Maintenant, à chacun de faire évoluer selon son sens et ses goûts esthétiques.

    Merci pour l'attribution des points et à plus.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/03/2012, 04h48
  2. Affichage d'une image au passage de la souris sur une image mappée
    Par Pouet24 dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 09/07/2009, 09h26
  3. [XL-2003] Afficher un message d'attente pendant l'exécution d'une macro
    Par demongin dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 07/06/2009, 20h54
  4. Affichage d'un message d'attente pendant l'exécution d'une macro
    Par shadok6 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/10/2008, 14h49
  5. Réponses: 1
    Dernier message: 27/02/2008, 13h55

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