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

IHM Discussion :

Ajout d'un sablier pour indiquer d'attendre lors d'un exécutif


Sujet :

IHM

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    chargée d'études statistiques
    Inscrit en
    Juillet 2018
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : chargée d'études statistiques
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2018
    Messages : 79
    Points : 36
    Points
    36
    Par défaut Ajout d'un sablier pour indiquer d'attendre lors d'un exécutif
    Bonjour,

    Je souhaiterais ajouter à mon code VBA qui effectue le transfert de 13 Tables Access sur un classeur Excel.xlsm, un sablier ou un indicateur qui permet d'informer l'exécutant qui clique sur ce bouton de contrôle que le traitement est en cours.

    Pourriez-vous m'aider ? Merci..

    Mon code :
    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
    Private Sub Btn_EXPORTeXCEL_Click()
     
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "T_1", "\\Moncheminaccès\MonClasseur.xlsm", True, "Source_1"
     
     k = Timer: Do Until Timer > k + 13: DoEvents: Loop
     
     
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "T_2", _
                       "\\Moncheminaccès\MonClasseur.xlsm", True, "Source_2"
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "T_3", _
                       "\\Moncheminaccès\MonClasseur.xlsm", True, "Source_3"
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "T_4", _
                        "\\Moncheminaccès\MonClasseur.xlsm", True, "Source_4"
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "T_5", _
                       "\\Moncheminaccès\MonClasseur.xlsm", True, "Source_5"
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "T_6", _
                       "\\Moncheminaccès\MonClasseur.xlsm", True, "Source_6"
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "T_7", _
                      "\\Moncheminaccès\MonClasseur.xlsm", True, "Source_7"
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "T_8", _
                      "\\Moncheminaccès\MonClasseur.xlsm", True, "Source_8"
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "T_9", _
                     "\\Moncheminaccès\MonClasseur.xlsm", True, "Source_9"
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "T_10", _
                       "\\Moncheminaccès\MonClasseur.xlsm", True, "Source_10"
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "T_11", _
                       "\\Moncheminaccès\MonClasseur.xlsm", True, "Source_11"
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "T_12", _
                      "\\Moncheminaccès\MonClasseur.xlsm", True, "Source_12"
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "T_13", _
                       "\\Moncheminaccès\MonClasseur.xlsm", True, "Source_13"
     
     
     
    MsgBox "Vos données ont toutes été exportées vers le fichier : MonClasseur", vbOKOnly + vbInformation, "CONFIRMATION"
    End Sub

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.Hourglass True 'Active le sablier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.Hourglass False 'desactive le sablier
    Ne pas oubllier la desactivation sinon le sablier reste meme quand le traitement est termine.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    chargée d'études statistiques
    Inscrit en
    Juillet 2018
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : chargée d'études statistiques
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2018
    Messages : 79
    Points : 36
    Points
    36
    Par défaut
    Merci Maro_r.. Toujours aussi efficace !
    A bientôt

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Et tu pourrais reecrire ton code comme ceci :

    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 Btn_EXPORTeXCEL_Click()
     
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "T_1", "\\Moncheminaccès\MonClasseur.xlsm", True, "Source_1"
     
     k = Timer: Do Until Timer > k + 13: DoEvents: Loop
     
    dim i  as long:for i=2 to 13
       DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "T_" & i, _
                       "\\Moncheminaccès\MonClasseur.xlsm", True, "Source_" & i
    next i 
     
    MsgBox "Vos données ont toutes été exportées vers le fichier : MonClasseur", vbOKOnly + vbInformation, "CONFIRMATION"
    End Sub
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    chargée d'études statistiques
    Inscrit en
    Juillet 2018
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : chargée d'études statistiques
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2018
    Messages : 79
    Points : 36
    Points
    36
    Par défaut
    Bonjour maro_r,

    Merci pour ton indication mais j'ai modifié le nom de mes tables et de mes sources pour la publication. Chaque table a un nom différent et ce n'est pas numérique.
    Mais je garde ton code optimisé "sous le coude".

    A très bientôt.

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Dans ce cas la tu peux eventuellement faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    dim ListeNom() as Variant:ListeNom=Array("NomA", "NomB", "NomZ")
     
    dim nom as variant: for each nom in ListeNom
       DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "T_" & Nom, _
                       "\\Moncheminaccès\MonClasseur.xlsm", True, "Source_" & Nom
    next nom
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    chargée d'études statistiques
    Inscrit en
    Juillet 2018
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : chargée d'études statistiques
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2018
    Messages : 79
    Points : 36
    Points
    36
    Par défaut
    Génial maro_r !!

    Merci pour l'optimisation.. du coup comme j'ai plusieurs exports vers d'autres classeurs, c'est beaucoup plus facile à écrire!!

    Par contre, j'ai besoin de ton aide sur du VBA Excel, je ne sais pas si tu peux m'aider car j'ai ouvert une discussion sur le forum VBA Excel mais c'est difficile..

    J'ai besoin d'intégrer dans le code ci-dessus, une ouverture avec password et un enregistrer pour fermer le classeur de façon automatique. (Sans que l'utilisateur ne le fasse)
    Le but est de lancer des macros sur des classeurs fermés, via un classeur ouvert. Ce qui reviendrai à dire d'effectuer les actions en "Masqué".
    As tu une solution?

    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
    Sub LancerMacro()
         Dim xlApp As Excel.Application
         Dim xlWbk As Excel.Workbook
     
         ' Créer une instance d'Excel
         Set xlApp = New Excel.Application
         Set xlWbk = xlApp.Workbooks.Open("MonCheminAcces\Classeur1.xlsm")
         ' Lancer une macro
     
         xlApp.Run xlWbk.Name & "!Macro1"
         xlApp.Run xlWbk.Name & "!Macro2"
         ' Tout effacer après traitement
         'xlWbk.Close False
         Set xlWbk = Nothing
         ' Penser à quiter l'instance d'Excel
         xlApp.Quit
         Set xlApp = Nothing
     
        ' Créer une instance d'Excel
         Set xlApp = New Excel.Application
         Set xlWbk = xlApp.Workbooks.Open("MonCheminAcces\Classeur2.xlsm.xlsm")
         ' Lancer une macro
         xlApp.Run xlWbk.Name & "!Macro3"
         xlApp.Run xlWbk.Name & "!Macro4"
         ' Tout effacer après traitement
         'xlWbk.Close False
         Set xlWbk = Nothing
         ' Penser à quiter l'instance d'Excel
         xlApp.Quit
         Set xlApp = Nothing
     
         ' Créer une instance d'Excel
         Set xlApp = New Excel.Application
         Set xlWbk = xlApp.Workbooks.Open("MonCheminAcces\Classeur3.xlsm.xlsm")
         ' Lancer une macro
         xlApp.Run xlWbk.Name & "!Macro5"
         xlApp.Run xlWbk.Name & "!Macro6"
         ' Tout effacer après traitement
         'xlWbk.Close False
         Set xlWbk = Nothing
         ' Penser à quiter l'instance d'Excel
         xlApp.Quit
         Set xlApp = Nothing
     
     End Sub

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Comme cela non et je n'ai jamais fait ce genre de chose.

    As-tu essaye avec l'enregistreur de macro de Excel, ca donne generalement une bonne piste.

    Je t'invite aussi a mettre le lien vers ta discussion dans le forum Excel car c'est plus un problem Excel que Access.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  9. #9
    Nouveau membre du Club
    Femme Profil pro
    chargée d'études statistiques
    Inscrit en
    Juillet 2018
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : chargée d'études statistiques
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2018
    Messages : 79
    Points : 36
    Points
    36
    Par défaut
    Merci maro_r.. ci-dessous le lien vers Excel.


    https://www.developpez.net/forums/d1...-fermes-passe/

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

Discussions similaires

  1. ajout d'une procédure pour un évènement
    Par Wormus dans le forum wxPython
    Réponses: 3
    Dernier message: 14/10/2006, 16h54
  2. Ajouter des librairies externes pour la compilation en C++
    Par Roming22 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 11/07/2005, 10h15

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