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

VBA Access Discussion :

Clignotement d'une étiquette pendant une sauvegarde. [AC-2007]


Sujet :

VBA Access

  1. #1
    Membre habitué
    Avatar de gerarddurand
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 118
    Points : 127
    Points
    127
    Billets dans le blog
    1
    Par défaut Clignotement d'une étiquette pendant une sauvegarde.
    Bonjour,

    (Je n'ai rien trouvé de plus percutant pour mon intitulé.)

    Pour faire une copie de ma base j'ai le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim fs As Object
    Set fs = CreateObject("Scripting.FileSystemObject")
    fs.copyfile "c:\users\le dauphin bleu\documents\hotel1.accdb", Clef & ":\"
    Pendant la copie je voulais faire clignoter une étiquette qui indique "Patientez ". Tout fonctionne bien jusqu'au départ de la copie. Là mon étiquette arrête de clignoter. Elle recommence quand la copie est terminée.

    Quelqu'un pourrait me dire pourquoi et surtout m'expliquer comment faire.

    Une autre question , si vous voulez bien.

    A la place de l'étiquette, j'aimerais faire une barre de progression. J'ai trouvé un tuto mais je ne l'ai pas compris.

    A votre bon coeur.

    Merci

  2. #2
    Membre expérimenté Avatar de RobiPMS
    Homme Profil pro
    Conseiller psycho-pédagogique
    Inscrit en
    Octobre 2007
    Messages
    827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Conseiller psycho-pédagogique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 827
    Points : 1 506
    Points
    1 506
    Par défaut
    Bonjour.

    Concernant ta question sur la barre de progression, peut-être trouveras-tu une piste dans cette discussion : http://www.developpez.net/forums/d11...sateur-boucle/

    Cordialement.
    RL

  3. #3
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Je ne pense pas que tu puisses prendre la main sur le programme pendant la copie.

    Pourquoi tu n'affiches pas un gif animé ? L'effet serait le même non ?

  4. #4
    Membre habitué
    Avatar de gerarddurand
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2009
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 118
    Points : 127
    Points
    127
    Billets dans le blog
    1
    Par défaut
    Bonsoir,

    de RobiPMS:
    Concernant ta question sur la barre de progression, peut-être trouveras-tu une piste dans cette discussion : http://www.developpez.net/forums/d11...sateur-boucle/
    En effet j'ai pu faire une barre de progression mais cela n'arrange pas mon problème car le cycle stoppe quand la sauvegarde s'effectue. Je m'en passerai.

    En tout cas j'ai appris quelque chose.

    Merci à toi et à PC75

    Cordialemant

  5. #5
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonsoir,

    J'ai essayé quelque chose et ça à l'air de fonctionner.
    J'ai un formulaire sur lequel je mets un bouton et une barre de progression (contrôle activeX Microsoft ProgressBar Control, version 6.0)
    Le bouton s'appelle cmdCopier.
    La barre de progression s'appelle axProgressBarCopie.

    Voici le code de l'événement "Sur clic" du bouton :
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    Private Sub cmdCopier_Click()
    Dim sSource As String, sDest As String
    Dim flSce As Integer, flDest As Integer
    Const C_BUFFSIZE = 4000&
    Dim bytBuffer() As Byte
    Dim lFilePos As Long, lFilePosMax As Long
    Dim oPgBar As MSComctlLib.ProgressBar
     
    ' Fichier Source
    sSource = CurrentProject.FullName
    ' Fichier Destination
    sDest = Environ("TEMP") & "\" & CurrentProject.Name
     
    ' Ouverture du fichier source
    flSce = FreeFile()
    Open sSource For Binary Access Read Shared As flSce
    ' Taille du fichier source
    lFilePosMax = LOF(flSce)
    ' Initialiser la taille du tableau d'octets
    ReDim bytBuffer(1 To C_BUFFSIZE)
    ' Initialisation barre de progression (MSComctlLib.ProgressBar)
    Set oPgBar = Me.axProgressBarCopie.Object
    oPgBar.Max = lFilePosMax
    oPgBar.Min = 0
    oPgBar.Value = 0
     
    ' Ouverture fichier destination. Au préalable, on le supprime s'il existe.
    If Len(Dir(sDest, vbNormal)) > 0 Then Kill sDest
    flDest = FreeFile()
    Open sDest For Binary Access Write As flDest
     
    ' Boucle pour copier le fichier par blocs de C_BUFFSIZE octets
    Do
       ' Lire dans fichier source
       Get #flSce, , bytBuffer
       ' Position dans le fichier
       lFilePos = Loc(flSce)
       ' Si elle dépasse la Position max (au dela de la fin de fichier)
       ' on ajuste la taille du tableau d'octets
       If lFilePos > lFilePosMax Then
          ReDim Preserve bytBuffer(1 To C_BUFFSIZE + lFilePosMax - lFilePos)
       End If
       ' Ecrire dans fichier destination
       Put #flDest, , bytBuffer
       ' Mettre à jour barre de progression
       If lFilePos <= lFilePosMax Then oPgBar.Value = lFilePos
       '
       DoEvents
    Loop Until (lFilePos >= lFilePosMax)
     
    ' Fermer les fichiers
    Close flDest
    Close flSce
     
    End Sub
    Le code copie la bdd en cours dans le dossier des fichiers temporaires.
    Le principe est d'effectuer une copie du fichier en VBA par bloc de 4000 octets.
    Après la copie de chaque bloc, on met à jour la barre de progression.

    A+

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 351
    Points : 23 816
    Points
    23 816
    Par défaut
    Peut-être en utilisant le OnTimer et mettant la fonction qui fait clignoter dans cet événement.

    Avec une féquence de 1s, si ça marche, tu aurais une sorte de multitasking du pauvre et sans passer par une copie binaire du fichier comme l'a suggéré LedZeppII .

    A+

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  2. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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