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 :

Progressbar pour une copie


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 66
    Par défaut Progressbar pour une copie
    Bonjour à tout le forum

    Pour un fameux problèmes de PROGRESSBAR j'ai essayé de faire des recherches sur le forum, mais j'ai eu comme impression que cette fonction n'est applicable que sur des calculs.

    J'espère que ce n'est qu'une impression de ma part car j'aimerais associé une barre de progression à l'exécution du code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Application.ScreenUpdating = False
    Workbooks.Open "C:\Documents\archive.xls"
    Workbooks("Essai.xls").Sheets(ComboBox1.Text).Copy After:=Workbooks("archive.xls").Sheets(Sheets.Count)
    Workbooks("archive.xls").Close (True)
    Application.DisplayAlerts = False
    Workbooks("Essai.xls").Sheets(ComboBox1.Text).Delete
    Application.DisplayAlerts = True
    Comment pourrais je y parvenir ?

    Merci et à Bientôt

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 570
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 570
    Par défaut
    salut
    bien que je n'ai pas la réponse a ce que tu demande, je me permet quelque suggestions
    le code que tu as est quasi immédiat; une progressbar te le ralentirais a mort puisque tu devrais passer sreenupdating a true pour la visualiser. benefice nul
    tu copie ta feuille dans un autre fichier, puis tu reviens la supprimer, il vaut mieux la déplacer dans ce cas là. utilise move after
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Workbooks("Essai.xls").Sheets(ComboBox1.Text).move After:=Workbooks("archive.xls").Sheets(Sheets.Count)
    ce qui te donnerais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Application.ScreenUpdating = False
    Workbooks.Open "C:\Documents\archive.xls"
    Workbooks("Essai.xls").Sheets(ComboBox1.Text).move After:=Workbooks("archive.xls").Sheets(Sheets.Count)
    Workbooks("archive.xls").Close (True)
    Workbooks("Essai.xls").close (true)

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 66
    Par défaut
    Salut alsimbad

    Bien vu !
    Merci pour ce rafraichissement de mon code
    A +

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Citation Envoyé par kedas
    Pour un fameux problème de PROGRESSBAR
    ...
    Comment pourrais je y parvenir ?
    Tu peux tester en utilisant "ontime". Je ne l'ai jamais fait et, au cours d'une copie, je ne sais pas ce que ça donnerait. Tu peux toujours essayer...
    Si tu as besoin de précisions, après avoir consulté l'aide, tu dis, je tâcherai de voir ce qu'on peut faire.
    A+

    Edit
    J'ai un peu modifié un code que j'avais

    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
    Public Fin As Boolean
     
    Sub CopierAvecProgressBar()
        Fin = False
        FaitAvancer
        'Ton code de copie
        DoEvents
        'Fermeture du/des fichiers
        DoEvents
        Fin = True
    End Sub
     
     
    Sub FaitAvancer()
        'Code pour faire avancer le progressbar d'une fraction du tps de copie en secondes
        'Max = Temps total d'une copie en seconde (mesuré ou estimé)
        '...
        'Relance la pendule (mise à jour de OnTime) toutes les secondes
        If Not Fin Then Application.OnTime Now + TimeValue("00:00:01"), "FaitAvancer"
    End Sub
    A+

Discussions similaires

  1. action play/pause pour une copie de fichiers via socket
    Par dumoulex dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 13/05/2011, 15h05
  2. [XL-2003] lien hypertext : chemin absolu pour une copie de celulle entre deux fichier
    Par leprechaun dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 07/07/2009, 15h20
  3. Réponses: 4
    Dernier message: 27/08/2007, 13h11
  4. Réponses: 3
    Dernier message: 02/05/2007, 09h20

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