Calcul automatisé entre deux fichiers Excel
Bonjour,
Je viens vers vous car je suis dans l'urgence et ne peut pas prendre le temps malheureusement d'étudier en profondeur la question de mon côté avant de me tourner vers vous.
Pour de nombreux fichiers, il m'est demandé de convertir des lignes de valeurs de mètres NGF en mètres relatifs. J'imagine qu'il est possible d'aller chercher une valeur dans un autre fichier (fichier source), d'effectuer un calcul et de remplacer la donnée dans la colonne ligne par ligne.
J'ai en ma possession un fichier source, où sont renseignées plein d'informations sur les ouvrages mesurés. Parmi ces informations figure la cote de référence. D'un autre côté, j'ai un dossier où figurent une centaine de fichiers excel. Ces fichiers sont organisés comme dans l'exel "test" transmis en pièce jointe.
Le point commun entre cette centaine de fichier excel et le fichier source, c'est que chaque ouvrage est nommé par un indice BSS.
Pour chaque fichier excel (type "test"), le but est de recalculer les valeurs affichées dans la colonne valeur, grâce à une valeur présente dans le fichier source, pour chaque ouvrage donné.
J'imaginais un code, une automatisation, comme suit :
1) Renseigner l'indice de l'ouvrage du fichier excel test
2) Le code balaie le fichier source jusqu'à tomber sur ce même indice
3) une fois sur la sheet avec l'indice correspondant, aller chercher la valeur à côté de l'information "z_ref"
4) Retourner dans le fichier test, chercher la colonne "valeur", et récupérer les valeurs
5) effectuer le calcul "z_ref - valeur" dans le même ficher ou un nouveau qui aura été créé en étape 0)
Comme je vous l'ai écrit, j'avoue que ce que je cherche avant tout c'est à récupérer une méthodologie, une formule, etc, afin d'accélérer mon rendu. Je ne cherche pas à avoir tout qui tombe du ciel, mais un maximum de clefs (tutos, formules, méthodologie, raccourcis cmd, etc) afin de passer outre la partie recherche personnelle, n'ayant pas le temps.
Je vous remercie par avance, tout commentaire d'aide est appréciable.
Bonjour,
Si pour le fichier "test", ça semble assez clair (10 colonnes sur un certain nombre de lignes), mais question - 1 seul onglet par fichier?
Pour le fichier source, comment sont insérées les données par ouvrage?
- 4 colonnes par ouvrage (à priori)
- 14 lignes dont la dernière contient le code BSS sur les 2 colonnes adjacentes (j'ai bon?)
- Combien d'ouvrages dans ce fichier source?
- Tous les ouvrages sont dans les colonnes A à D, ou d'autres à droite? sur combien de colonnes?
Je pense qu'un autre fichier "source", plus renseigné, serait peut-être bienvenu...
@ te relire
Merci d'avoir pris le temps de répondre !
Oui, un seul onglet par fichier (format obligatoire pour permettre ensuite de déverser les données).
Le fichier source est rempli à la main pour chaque nouvel ouvrage. Il n'est modifié que lorsque les paramètres concernant les ouvrages changent.
- C'est ça
- Exactement
- environ 130-150 (mais moins de 100 sont concernés par la manœuvre)
- pour tous les ouvrages les informations sont notées comme cela, les seules informations supplémentaires sur chaque sheet du fichier source sont des graphiques et des coupes techniques, je ne pense pas que ces renseignements changent la démarche, mais je peux me tromper
Re-,
Ok, bien pris
Par contre, est-ce que tu as besoin de toutes les données des fichiers test, ou uniquement les dernières données temporelles? (si choix donnée temporelle, sur quelle période?)
Le fichier test doit rester dans ce format avec ces informations, j'avais imaginé une méthode qui remplacerait directement les données après calcul, pour ne pas modifier le format
Re-,
Non, je ne touche aucunement aux fichiers test, je fais juste une récap par fichier dans un fichier unique.
Ce fichier unique comprendra donc toutes les données de tous les fichiers test, avec une colonne indiquant la différence entre la z_Ref et la valeur.
Mais comme les données remontent sur plusieurs années, je voulais juste savoir si tu voulais toutes les valeurs, ou uniquement sur une période temporelle (d’aujourd’hui à il y a un an, par exemple)
C'est juste une méthode Power Query, donc sans VBA, et si tu veux toutes les données, ça va faire beaucoup de lignes (si tous les fichiers comportent déjà plus de 3000 lignes comme ton fichier test en pj...)
Re !
La demande concerne bien toutes les valeurs malheureusement...
J'avais entendu parler de la méthode mais pour un novice ça paraît complexe, je ne sais pas si c'est le cas
Re-,
Ok, voici un résultat (j'ai créé 2 fichiers "test", avec des codes BSS différents)
Pour faire des essais :
Enregistre mon fichier "PQ_source" dans le répertoire comprenant tous tes fichiers "test" (pas d'inquiétude, je ne les ouvre même pas, donc pas de risque)
Il faut juste que tes fichiers "test" n'aient pas le mot "source" dans leur nom de fichier, et qu'ils soient bien dans le même répertoire
Dans mon fichier PQ_source, dans l'onglet "source", tu colles toutes tes données de ton fichier-source à partir de la ligne 2 (conserve la ligne 1 afin de garder le Tableau Structuré "TS" nommé "T_Data")
Dans l'onglet "Param", vérifie bien que le bon répertoire est calculé dans la colonne A2 (sinon, tu revalides la formule)
Puis, dans l'onglet "T_Final", tu fais un clic droit dans une des cellules, et tu cliques sur "Actualiser"
Un peu d'attente, et tu devrais obtenir toutes les données dans cet onglet (donc plusieurs dizaine de milliers de lignes, à priori)
En colonne A, le nom du fichier "test", en colonne B, le code BSS et en colonne E la différence entre la z_référence et la valeur originelle...
Si tu veux intégrer ces différences dans chaque fichier test, il faudra soit le faire à la main, par des formules, soit par macro....
Bon courage
Merci beaucoup, ça fonctionne du feu de dieu. Plus qu'à bidouiller pour que le cas par cas fonctionne, merci beaucoup ça va me faciliter la vie (j'avais commencé à faire les calculs à la main ^^)