Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Aide Macro recuperation de données d'un onglet vers l'autre?

3 réponses
Avatar
Uncas Cooper
Bonjour à tous!

C'est mon premier post (sans doute pas le dernier), j'espere que mes
explications seront claires...

Je m'attaque a un grand projet de suivi de titres boursiers via excel
(peut etre pas le adequat mais c'est un autre debat...) et lá je
m'interesse juste à un probleme facile a resoudre je pense mais
diabolique pour moi..


Ce que nous avons objectivement:
J'ai un onglet "Source".
Colonne B: Code ISIC
Colonne C: date (3 ans d'historique)
Colonne D: valeur action

J'ai un onglet "Suivi":
Colonne A: dates
Colonnes suivantes: Identifiées par le Code ISIC correspondant dans la
cellule B1, C1, D1 etc

L'idee est de recuperer dans l'onglet "suivi" la valeur voulue dans la
bonne colonne (bon code ISIC) et dans la bonne ligne (bonne date) a
chaque fois que je mets des valeurs dans mon onglet "source".



Apres commencent les infos subjectives:
- j'ai renoncé a une formule type recherchev parce que je veux stocker
beaucoup de données dans ce classeur et je veux eviter au maximum des
formules.
-Un tableau croisé dynamique serait super facile mais idem trop de données.
- je ne peux pas faire une macro "bourrin" style juste copier coller
parce que il peut tres bien y avoir non correspondance de dates
(week-ends, etc) entre les deux onglets, etc
-Je n'ai pas envie de devoir refaire ou remettre a jour la macro si
j'echange deux colonnes de place etc, surtout que je pense que c'est
vraiment pas compliqué d'y arriver, mais il me manque quelques
connaissances VBA pour l'instant.

Mes idees pour l'instant:
-Comme il y a differents codes je pensais commencer par generer une
"clef" unique, c'est a dire concatener dans mon fichier "source" dans la
colonne A l'info suivante: Date+Code ISIC.
-Apres je pensais faire deux boucles imbriquées, la premiere fait
defiler les colonnes, a chaque changement de colonne elle memorise le
code ISIC correspondant, puis une boucle pour les dates et elle peut
donc recreer la clef date+code_ISIC. Apres elle doit trouver cette clef
et me ramener la valeur, un peu comme un recherchev.
-Au debut je pensais faire ecrire un recherchev a la macro et faire un
collage valeur par dessus mais j'ai eu l'impression qu'en passant par la
methode Find je pourrais y arriver mieux et plus rapidmeent. jusque là
sans succes...


Voila j'espere que je me suis bien expliqué, je serai heureux d'avoir de
nos nouvelles sur:
- si la façon de faire vous parait la bonne voie
- si vous avez des suggestions de macros que je puisse adapter pour y
arriver.

Merci beaucoup!!

UC

3 réponses

Avatar
LSteph
Bonjour UC,

Comme tu l'as souhaité, on a compris juste un peu, juste ce qu'il
fallait pour avoir envie que tu précises ou que d'autres se décident .
Bon alors ma petite idée de départ, avant que outre comprendre comment
tu essaie de faire quoi, on sache ce que tu veux faire comment.

Oublie Recherchev et intéresse toi à Index combiné avec Equiv.
index(tableau;ligne;colonne)
equiv(valeurcherchée;matrice;typerecherche)

ce qui fait qd on combine:

Index(tableau;equiv(valeurrepere;matriceverticale;typetumets0pourexact);
equiv(valeurrepere;matricehorizontalale;typetumets0pourexact))

@+

--
lSteph


Uncas Cooper a écrit :
Bonjour à tous!

C'est mon premier post (sans doute pas le dernier), j'espere que mes
explications seront claires...

Je m'attaque a un grand projet de suivi de titres boursiers via excel
(peut etre pas le adequat mais c'est un autre debat...) et lá je
m'interesse juste à un probleme facile a resoudre je pense mais
diabolique pour moi..


Ce que nous avons objectivement:
J'ai un onglet "Source".
Colonne B: Code ISIC
Colonne C: date (3 ans d'historique)
Colonne D: valeur action

J'ai un onglet "Suivi":
Colonne A: dates
Colonnes suivantes: Identifiées par le Code ISIC correspondant dans la
cellule B1, C1, D1 etc

L'idee est de recuperer dans l'onglet "suivi" la valeur voulue dans la
bonne colonne (bon code ISIC) et dans la bonne ligne (bonne date) a
chaque fois que je mets des valeurs dans mon onglet "source".



Apres commencent les infos subjectives:
- j'ai renoncé a une formule type recherchev parce que je veux stocker
beaucoup de données dans ce classeur et je veux eviter au maximum des
formules.
-Un tableau croisé dynamique serait super facile mais idem trop de données.
- je ne peux pas faire une macro "bourrin" style juste copier coller
parce que il peut tres bien y avoir non correspondance de dates
(week-ends, etc) entre les deux onglets, etc
-Je n'ai pas envie de devoir refaire ou remettre a jour la macro si
j'echange deux colonnes de place etc, surtout que je pense que c'est
vraiment pas compliqué d'y arriver, mais il me manque quelques
connaissances VBA pour l'instant.

Mes idees pour l'instant:
-Comme il y a differents codes je pensais commencer par generer une
"clef" unique, c'est a dire concatener dans mon fichier "source" dans la
colonne A l'info suivante: Date+Code ISIC.
-Apres je pensais faire deux boucles imbriquées, la premiere fait
defiler les colonnes, a chaque changement de colonne elle memorise le
code ISIC correspondant, puis une boucle pour les dates et elle peut
donc recreer la clef date+code_ISIC. Apres elle doit trouver cette clef
et me ramener la valeur, un peu comme un recherchev.
-Au debut je pensais faire ecrire un recherchev a la macro et faire un
collage valeur par dessus mais j'ai eu l'impression qu'en passant par la
methode Find je pourrais y arriver mieux et plus rapidmeent. jusque là
sans succes...


Voila j'espere que je me suis bien expliqué, je serai heureux d'avoir de
nos nouvelles sur:
- si la façon de faire vous parait la bonne voie
- si vous avez des suggestions de macros que je puisse adapter pour y
arriver.

Merci beaucoup!!

UC




Avatar
LSteph
.. après on verra .. pour les macros!
Avatar
Uncas Cooper
Merci LSteph pour ce debut de réponse.

Voici quelques complements.
- J'insiste, je voudrais passer par une macro. Pourquoi, parceque
l'onglet "source" est un onglet de travail sur lequel j'importe
temporairement des données. Apres je les efface. Donc s'il y a des
formules sur l'onglet "suivi" qui regardent ce qu'il y a dans "source"
elles vont vite se retrouver avec pas grand chose sous la dent.

Sinon j'essaie d'expliquer mieux. J'ai un onglet "suivi" dans lequel je
veux stocker "beaucoup" d'information. Par exemple suivre l'historique
des valeurs de 50 actions sur 5 ans, a raison d'une action par colonne.

Pour alimenter cet onglet je fais des exports de temps en temps d'un
site internet. Celui me livre un fichier .csv unique avec toutes les
valeurs que j'ai choisies.
Il y a 3 colonnes: date, code, valeur.
Donc si j'ai 4 codes je vais par exemple avoir tout l'historique de la
periode voulue pour le code A, suivi dans les lignes suivantes de tout
l'historique du code B pour la meme periode, etc.

Pour l'instant je colle ces valeurs sur un onglet intermediaire, le
fameux onglet "source", et je recupere "à la main" (formule recherchev
ou index+equiv si tu veux) ces donnees dans l'onglet "suivi".
Mais a l'extraction suivante je vais devoir ecraser les valeurs qu'il y
a dans "source". donc exit une formule.

J'essaie donc d'ecrire une macro qui fait ceci:
- je lui donne: Date et Code_ISIC en entree
- elle va sur l'onglet "source" et identifie la ligne qui contient ce
code et cette date et memorise la troisieme donnée, a savoir la valeur.
-elle va sur l'onglet "suivi" et identifie la bonne colonne (cette
colonne contient dans sa premiere cellule le meme COde_ISIC) et la bonne
ligne (celle qui contient en premiere cellule la meme date) et colle la
valeur qu'elle avait memorisé.

Apres il me "suffirait" de faire une genre de boucle qui appelle la
premiere macro avec toutes les dates et codes que je veux.

J'espere avoir ete plus clair,

merci encore de ton aide,

UC





LSteph escribió:
bonjour UC,

Comme tu l'as souhaité, on a compris juste un peu, juste ce qu'il
fallait pour avoir envie que tu précises ou que d'autres se décident .
Bon alors ma petite idée de départ, avant que outre comprendre comment
tu essaie de faire quoi, on sache ce que tu veux faire comment.

Oublie Recherchev et intéresse toi à Index combiné avec Equiv.
index(tableau;ligne;colonne)
equiv(valeurcherchée;matrice;typerecherche)

ce qui fait qd on combine:

Index(tableau;equiv(valeurrepere;matriceverticale;typetumets0pourexact);
equiv(valeurrepere;matricehorizontalale;typetumets0pourexact))

@+

--
lSteph


Uncas Cooper a écrit :
Bonjour à tous!

C'est mon premier post (sans doute pas le dernier), j'espere que mes
explications seront claires...

Je m'attaque a un grand projet de suivi de titres boursiers via excel
(peut etre pas le adequat mais c'est un autre debat...) et lá je
m'interesse juste à un probleme facile a resoudre je pense mais
diabolique pour moi..


Ce que nous avons objectivement:
J'ai un onglet "Source".
Colonne B: Code ISIC
Colonne C: date (3 ans d'historique)
Colonne D: valeur action

J'ai un onglet "Suivi":
Colonne A: dates
Colonnes suivantes: Identifiées par le Code ISIC correspondant dans la
cellule B1, C1, D1 etc

L'idee est de recuperer dans l'onglet "suivi" la valeur voulue dans la
bonne colonne (bon code ISIC) et dans la bonne ligne (bonne date) a
chaque fois que je mets des valeurs dans mon onglet "source".



Apres commencent les infos subjectives:
- j'ai renoncé a une formule type recherchev parce que je veux stocker
beaucoup de données dans ce classeur et je veux eviter au maximum des
formules.
-Un tableau croisé dynamique serait super facile mais idem trop de
données.
- je ne peux pas faire une macro "bourrin" style juste copier coller
parce que il peut tres bien y avoir non correspondance de dates
(week-ends, etc) entre les deux onglets, etc
-Je n'ai pas envie de devoir refaire ou remettre a jour la macro si
j'echange deux colonnes de place etc, surtout que je pense que c'est
vraiment pas compliqué d'y arriver, mais il me manque quelques
connaissances VBA pour l'instant.

Mes idees pour l'instant:
-Comme il y a differents codes je pensais commencer par generer une
"clef" unique, c'est a dire concatener dans mon fichier "source" dans
la colonne A l'info suivante: Date+Code ISIC.
-Apres je pensais faire deux boucles imbriquées, la premiere fait
defiler les colonnes, a chaque changement de colonne elle memorise le
code ISIC correspondant, puis une boucle pour les dates et elle peut
donc recreer la clef date+code_ISIC. Apres elle doit trouver cette
clef et me ramener la valeur, un peu comme un recherchev.
-Au debut je pensais faire ecrire un recherchev a la macro et faire un
collage valeur par dessus mais j'ai eu l'impression qu'en passant par
la methode Find je pourrais y arriver mieux et plus rapidmeent. jusque
là sans succes...


Voila j'espere que je me suis bien expliqué, je serai heureux d'avoir
de nos nouvelles sur:
- si la façon de faire vous parait la bonne voie
- si vous avez des suggestions de macros que je puisse adapter pour y
arriver.

Merci beaucoup!!

UC