Excel - Manipulations de tables en cascade

Résolu
cs_Groov Messages postés 2 Date d'inscription jeudi 5 février 2004 Statut Membre Dernière intervention 28 août 2006 - 26 août 2006 à 09:29
cs_Groov Messages postés 2 Date d'inscription jeudi 5 février 2004 Statut Membre Dernière intervention 28 août 2006 - 28 août 2006 à 09:09
Bonjour,

Je dois faire un truc "très simple"... : Je dois générer une liste à partir d'un fichier principal et de deux feuilles de "paramétres" (EXCEL)

J'ai 3 feuilles (donc deux tableaux)
- 1ère : tableau à 2 colonnes (dont "Nom adhérent" et "Date de naissance") et x lignes
- 2ème : tableau à 5 colonnes  (dont "Nom adhérent", "2006"; "2005" ; "2004"; "2003")
- 3ème : tableau à 2 colonnes  (dont "Année d'adhésion", "Montant quotisation")
- 4ème fichier d'exportation des données consolidées ("Nom adhérent" et "Date de naissance" "Année d'adhésion"; "Cotisation versée") l'idée est donc de générer autant de lignes contenant le nom de chaque adhérent par année de quotisation en important les sommes versées.

Exemple :
Fichier 1 :  Nom     Date de naissance (fichier d'entré)
                TOTO      12/04/1956
                TITI        25/06/1972

Fichier 2 :   Nom     Année 1    Année 2      Année 3      Année 4 (fichier source 1)
                TOTO    2003          2004          2005          2006
                TITI     2004           2005         

Fichier 3 :   Année     Montant cotisation (fichier source 2)
                2001       12?
                2002       14?
                2003       15?
                2004       16?
                2005       16?
                2006       19?

Fichier 4 :  Nom     Année   Cotisation versée (fichier destination)
                TOTO    2003   15?
                TOTO    2004   16?
                TOTO    2005   16?
                TOTO    2006   19?
                TITI      2004   16?
                TITI      2004   16?

Je sais faire celà avec un algo basique qui
- Feuille 1 : pointe sur la première ligne "Nom" (ici TOTO) (boucle A)
- Feuille 2 : va chercher la valeur "Nom" (ici TOTO)
- Feuille 2 : lit la valeur de la "1ère année de cootisation" attachée au nom en question (ici 2003) (Boucle B)
- Feuille 3 : va chercher la valeur "1ère année de cootisation" (ici 2003)
- Feuille 3 : lit la valeur du montant de la cotisation correspondante (ici 15?)
- Feuille 4 exporte toutes les données sur une ligne

>Fini la boucle B
>Fini la boucle A

Bref... basique mais efficace...
Existe-t-il une manière plus sioux de faire ça ?
Merci d'avance pour vos lumières !!!

;)

2 réponses

jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
28 août 2006 à 09:01
Salut,


Déja ce que tu peux faire c'est avec une boucle (faite avant tout le traitement), Remplir un objet de Type collection Ce qui te permettra d'indexer le montant des cotisations en fonction de l'année (ObjCol.Add(Montant, "Année"))

De cette facon plus besoin d'aller une seul fois chercher les montant de coteisation sur la feuille 3 puis que tu les auras directement avec Montant = ObjCol.Item("2003") par exemple.

Voila
@+, Julien
3
cs_Groov Messages postés 2 Date d'inscription jeudi 5 février 2004 Statut Membre Dernière intervention 28 août 2006
28 août 2006 à 09:09
Bonjour !



Merci pour cette réponse.



Effectivement c'est une bonne idée, je vais regarder cela de plus près !



Sinon, après discussion avec un pro en bdd, ce que je veux faire s'appel une "jointure".



Il semblerait que celà ne soit pas possible avec Excel mais super simple avec Access...



Je vais aussi explorer cette piste.



A bientôt,



;)
0
Rejoignez-nous