Code VBA pour automatiser une manip simple
Résolu/Fermé
jean777
-
16 janv. 2008 à 17:13
@¿@ Messages postés 48 Date d'inscription samedi 5 janvier 2008 Statut Membre Dernière intervention 23 mai 2009 - 17 janv. 2008 à 18:23
@¿@ Messages postés 48 Date d'inscription samedi 5 janvier 2008 Statut Membre Dernière intervention 23 mai 2009 - 17 janv. 2008 à 18:23
A voir également:
- Code VBA pour automatiser une manip simple
- Iphone 14 simple - Guide
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
3 réponses
@¿@
Messages postés
48
Date d'inscription
samedi 5 janvier 2008
Statut
Membre
Dernière intervention
23 mai 2009
6
16 janv. 2008 à 21:47
16 janv. 2008 à 21:47
tu peux donner un exemple style
feuille data : données de A1 a D:8
Feuille Input : ces donnees ont leur relations de B:1 a D:9
feuille Result : les relations sont dur C:1 ? est ce ca . les donnees 2 de data sont ou? les relations sur les 2 autres feuilles ou?
merci de renseigner sur ces points
feuille data : données de A1 a D:8
Feuille Input : ces donnees ont leur relations de B:1 a D:9
feuille Result : les relations sont dur C:1 ? est ce ca . les donnees 2 de data sont ou? les relations sur les 2 autres feuilles ou?
merci de renseigner sur ces points
oui bien sûr, merci de votre réponse!
Sur la feuille data les données s'étalent sur la zone B3 à P6500: ce sont les historiques complets des cours de bourses, mais pour chaque scénario de mon étude j'ai besoin de 1080 données, il font donc faire glisser à chaque itération de la boucle les données d'une ligne.
Exemple:
Pour le scénario 1: Copier-coller les ligne B3 à P1083 de la feuille Data dans la feuille Inpout à l'emplacement B3 à P1083, le résultat des difféerents calculs va apparaitre sur cette meme feuille Input en cellule A1, il faut copier-coller ce résultat sur la feuille Result à l'emplacement B1.
Scénario 2: Copier-coller les ligne B4 à P1084 (+1) de la feuille Data dans la feuille Inpout à l'emplacement B3 à P1083, le résultat des différents calculs va apparaitre sur cette meme feuille Input en cellule A1, il faut copier-coller ce résultat sur la feuille Result à l'emplacement B2 (+1).
etc pour 1000 scénarios... d'où la nécessité d'une macro !
J'espère que vous m'avez compris. J'ai réussi à coder la manipulation pour le scénario 1 mais je ne sais pas comment coder le décallage d'une ligne à chaque itération.
Sur la feuille data les données s'étalent sur la zone B3 à P6500: ce sont les historiques complets des cours de bourses, mais pour chaque scénario de mon étude j'ai besoin de 1080 données, il font donc faire glisser à chaque itération de la boucle les données d'une ligne.
Exemple:
Pour le scénario 1: Copier-coller les ligne B3 à P1083 de la feuille Data dans la feuille Inpout à l'emplacement B3 à P1083, le résultat des difféerents calculs va apparaitre sur cette meme feuille Input en cellule A1, il faut copier-coller ce résultat sur la feuille Result à l'emplacement B1.
Scénario 2: Copier-coller les ligne B4 à P1084 (+1) de la feuille Data dans la feuille Inpout à l'emplacement B3 à P1083, le résultat des différents calculs va apparaitre sur cette meme feuille Input en cellule A1, il faut copier-coller ce résultat sur la feuille Result à l'emplacement B2 (+1).
etc pour 1000 scénarios... d'où la nécessité d'une macro !
J'espère que vous m'avez compris. J'ai réussi à coder la manipulation pour le scénario 1 mais je ne sais pas comment coder le décallage d'une ligne à chaque itération.
@¿@
Messages postés
48
Date d'inscription
samedi 5 janvier 2008
Statut
Membre
Dernière intervention
23 mai 2009
6
17 janv. 2008 à 18:23
17 janv. 2008 à 18:23
salut
voici ce que je te propose
d abord declarer deux variables a incrementer
dim x, y as integer
on initialise la variable
x= 0
y=1
'on lance la boucle
do while worksheets("Data").range("B" & (3+x)).Value <>""
'on selectionne les cellules a copier
worksheets("Data").range("B" & (3+x) & ":P" & (1083 + x)).copy
worksheets("Input").range("B3").paste
worksheets("Input").range("A1").copy
worksheets("Result").range("B" & y).paste
y=y+1
x=x+1
loop
moi je ferai un truc comme ca: comme j ai ecris de memoire et en texte, j ai pas testé, mais ce devrait etre correct
sinon teste une macro sur le copy/paste sur une selection multiple mais garde la syntaxe des X et Y
@+
voici ce que je te propose
d abord declarer deux variables a incrementer
dim x, y as integer
on initialise la variable
x= 0
y=1
'on lance la boucle
do while worksheets("Data").range("B" & (3+x)).Value <>""
'on selectionne les cellules a copier
worksheets("Data").range("B" & (3+x) & ":P" & (1083 + x)).copy
worksheets("Input").range("B3").paste
worksheets("Input").range("A1").copy
worksheets("Result").range("B" & y).paste
y=y+1
x=x+1
loop
moi je ferai un truc comme ca: comme j ai ecris de memoire et en texte, j ai pas testé, mais ce devrait etre correct
sinon teste une macro sur le copy/paste sur une selection multiple mais garde la syntaxe des X et Y
@+