Reagir lors du pressage du bouton

Bonjour a tous, je ne reussi pas a mettre a jour l'affichage (une nouvelle ligne excel) pendant que le bouton est presse, seulement lorsque je le relache. J'ai essaye d'isoler mon probleme mais sans succes. Les explications sont dans le fichier excel. Je joins un fichier texte qui dois etre present dans le meme repertoire.

Merci d'avance!

12capucin-step.zip (138.60 Ko)
14vers-excel.txt (108.00 Octets)

Bonjour,

Si j'ai bien compris, tu veux VOIR que les lignes s'inscrive ?

Si c'est ça...

        Do While Action
           fin = Range("A65536").End(xlUp).Row + 1
           Cells(fin, 1).Select   'pour que la nouvelle ligne de donnee registres soit toujours a l'ecran
           CommandeStep   'envoi dans le fichier "COMMANDES" la commande STEP
           Sleep 100      'delais 100msec, fonction API
           edit = False           'afin que la macro evenementielle Worksheet_Change(ByVal Target As Range) soit inactif
           Call supprimecouleur   'enleve la couleur sur la ligne d'instruction courante de EPE
           LireRegistres
           Label2.Caption = N 'test temporaire
           N = N + 1
            edit = True
            Application.ScreenUpdating = True '<<<<------
            DoEvents  'Va voir ailleurs si une action est exécutée
       Loop

Note que la variable Edit devrait être supprimée et mettre avant le DO

Appliaction.EnabledEvent = False

Remettre à true après le loop.

Pour info.. tu met

    Application.ScreenUpdating = 0

devrait être

    Application.ScreenUpdating = False

False et 0 (zéro) sont tout à fait différent.

A+

Salut lermite! ca fonctionne tres bien en mettant Application.ScreenUpdating = True '<<<<------Bravo parce qu'il y a 4 mois que je demande de l'aide pour ca! . Par contre j'ai essaye d'ajouter Application.EnabledEvent = False et Application.EnabledEvent = True et il ya erreur. Je ne suis pas certain que je les ai place au bonne endroit. Et tu veux egalement que j'elimine edit = false?

   Sub Boucler()
     Dim N As Long
     Dim fin&
         Application.EnabledEvent = False
        Do While Action
           fin = Range("A65536").End(xlUp).Row + 1
           Cells(fin, 1).Select   'pour que la nouvelle ligne de donnee registres soit toujours a l'ecran
           CommandeStep   'envoi dans le fichier "COMMANDES" la commande STEP
           Sleep 100      'delais 100msec, fonction API
           edit = False           'afin que la macro evenementielle Worksheet_Change(ByVal Target As Range) soit inactif
           Call supprimecouleur   'enleve la couleur sur la ligne d'instruction courante de EPE
           LireRegistres
           Label2.Caption = N 'test temporaire
           N = N + 1
            edit = True
            Application.ScreenUpdating = True '<<<<------
            DoEvents  'Va voir ailleurs si une action est exécutée
       Loop
           Application.EnabledEvent = True
       Label1.Caption = "Mouse Up" 'pas obligatoire

    End Sub

Ouupps, erreur de frappe...

Application.EnableEvents

Oui, supprime tout ce qui est en rapport avec la variable Edit, elle est avantageusement remplacée par la fonction ci-dessus.

A+

J'avais remarque l'erreur de frappe, mais j'ai quand meme l'erreur: propriete ou methode non gerer par cet objet.

Pas possible...tu a bien mis,

    Application.EnabledEvent = False
'..........
'..........
    Application.EnabledEvent = true

C'est que tu a encore une erreur dans la syntaxe, fait un copier/coller.

C'est fait mais l'erreur persiste. Pour ne pas avoir d'erreur je dois mettre ces 2 lignes en commentaire:

    Sub Boucler()
     Dim N As Long
     Dim fin&
'Application.EnabledEvent = False
        Do While Action
           fin = Range("A65536").End(xlUp).Row + 1
           Cells(fin, 1).Select   'pour que la nouvelle ligne de donnee registres soit toujours a l'ecran
           CommandeStep   'envoi dans le fichier "COMMANDES" la commande STEP
           Sleep 100      'delais 100msec, fonction API
           edit = False           'afin que la macro evenementielle Worksheet_Change(ByVal Target As Range) soit inactif
           Call supprimecouleur   'enleve la couleur sur la ligne d'instruction courante de EPE
           LireRegistres
           Label2.Caption = N 'test temporaire
           N = N + 1
            'edit = True
            Application.ScreenUpdating = True '<<<<------
            DoEvents  'Va voir ailleurs si une action est exécutée
       Loop
'Application.EnabledEvent = True
       Label1.Caption = "Mouse Up" 'pas obligatoire

    End Sub

tu n'a pas fais comme je t'ai dis, (copier/coller)

Y FAUT UN au bout.

Grrrr, c'est moi qui fait l'erreur, je sais pas comment j'ai fais ça... bref..

Application.EnableEvents = False

C'est la bonne syntaxe.

il y avais aussi un "d" de trop dans "enabled". Ca marche tres bien.

En conclusion, je n'ai pas besoin de "edit" car Application.EnableEvents = False

empeche tout les evenement excel de declencher une macro?

Exact.

Deux petit trucs pour faciliter l'édition du code..

toujours taper les mots de syntaxe en minuscule, S'il n'y a pas d'erreur au moins la première lettre se changera en majuscule.

Exemple..tape ->> application.enableevents = true ->> Enter.

La ligne va changer en Application.EnableEvents = True

Essaie maintenant la même chose mais en oubliant le s au bout ... pas de majuscule !! Compris.?

2°) tape application -> ensuite le point -> tu devrais avoir la liste déroulante de l'intellisense qui s'affiche en dessous du point ->> tape e, ensuite n et double clic sur la mot EnableEvents ,.. OK ?

A+

Cool ces 2 petits truc!

Un gros merci pour ton implication dans mon projet!

Bonne semaine!

Tu en est à 447 message et tu ne sais pas encore....

Rechercher des sujets similaires à "reagir lors pressage bouton"