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 :

Pause dans une macro


Sujet :

Macros et VBA Excel

  1. #41
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Je pense que c'est juste un problème d'affichage. Il suffit de changer le format des cellules.

  2. #42
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 130
    Par défaut
    Je t'ai envoyé un message de remerciements en page 2. (pour m'assurer que tu l'ait vu car on est maintenant en page 3)

    J'ai mis.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("B4").Value = Format(Range("B4").Value, "dd/mm/yyyy")
    Et un MsgBox qui m'indique la date et c'est bon elle m'indique bien 12/05/2011.

    Merci Zebreloup, c'est nickel.

    PS : J'ai une dernière question.
    Comment dois je organiser mes deux boutons?
    A présent, la configuration n'est plus la même?

    Cordialement.

  3. #43
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Dans le fichier que je t'ai proposé, je crois me souvenir que j'utilisais un seul et même bouton qui changeait de fonctionnalité en fonction de la phase dans laquelle on était. Ca ne t'allait pas ?

  4. #44
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 130
    Par défaut
    Beh !!!! je ne comprends pas alors, quand est ce que l'utilisateur fait ses modifications pour les catégories A CLASSER?

    Cordialement

  5. #45
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    A la fin de la première macro. C'est juste que le bouton a changé de fonctionnalité entre temps. Il faut recliquer sur le même bouton.

  6. #46
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 130
    Par défaut
    Bonsoir Zebreloup,

    * S'il te plait j'ai besoin de tes lumières.

    les deux macros fonctionnent et le classeur ouvert est réutilisé dans la seconde sans problème lorsque j'utilise la touche F5.
    mais le bouton ne fonctionne pas. *

    J'ai un message d'erreur lorsque je clic sur le bouton que je n'ai pas avec F8 ou F5: incompatibilité de type ci contre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set wbExterne = Workbooks(classeurOuvert)
    C'est le clic qui ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Option Explicit
     
    Private Sub btnExecution_Click()
    J'ai essayé pitoyablement quelques changements mais ca ne fonctionne pas.
    exemple.
    Initialiser à TRUE dans This Workbook et mettre ça pour le clic.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub btnExecution_Click()
     
        If (procedureEnCours = True) Then
            SuiviCashBnpEuro1
            procedureEnCours = False
            btnExecution.Caption = "Ouvrir le fichier"
        Else
            SuiviCashBnpEuro2
            procedureEnCours = True
            btnExecution.Caption = "Modifications terminées"
        End If
    End Sub
    Peux tu me dire pourquoi s'il te plait?

    Cordialement.

  7. #47
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    En fait je m'étais trompé, j'avais mis 2 fois SuiviCashBnpEuro2. Et tu as corrigé dans le mauvais sens malheureusement.
    La logique est "si la procédure est en cours, on lance la deuxième partie et on réninitialise le bouton, sinon, on lance la première partie et le bouton est prêt à attendre la fin des modifications"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Option Explicit
     
    Private Sub btnExecution_Click()
        If procedureEnCours Then
            SuiviCashBnpEuro2
            procedureEnCours = False
            btnExecution.Caption = "Ouvrir le fichier"
        Else
            SuiviCashBnpEuro1
            procedureEnCours = True
            btnExecution.Caption = "Modifications terminées"
        End If
    End Sub

  8. #48
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 130
    Par défaut
    Merci Zebreloup,

    C'est parfait tu as réglé tous les problèmes de ma macro de départ qui était catastrophique, il faut l'avouer.

    C'est parfait, tout est génial.
    Merci infiniment.

    Il me reste plus qu'à reproduire les différentes étapes.
    J'ai donc une ultime demande à te formuler.

    Pourrais tu s'il te plaît me récapituler les étape pour la création de mon bouton pour que cela fonctionne bien ? (les miens ne fonctionnent jamais je t'assure)

    Redis moi s'il te plaît comment on le crée ?
    mdCode, mdUtil, histo, tabCorres, ThisWorbook ??? J'ai peur de tout louper.

    Je ne sais pas si tu vois ce que je veux dire, les choses à ne pas louper quoi pour que ça fonctionne ?

    Merci infiniment et désolé pour le tracas que je t'ai causé.

    Cordialement.

    Je veux dire quelles sont les étapes à suivre pour reproduire le bouton que tu as utilisé ??

    Il y a plusieurs manières de créer des boutons et la plupart crée des problèmes à l'exécution.

    Cordialement.

  9. #49
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Je vais essayer d'expliquer la logique du code et son intégration dans un classeur.

    Il y a dans mon exemple deux onglets HistoriqueCategorie et TableCorrespondance :
    • HistoriqueCategorie correspond à la feuille principale. En première colonne la liste des dates et sur la première ligne la liste des catégories. C'est ici qu'il y a le bouton qui va nous servir pour les 2 étapes.
    • TableCorrespondance contient la correspondance produit/categorie. Cela évite des Select Case... très lourds dans le code et permet de rajouter des correspondances sans toucher au code. (Pour faire bien, il aurait même fallu que les catégories soient créées dynamiquement à partir de cette table.)


    Pour créer le bouton, j'utilise un bouton contrôle ActiveX et non pas un bouton de formulaire. C'est celui de la boite à outils contrôles. On le créée sur la feuille, on change son nom en faisant click droit/propriétés (ici btnExecution), on change également le texte (Caption) en "Ouvrir le fichier", et on double-clique dessus, ce qui va nous faire apparaître le code associé à l'évènement click (btnExecution_Click()) sur le code de la feuille HistoriqueCategorie. C'est ici que l'on met le code dont on vient de parler dans le post précédent.

    On oublie pas de mettre des Option Explicit partout...

    J'avais aussi créer deux modules (mdCode et mdUtil) pour que ce soit plus clair, mais ça tu fais comme tu veux, ça ne change rien. Tu peux tout mettre dans le même, en faire 5...

    Dans mdUtil (l'occasion de revoir la différence entre ByVal et ByRef), il y a la fonction d'ouverture de classeur et celle d'initialisation de la table de correspondance, qui évite d'aller la recalculer à chaque fois. Sur ce point, on aurait tout aussi bien pu travailler avec une plage nommée dynamique.

    Dans mdCode, on entre dans le vif du sujet.
    On a nos variables globales
    • procedureEnCours qui permet de savoir si on a déjà lancé la première partie de la procédure ou pas.
    • classeurOuvert qui permet de se souvenir du nom du classeur qui a été ouvert.

    PS : On n'oublie pas dans le code de ThisWorkbook, d'initialiser procedureEnCours à False...

    On a ensuite les deux constantes CHEMIN_FICHIERS et LISTE_DEROULANTE qu'il faut que tu adaptes, cf commentaire dans mon code.

    Et pour finir nos 2 parties de code que l'on ne va pas redétailler ici, mais qu'il faut adapter si les colonnes bougent. Il faut surtout complêter la deuxième partie avec la copie, je n'avais pas bien compris ce que tu voulais faire, il me manque sans doute une partie du contexte.

    Voilà, j'espère que c'est à peu près clair. Si tu as des questions n'hésite pas, mais je quitte demain soir pour quelques jours toute forme de connexion internet, donc c'est demain... ou l'année prochaine.

    Joyeux Noel !

  10. #50
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 130
    Par défaut
    Merci Zebreloup,

    Ce sera demain!!!!!!!!
    Merci infiniment.

    Et je ne te souhaite pas encore joyeuse fête car je suis sur que j'aurais encore besoin de tes lumières demain.

    Merci pour tout, vraiment.
    Très sincèrement, je n'y serais pas parvenu sans ton aide.
    Cordialement.

    Bonsoir à tous,

    Bonsoir Zebreloup,

    Contente de voir que tu es encore là.
    J'ai encore besoin de tes lumières de génie.

    Je teste et reteste ton code pour chercher les exceptions.
    J'ai remarqué quelque chose.
    Lorsque je clic une première fois sur le bouton, si jamais je ne choisis pas de fichier, j'annule le lancement ou si le fichier est déjà ouvert, le bouton passe quand même à "MODIFS EFFECTUEES " et la macro ne se réinitialise pas.
    Je voudrais éviter cela.

    Je sais pas si j'explique bien la chose.
    Je voudrais qu'en cas d'erreurs le bouton reste en statut "OUVRIR FICHIER" et que si je réappuis sur le bouton : aucun problème!!!! tout redébute.

    Cordialement.

  11. #51
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 130
    Par défaut
    Bonsoir à tous,

    Bonsoir Zebrloup,

    Je suis contente de voir que tu es encore là.
    J'ai encore besoin de tes lumières s'il te plaît.
    J'ai posté un message il y a quelques minutes mais je crois qu'il y a eu un beug.

    Je teste et reteste ton bouton pour essayer de trouver les exceptions.
    Et j'ai remarqué quelque chose.
    Lorsque l'on clique sur le bouton, mais que l'on n'ouvre pas de fichier, qu'on annule le lancement ou que l'on a cliqué par erreur sur le bouton par exemple, la macro ne se réinitialise pas.

    Le statut du bouton passe à "MODIFS EFFECTUEES" alors que rien à été fait et la macro continu à tourner.
    Il faudrait qu'en cas d'erreurs rien ne se passe ou que l'exécution soit réinitialisée.

    Sais tu comment je pourrais gérer cette exception s'il ta plaît ??

    Cordialement.

  12. #52
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Effectivement, grosse erreur de ma part. Désolé.
    Par contre je ne vais pas pouvoir te donner du code pour le moment.
    Mais je suis sûr que tu peux y arriver... Il faut que tu transforme la procédure en fonction et qu'elle renvoie si tout s'est bien passé. Un peu comme je l'avais fait pour la fonction d'ouverture de fichier.

  13. #53
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 130
    Par défaut
    Merci infiniment pour toute ton aide Zebreloup.
    Sincèrement.

    Je te souhaite de joyeuses fêtes.
    Joyeux noël et bonne vacances.
    Que de bonnes choses pour cette nouvelle année en venir.

    MERCI MERCI.
    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. Faire une "PAUSE" dans la macro et donner la main à l'utilisateur
    Par hortencia dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/08/2011, 07h25
  2. Probleme de "Pause"dans une macro
    Par macduss dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 30/06/2009, 14h54
  3. pb dans une macro excel VB
    Par syl221 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 20/10/2005, 17h29
  4. Marquer une pause dans une procédure stockée
    Par PéPénet dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 08/11/2003, 10h42
  5. Pause dans une boucle
    Par HT dans le forum Langage
    Réponses: 4
    Dernier message: 03/06/2003, 08h52

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