[vb] vider buffer en visual basic
steve
-
dino -
dino -
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 :
ç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
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:
- [vb] vider buffer en visual basic
- Visual basic - Télécharger - Langages
- Visual basic editor - Télécharger - Langages
- Visual petanque - Télécharger - Sport
- Microsoft 365 basic - Accueil - Microsoft Office
- Visual c++ 2019 - Guide
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 :/
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 :/