Problème macro récupérant des données fréquemment et Excel

Bonsoir, je travaille actuellement sur une macro qui va récupérer des valeurs sur un logiciel (en l'occurence Supervision, par le biais de GESVAR32).

Aucun problème pour la mise en place de ses variables et l'utilisation de la macro mais le problème se situe si on sélectionne des cellules au moment de la copie et ce même sur une autre feuille Excel, la macro se met en erreur et donc doit être relancer de zéro.

J'ai pourtant bien spécifié wbk.Sheets("Feuil1").Range ..... avec wbk = mon classeur de travail recevant les données (avec en début de macro wbk= wbk.add ....) donc le problème ne vient à mon avis pas de la déclaration d'écriture.

Ma macro fonctionne de façon autonome toutes les 10 secondes et donc écrit sur des lignes à chaque fois, le problème c'est que l'ordinateur peut être utiliser pour traiter d'autres fichiers Excels indépendant (voir le même au pire des cas mais ce n'est pas si ce n'est pas possible).

Comment faire pour contourner ou corriger ce problème?

Merci d'avance,

Feitan

Bonjour,

Sans fichier (qu'on sera peut-être en peine de tester) on va lancer des trucs au hasard.

  • Mettre des DoEvents pour donner la main de temps en temps
  • sur les opérations de lecture/écriture toujours spécifier classeur et feuille
  • et surtout essayer des travailler dans plusieurs sessions (fenêtre) excel dont une réservée à ton appli pour essayer de séparer au maximum.
  • et pourquoi pas l'ouvrir en xlMinimized et réduire ses propriétés .Height et .Width pour que si qcq'un l'active la fenêtre très réduite l'alerte et le dissuade de s'en servir.

eric

Bonjour et merci de votre réponse.

Je ne peux malheureusement pas donner de fichier le travail étant confidentiel... Je peux recopier la portion de code que j'utilise par contre ça ne sera pas un problème.

- Mettre des DoEvents pour donner la main de temps en temps

Ma macro s'active sur la modification d'une variable (valeur, date, ....) et s'écrit si le nombre de secondes actuelles est égale a 10, 20, 30, 40, 50 ou 00. En gros je pense que Excel est tout le temps sollicité mais que l'écriture se fait uniquement 1 fois par 10 secondes. Le DoEvent peut arranger ça?

- sur les opérations de lecture/écriture toujours spécifier classeur et feuille

C'est fait, le problème survient quand on sélectionne des cellules dans une autre feuille, mais il n'y a pas de problème d'écriture au mauvais endroit.

- et surtout essayer des travailler dans plusieurs sessions (fenêtre) excel dont une réservée à ton appli pour essayer de séparer au maximum.

C'est fait aussi, la macro va créer un classeur de nom wbk et à chaque fois écrire uniquement dans ce classeur. J'ai donc deux fichiers excel à ce moment là, celui que j'ai lancé qui fait tourner la macro et l'autre qui reçoit les données de la macro.

et pourquoi pas l'ouvrir en xlMinimized et réduire ses propriétés .Height et .Width pour que si qcq'un l'active la fenêtre très réduite l'alerte et le dissuade de s'en servir.

Si le problème venait que de la modification de cette feuille on bannirait son utilisation mais là le problème survient aussi quand on travaille sur une autre feuille Excel et c'est problématique.

Bonjour,

Ma macro s'active sur la modification d'une variable (valeur, date, ....) et s'écrit si le nombre de secondes actuelles est égale a 10, 20, 30, 40, 50 ou 00. En gros je pense que Excel est tout le temps sollicité mais que l'écriture se fait uniquement 1 fois par 10 secondes.

Par un évènement Change ou tu boucle en permanence ?

Si c'est une boucle tu devrais utiliser OnTime (voir l'aide excel)

Le DoEvent peut arranger ça?

Non, c'est indépendant de ton problème. Comme tu dis travailler sur le micro en même temps, c'est pour donner la main aux autres programme et ne pas avoir de lenteurs ou de mini-blocages sur ceux-ci.

et surtout essayer des travailler dans plusieurs sessions (fenêtre) excel dont une réservée à ton appli pour essayer de séparer au maximum.

C'est fait aussi

Je n'ai pas l'impression. 2 sessions c'est 2 excel de démarrés dans 2 fenêtres différentes. Et là j'ai l'impression que tu continues à travailler manuellement dans la même session que ton appli.

Mais si tu dois travailler dans le même fichier tu n'as peut-être pas le choix. Précise ce point

Si tu pouvais mettre au moins la ligne en erreur (et son environnement) et le message...

eric

Rechercher des sujets similaires à "probleme macro recuperant donnees frequemment"