[vb] vider buffer en visual basic

Fermé
steve - 6 juin 2007 à 13:58
 dino - 7 juin 2007 à 00:04
Bonjour,

Je programme actuellement via les macros d'excel une application client recevant les informations d'un serveur via un port com et les reportant sur une feuille excel.
Jusqu'ici tout va bien, tout fonctionne parfaitement, mais ce programme tourne en boucle infinie puisque vérifiant sans cesse l'arrivé de nouvelles données sur le serveur. (pas trouver de meilleure solution que la boucle infinie mais si vous avez des idées ...)
Donc pour arrêter cette boucle infinie, j'ai programmé une touche (en l'occurence Q) qui lorsqu'elle est tapée, arrete ma macro.
Voici la partie du code qui arrete ma macro :

'Utilisations touches clavier
Private Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vkey As Long) As Integer

[...]

                    'Quitte si la touche Q est pressée
                    If GetAsyncKeyState(vbKeyQ) <> 0 Then
                        'efface le contenu de la feuille
                        'pour ne pas risquer d'enregistrer les resultats
                            Range("B4:M7,B8:K26,L22").Select
                            Range("B8").Activate
                            Selection.ClearContents
                            Range("L22").Select
                        'Quitte la macro
                        Exit Sub
                    End If


ça fonctionne, mais lorsque la macro se termine, toutes les touches tapée pendant celle-ci s'affiche dans ma feuille excel, donc ici la touche Q qui a été pressée.

Je cherche donc à vider le buffer avant de fermer la macro.
J'ai cherché partout que ce soit dans mes cours ou sur des forums, ... mais rien à faire, je dois mettre en place cette application lundi, elle sera utilisée dans ma société par des opératrices qui lorsqu'elles seront pressée de partir en fin de journée risque de quitter rapidement la page excel et d'enregistrer celle-ci avec les caractères qui y resteront et viendront perturber son prochain affichage.

Merci
A voir également:

1 réponse

où exactement sont insérés les touches à la fin de la macro ?

dans une seule cellule ? celle active au moment de l'execution de la macro? celle active à la fin ? (là je penses qu'enregistrer son contenu juste avant de quitter la macro (ou au debut?), effacer son contenu apres avoir arreté la macro et réinsérer la valeur enregistrée pourrait faire l'affaire)

plusieurs cellules ?

je m'y connais pas assez donc ne peut deviner :/
0