Copier la valeur d'une cellule à intervals réguliers...? - VB/VBA/VBS - Programmation
Marsh Posté le 31-10-2006 à 09:21:46
salut,
orichedo a écrit : J'aimerais pouvoir copier/coller la valeur de la cellule A2 de cette 1ere feuille sur la 2e feuille du classeur à interval régulier et à chaque fois qu'il "descend" d'une ligne pour que j'ai une évolution de cette valeur dans le temps... |
quant tu dis il descend tu parles de l'utilisateur ? car dans ce cas utilise la fonction Worksheet_SelectionChange.
Marsh Posté le 31-10-2006 à 09:41:50
euh non pas de l'utilisateur...
que ca se fasse automatiquement...
sur la feuille 2 par exemple à 14h00 il colle la valeur en A1, à 14h01 il la colle en A2 (pour pas effacer la A1), 14h02 en A3... etc...
Marsh Posté le 31-10-2006 à 09:51:12
avec la fonction Worksheet_Change qui recopierais la valeur lorsque la cellule A1 avec le compteur qui tourne aurait une certaine valeur.
je ne connait pas l'utilisation de ton classeur, mais ceci pourrait être problèmatique pour l'utilisateur puisque la macro s'executera toutes les secondes
Marsh Posté le 31-10-2006 à 10:28:04
bon à la rigueur si c'est toutes les secondes c'est pas dramatique non plus...
Mais comment faire alors pour qu'il passe à la ligne suivante à chaque copier coller ?
Marsh Posté le 31-10-2006 à 16:37:34
Salut orichedo,
Lorsque tu inscrit la valeur dans la cellule, tu lui indiques Cells(Ligne, Colonne).value=xxxx
Crée une variable dans laquelle tu inscris le numéro de la ligne, par exemple :
LaLigne=1
Crée une autre variable pour le numéro de colonne :
LaColonne=1
Ton instruction devient Cells(LaLigne, LaColonne).value= xxxx
Puis tu incrémente le numéro de la liligne :
LaLigne=LaLigne + 1
Ainsi, à la prochaine itération, le numéro de ligne dans laquelle tu vas écrire sera la suivante.
Un petit détail : dans Excel, tu as 65535 lignes dans une feuille !
Si tu as plus d'enregistrements à effectuer, tu dois vérifier si tu n'atteins pas cette dernière ligne. Si c'est le cas, tu passe à la seconde colonne, par exemple :
If LaLigne=65535 then
LaLigne=1
LaColonne=2
endif
Ainsi, ton numéro de colonne sera incrémenté chaque fois que tu auras atteint le bas de ta colonne. Avec les 255 colonnes disponibles, tu as à ta disposition :
65535 cellules *255 colonnes = 16.711.425 cellules pour engegistrer des données !
Bon courage pour gérer ça
Marsh Posté le 31-10-2006 à 16:47:51
Merci Papy Octet...
je vais essayer de voir ca de plus près...
pour le nombre de ligne aucun soucis j'en ai besoin que de 500 à 1000... mais ton astuce est toujours bonne à savoir pour ma culture perso...
Marsh Posté le 31-10-2006 à 08:58:29
bonjour à tous ...
Bon je m'y connais pas du tout en programmation VBA donc si vous avez une soluce à mon problème essayez de la faire le plus simple possible...
Donc voici le contexte...
J'ai un classeur excel, sur la 1ère feuille en A1 j'ai un compteur temps qui tourne... et en cellule A2 une certaine valeur qui change...
J'aimerais pouvoir copier/coller la valeur de la cellule A2 de cette 1ere feuille sur la 2e feuille du classeur à interval régulier et à chaque fois qu'il "descend" d'une ligne pour que j'ai une évolution de cette valeur dans le temps...
J'ai bien tenté une petite formule toute simple genre si(a1=telle heure;a2) mais le soucis c'est que dès que c'est plus l'heure que j'indique forcément il m'efface ma valeur pour me remettre "FAUX"
Et puis je sais quand meme pas comment incrémenter d'une ligne à chaque copier coller...
Un pro aurait il la soluce ?!
Merci d'avance