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 :

[VBA-E] Pause arréter par l'appui d'une touche


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2004
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 34
    Points : 18
    Points
    18
    Par défaut [VBA-E] Pause arréter par l'appui d'une touche
    Bonjour,

    J'aimerai pouvoir arréter le fonctionnement d'une macro à un moment donné et pouvoir reprendre le traitement suite à l'appui sur une touche.
    Je travail sur Excel avec des macros VBA. Le systéme serait equivalent en fait à mettre un point d'arret dans la macro. L'utilisateur devra avoir la main sur Excel pour visualiser des données.

    Merci de vos réponses.

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    voir instruction stop

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2004
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 34
    Points : 18
    Points
    18
    Par défaut
    Oui l'instruction stop arrete bien la macro à l'endroit voulu mais comment la reprendre à partir d'Excel??? Et l'instruction stop ouvre VB editor ce que je ne veux pas du tout , il faudrait que ca soit transparent au niveau utilisateur, juste que l'utilisateur appui sur une touche dans Excel et le macro continue .

  4. #4
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    utilisation d'une boucle sur la valeur boléenne d'une variable toto
    Au er appui toto = true
    au eme appui toto = false
    et tant que toto = true on ne fait rien (doevents, par exemple)

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2004
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 34
    Points : 18
    Points
    18
    Par défaut
    Oui merci mais quelle est la fonction pour récupérer l'appui sur un bouton?
    merci

  6. #6
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    utilisation de l'événement click.
    ps : tu as bien un userform ?

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2004
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 34
    Points : 18
    Points
    18
    Par défaut
    Non justement je n'ai pas de userform à ce moment la de l'application !!!

  8. #8
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Fais-en une, alors (toute petite au besoin) avec un bouton de commande dont tu utilises le click

  9. #9
    Membre à l'essai
    Inscrit en
    Avril 2004
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 34
    Points : 18
    Points
    18
    Par défaut
    Je veux en faire une mais après je n'aurai plus la main sur mon fichier Excel !!

  10. #10
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Salut

    l'arrêt de la macro se produit sous quelle condition? On peut voir le bout de code ent question?

  11. #11
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Citation Envoyé par jmfmarques
    utilisation de l'événement click.
    ps : tu as bien un userform ?
    Pas besoin de UserForm, un bouton de commande placé directement sur une feuille Excel possède aussi un évènement Click
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  12. #12
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonjour

    Peux tu préciser le traitement à appliquer dans la macro

    Excel n'est pas vraiment prévu pour gérer les timers mais tu trouveras ci dessous un exemple qui incrémente la cellule B1 toutes les secondes à paartir du CommandButton placé dans la feuille (procédure à adapter en fonction de ton projet)


    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
     
    '----- au niveau de la feuille---------
    '-------contenant le CommandButton-----
    Option Explicit
     
    Private Sub CommandButton1_Click()
     
    If Btn = False Then
        Btn = True
        Temporisation
        Else
        Btn = False
    End If
     
    End Sub
    '-------------------------------------

    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
     
    '------ dans un module standard -------
    Option Explicit
     
    Public Btn As Boolean
     
    Sub Temporisation()
    'timer toutes les secondes
    Application.OnTime Now + TimeValue("00:00:01"), "maMacro"
    End Sub
     
     
    Sub maMacro()
    '
    'incementation de la cellule B1
    Range("B1") = Range("B1") + 1
    '
     
    If Btn = False Then
    Finir
    Exit Sub
    End If
     
    Temporisation
    End Sub
     
     
    Sub Finir()
    On Error Resume Next
    Application.OnTime Now + TimeValue("00:00:01"), _
    "maMacro", , Schedule:=False
    End Sub

    bonne journée
    michel

  13. #13
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    @SilkyRoad :désolé , mais j'suis pas sur que ton code corresponde au fonctionnement demandé alors je poste le mien ...

    @gengen ... : Commence par coller dans ta feuille excel un bouton de la boite à outils controle et lie le à ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub CommandButton1_Click()
     bEnPause = Not bEnPause
     If bEnPause Then
       CommandButton1.Caption = "Marche"
     Else
     CommandButton1.Caption = "Pause"
     End If
    End Sub
    ensuite dans un module

    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
     
    Public bEnPause As Boolean 'Variable globale ...
     
    Sub MaProcedure()
     'Varible dFin utilisée seulement pour créer une boucle
     'simulant le traitement en cours
     Dim dFin As Date 'Variable Date de fin de boucle
     dFin = Now + TimeSerial(0, 2, 0)
     
     While Now < dFin ' Boucle Simulant la boucle finale de cacul
        DoEvents 'Obligatoire !! sinon pas d'appui possible sur bouton
        While bEnPause
          DoEvents 'Boucle ici en mode pause
        Wend
     
       ' Traitement à effectuer ici...
       '
       If i > 65000 Then i = 0
       i = i + 1
      '---
     Wend
    End Sub
    bon ne sachant pas ce que fait ton code .. j'ai fai une boucle qui tourne pendant 2 minutes... à toi de remplacer cette boucle , et d'organiser ton code pour qu'il passe en permanence dans la boucle de pause ...

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/04/2007, 16h22
  2. Faire apparaitre une fênetre sous l'appuie d'une touche
    Par EssaiEncore dans le forum Langage
    Réponses: 6
    Dernier message: 14/12/2005, 16h21
  3. Réponses: 3
    Dernier message: 24/01/2005, 11h57
  4. Sortir d'un while par l'appui d'une touche ?
    Par voxel dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 18/08/2004, 09h44
  5. Simuler l'appui sur une touche, au niveau système
    Par debutant java dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 13/08/2004, 12h51

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