[Excel / VB] Rafraichissement de variable dan
Fermé
mougeat
Messages postés
1
Date d'inscription
vendredi 29 mai 2009
Statut
Membre
Dernière intervention
29 mai 2009
-
29 mai 2009 à 10:57
mougeat - 29 mai 2009 à 21:49
mougeat - 29 mai 2009 à 21:49
A voir également:
- [Excel / VB] Rafraichissement de variable dan
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si et excel - Guide
- Déplacer une colonne excel - Guide
- Excel moyenne - Guide
9 réponses
Utilisateur anonyme
29 mai 2009 à 12:14
29 mai 2009 à 12:14
Bonjour,
Je ne sais pas comment tu récupères tes variables de ton automate, mais dans ta boucle tu prends toujours les valeurs depuis les cellules B7,C7,D7, E7 de la feuille "V230 config" !
Est ce que les valeurs à copier commencent en ligne 7 et continuent en 8,9,10 ...
Si c'est le cas la solution n'est pas loin.
A+
Je ne sais pas comment tu récupères tes variables de ton automate, mais dans ta boucle tu prends toujours les valeurs depuis les cellules B7,C7,D7, E7 de la feuille "V230 config" !
Est ce que les valeurs à copier commencent en ligne 7 et continuent en 8,9,10 ...
Si c'est le cas la solution n'est pas loin.
A+
Salut, merci pour ta réponse, en fait B7, C7, D7, E7 je récupère la valeur venu de l'automate et cette valeur change n permanance en fonction des valeurs de cette automate. Donc
Prenons la cellule B7 pour exemple :
je reçois au début en B7 25A
que je souhaite copier dans la ligne 1 de mon tableau
puis B7 change et passe à 75A
Après X temps je souhaite recopier cette nouvelle valeur de B7 dans la ligne 2 de mon tableau etc.
ce qui se passe en B7, C7, D7, E7 marche actuellement bien grâce à un programme du fournisseur.
Prenons la cellule B7 pour exemple :
je reçois au début en B7 25A
que je souhaite copier dans la ligne 1 de mon tableau
puis B7 change et passe à 75A
Après X temps je souhaite recopier cette nouvelle valeur de B7 dans la ligne 2 de mon tableau etc.
ce qui se passe en B7, C7, D7, E7 marche actuellement bien grâce à un programme du fournisseur.
Utilisateur anonyme
29 mai 2009 à 15:27
29 mai 2009 à 15:27
la valeur en B7 change à quelle fréquence, 1s, 5s, 10... plus , moins
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
29 mai 2009 à 16:06
29 mai 2009 à 16:06
Pas facile de synchroniser.
Il n'y a pas moyen d'obtenir les valeurs les unes sous les autres (B7,B8, B9, ...)
les valeurs "captées" dans "V230 config" le sont elles par une macro? si oui, c'est à ce niveau qu'il faut intervenir,
si non il y a toutes les chances de "zapper" des valeurs.
Il n'y a pas moyen d'obtenir les valeurs les unes sous les autres (B7,B8, B9, ...)
les valeurs "captées" dans "V230 config" le sont elles par une macro? si oui, c'est à ce niveau qu'il faut intervenir,
si non il y a toutes les chances de "zapper" des valeurs.
Les valeurs reçu dans "V23 config" sont trasmises de l'automate à excel par le biai d'un programme unitronics (fournisseur de l'automate) j'arrive bien à voir ces valeurs changer instantanément dans l'onglet "V230 config". Moi je veu juste les recopier et les coller dans mon tableau.
C'est justement car ce n'est pas possible de les récupérer sous forme de tableau que je veu créer le mien.
Mon but final est d'avoir un relevé de température.
Je récupèe sur mon automate 4 entrées de température. Je retransmet ces valeurs dans mon fichier excel sur "V230 config". Ces valeurs changent dès que la température monte ou baisse. Puis à chaque X seconde, je copie ces valeurs les unes sous les autres dans le tableau se trouvant dans "tableau".
En ecrivant, il me vient une idée, ce n'est pas parce que je suis dans un onglet différent que sa ne marche pas?
C'est justement car ce n'est pas possible de les récupérer sous forme de tableau que je veu créer le mien.
Mon but final est d'avoir un relevé de température.
Je récupèe sur mon automate 4 entrées de température. Je retransmet ces valeurs dans mon fichier excel sur "V230 config". Ces valeurs changent dès que la température monte ou baisse. Puis à chaque X seconde, je copie ces valeurs les unes sous les autres dans le tableau se trouvant dans "tableau".
En ecrivant, il me vient une idée, ce n'est pas parce que je suis dans un onglet différent que sa ne marche pas?
NicoDisso
Messages postés
230
Date d'inscription
mardi 26 mai 2009
Statut
Membre
Dernière intervention
22 août 2009
32
29 mai 2009 à 16:35
29 mai 2009 à 16:35
moi je dirai qu'il serait sympas de mettre du code dan sla feuille afin d'archiver toi meme ses données au fur et a mesure.
Ainsi a chaque fois que la cellule change, tu archives la valeur avec l'heure exacte et du coup tu as ton historique.
et non pas avec le temps qui s'écoule. ensuite dans ton tableau tu choisis les valeurs avec un test sur l'heure pour ta base de temps.
D'autre part, si il y a beaucoup de valeur en meme temps, peut etre qu'excel n'est pas rafraichit lorsque ton application tourne.
tapes DoEvents dans ton code afin que windows reprenne la main dessus, c'est peut etre juste ca.
En fait en tapant ça, je me suis rendu dans l'aide d'excel, parce que ca me parait bizarre quand meme et du coup tu as
application.wait
Marque une pause dans l'exécution de la macro jusqu'à une heure spécifiée. Renvoie la valeur True si l'heure spécifiée est atteinte.
Important La méthode Wait suspend toute activité de Microsoft Excel et peut vous empêcher d'accomplir toute autre opération sur votre ordinateur pendant la durée de la pause. Seules les tâches de fond telles que l'impression ou le recalcul se poursuivent.
Syntaxe
expression.Wait(Time)
expression Obligatoire. Expression qui renvoie un objet Application.
Time Argument de type Variant obligatoire. Heure, exprimée dans le format Date de Microsoft Excel, à partir de laquelle l'exécution de la macro doit reprendre.
du coup, peut etre que ca bloque l'appli par elle meme et que les données ne sont plus recues..
il faudrait essayer avec un timer avec un intervalle d'une seconde voir si ça fait pareil
Ainsi a chaque fois que la cellule change, tu archives la valeur avec l'heure exacte et du coup tu as ton historique.
et non pas avec le temps qui s'écoule. ensuite dans ton tableau tu choisis les valeurs avec un test sur l'heure pour ta base de temps.
D'autre part, si il y a beaucoup de valeur en meme temps, peut etre qu'excel n'est pas rafraichit lorsque ton application tourne.
tapes DoEvents dans ton code afin que windows reprenne la main dessus, c'est peut etre juste ca.
En fait en tapant ça, je me suis rendu dans l'aide d'excel, parce que ca me parait bizarre quand meme et du coup tu as
application.wait
Marque une pause dans l'exécution de la macro jusqu'à une heure spécifiée. Renvoie la valeur True si l'heure spécifiée est atteinte.
Important La méthode Wait suspend toute activité de Microsoft Excel et peut vous empêcher d'accomplir toute autre opération sur votre ordinateur pendant la durée de la pause. Seules les tâches de fond telles que l'impression ou le recalcul se poursuivent.
Syntaxe
expression.Wait(Time)
expression Obligatoire. Expression qui renvoie un objet Application.
Time Argument de type Variant obligatoire. Heure, exprimée dans le format Date de Microsoft Excel, à partir de laquelle l'exécution de la macro doit reprendre.
du coup, peut etre que ca bloque l'appli par elle meme et que les données ne sont plus recues..
il faudrait essayer avec un timer avec un intervalle d'une seconde voir si ça fait pareil
Utilisateur anonyme
29 mai 2009 à 17:27
29 mai 2009 à 17:27
Bonne idée de NicoDisso!!
tu peux essayer dans la feuille "V230 config" :
en supprimant la boucle for de la macro initiale
A+
tu peux essayer dans la feuille "V230 config" :
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Target, [B7:E7]) Is Nothing Then les lignes du module de transfert : ........ Worksheets("Tableau").Cells(LigneNum, 2).Value = Worksheets("V230 config").Range("B7").Value ..... End If End Sub
en supprimant la boucle for de la macro initiale
A+