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 et reprise grâce à un clic [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Fonctionnaire passionné
    Inscrit en
    Novembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Fonctionnaire passionné

    Informations forums :
    Inscription : Novembre 2014
    Messages : 22
    Par défaut Pause dans une macro et reprise grâce à un clic
    Bonsoir à tous,

    Je suis en train de créer un fichier excel, qui doit me permettre de paramétrer plusieurs services. A l'ouverture du fichier, cela va vérifier qu'une cellule désignée est vide, si oui la procédure de paramétrage débute. Toute cette macro de paramétrage se trouve dans ThisWorkbook.

    Ma demande:
    Quand la macro débute, j'active une feuille (Feuil8.activate dans mon cas) où est rédigé ce qui va se passer. Il y a du texte à lire. J'ai insérer un Bouton avec OK dessus. Je souhaiterai que la macro fasse une pause à l'activation de la feuille, pour qu'on puisse avoir le temps de lire, et que la macro poursuive ses process quand on clique sur le bouton OK.

    Je ne vois pas du tout comment procéder. Je pense à une boucle du style: on attend tant que le bouton=false, un truc du genre ...

    Merci pour vos réponses,

    Sincèrement,

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Il suffit de se positionner sur les cellules à lire et d'insérer un MsgBox dans la macro, du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        MsgBox "Lire les instructions avant de continuer", vbInformation, "Titre de la fenêtre"
    Le cas échéant, il vous faut remettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = True
    si le rafraîchissement de l'écran a été désactivé auparavant.


    Cordialement.

  3. #3
    Membre averti
    Homme Profil pro
    Fonctionnaire passionné
    Inscrit en
    Novembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Fonctionnaire passionné

    Informations forums :
    Inscription : Novembre 2014
    Messages : 22
    Par défaut
    Bonjour,

    Merci pour cette réponse. J'avais intégré une procédure identique au départ du projet que je voulais faire évoluer, je trouvais qu'une belle feuille Excel était plus belle qu'un MsgBox.

    Je cherche du côté d'un CallByName avec un Sub ... end Sub dans la feuille en question mais ça ne marche pas non plus.

  4. #4
    Membre chevronné
    Homme Profil pro
    autodidacte
    Inscrit en
    Novembre 2013
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 517
    Par défaut
    Bonjour,

    Une solution:
    dans thisworkbook:
    mettre le code et le faire se terminer à l'activation de la feuille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    feuille.activate
    ens sub
    mettre la suite de la macro sur le bouton ok de la feuille

    autre solution:

    Faire apparaitre un userform

    EDIT:

    dernière solution:

    dans un module
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public continue As Boolean
     
    Sub Bouton_ok_Cliquer()
    continue = True
    End Sub
    dans thisworkbook

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Workbook_Open()
    'début de procédure
    While Not continue
    DoEvents
    Wend
    continue = False
    'fin de procédure après avoir cliquer sur le bouton ok
    End Sub

  5. #5
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    Bonjour,
    il faut decouper ton code en 2

    la première partie se lance comme avant.

    Quand tu affiches ta feuille 8 c'est la fin de la première partie.

    quand tu cliques sur le bouton OK de cette feuille ca débute la 2 ème macro (seconde partie)


    Tu peux le faire aussi avec un USERFORM NON MODAL contenant un bouton OK , la permiere macro se terminera sur userform1. show modeless


    la seconde partie lorsque tu cliqueras sur OK
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

  6. #6
    Membre averti
    Homme Profil pro
    Fonctionnaire passionné
    Inscrit en
    Novembre 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Fonctionnaire passionné

    Informations forums :
    Inscription : Novembre 2014
    Messages : 22
    Par défaut
    Bonjour à tous,

    Merci pour vos réponses,

    Après plusieurs essais, la solution la plus appropriée pour moi était de scinder le code en 2 et de terminer la première procédure après le activate.

    Je passe en résolu.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 04/03/2016, 10h05
  2. Pause dans une macro
    Par hortencia dans le forum Macros et VBA Excel
    Réponses: 52
    Dernier message: 24/12/2011, 17h52
  3. 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
  4. Probleme de "Pause"dans une macro
    Par macduss dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 30/06/2009, 14h54
  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