Automatiser un tableau sous excel grâce à une macro [Résolu/Fermé]

Signaler
Messages postés
88
Date d'inscription
mercredi 19 décembre 2012
Statut
Membre
Dernière intervention
7 octobre 2013
-
Messages postés
9887
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 février 2021
-
Bonjour à tous,

je suis vraiment débutante en macro et j'aimerais s'il vous plaît que vous m'aidiez.

J'aimerais à partir des différentes feuilles "rubis", "tulipe", "hortensia", "lilas", "orchidée", "hibiscus","iris" , "marguerite", "mimosa", "tournesol", "baobab", "ravioli", "riz", "grenadine" (voir le fichier ci joint https://www.cjoint.com/?0BkwGLRQeuE ) , créer une macro me permettant d'avoir comme résultat le tableau présent sur la feuille" base de travail" du fichier ci-joint.

Le résultat que j'aimerais obtenir est le suivant:

1) à chaque fois que je rajoute de nouvelles feuilles tout en renseignant les colonnes "Code ISIN", "Libellé", "Acquisition","DEV","Valo Bours dev","Val Bours. €", "+/- value YTD" "dont Perf YTD " (présentes à la fois sur les feuilles que j'aurai rajouter et sur la feuille "base de travail" ), que ma macro me permettent d'actualiser, automatiquement la feuille "base de travail" tout en renseignant uniquement les colonnes énoncées ci-dessus.

2) grâce à la macro que j'aurai créer, que la colonne "entité" de la feuille "base de travail" de mon fichier ci-joint soit renseignée automatiquement par les noms des différentes feuilles.
Par exemple on retrouve dans la colonne "entité", "rubis" le nom de l'une des feuilles.

Comment faire s'il vous plait? Merci d'avance pour votre réponse.

Mes salutations.

jacinthelafleur

31 réponses

Messages postés
9887
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 février 2021
1 129
Bonjour,
La mise à jour de la feuille [Base de travail] par clic sur bouton [Lancer l'extraction ...!].
Le tableau croisée dynamique se m'est à jour automatiquement (sans macro) selon les données de la feuille [Base de travail] dont le tableau est nommée [dataTCD] de manière dynamique (la plage s'adapte au nombre de lignes).

Le classeur (voir note feuille [Base de travail]) : https://www.cjoint.com/?3DvxboFerQ1

Note : vos feuilles ayant des valeurs manquantes il n'y a de ce fait pas des erreurs de valeur pour le TCD.

3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
88
Date d'inscription
mercredi 19 décembre 2012
Statut
Membre
Dernière intervention
7 octobre 2013
1
Merci beaucoup pour votre aide très précieuse! Je l'adopterai avec mon fichier. Juste une dernière question comment faire pour juste faire apparaître uniquement la date à laquelle j'actualise mon fichier et non l'heure svp?
Encore merci beaucoup
Bien cordialement
Jacinthelafleur
Messages postés
9887
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 février 2021
1 129
Bonjour,
A première vue il faut créer une macro qui se déclenche sur ouverture et/ou fermeture du classeur avec une boucle sur les feuilles du classeur et y récupérer les informations voulues sur chacune d'elles que vous placer dans votre ["base de travail"].

Messages postés
88
Date d'inscription
mercredi 19 décembre 2012
Statut
Membre
Dernière intervention
7 octobre 2013
1
Bonsoir,
oui c'est bien cela.
Merci d'avance pour votre réponse.

Mes salutations.
jacinthelafleur
Messages postés
9887
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 février 2021
1 129
Bonjour,
Eh bien là je vous ai donné le principe, la suite c'est pour vous selon ce que vous avez précisé : grâce à la macro que j'aurai créer.

Messages postés
88
Date d'inscription
mercredi 19 décembre 2012
Statut
Membre
Dernière intervention
7 octobre 2013
1
Bonsoir,
je vous mettrai demain la macro que j'aurai créer, et à ce moment là si elle ne tourne pas bien ou s'il y a des modification à faire pouvez vous s'il vous plait me dire ce qui ne va pas et quelles sont les modifications que je dois faire.
Merci d'avance pour votre réponse.
Jacinthelafleur
Messages postés
9887
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 février 2021
1 129
Bonjour,
Dans ce sens c'est OK je vous aiderez.
Messages postés
9887
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 février 2021
1 129
Bonjour,
Petite question, en parcourant votre fichier j'ai constaté que la feuille ["base de travail"] reprends toutes les valeurs des autres feuilles, c'est bizarre d'où que voulez-vous faire exactement avec les données de cette feuille ?
En plus il y a plus de colonne que celle mentionné (40 contre 8) dans votre message .... !

Messages postés
88
Date d'inscription
mercredi 19 décembre 2012
Statut
Membre
Dernière intervention
7 octobre 2013
1
Bonjour,
Je suis désolé c'est vrai que mes explications peuvent être confuses. Je vais essayer d'être plus claire.

En fait la feuille "Base de travail" présente l'objectif final que je voudrais obtenir une fois que la macro est créée. Il faut donc supposer que la feuille" Base de travail" est uniquement un tableau avec 8 colonnes citées ci-dessus et non renseigné par les données des différentes feuilles.

1) J'aimerais qu'à chaque fois que je rajoute de nouvelles feuilles dans mon fichier, en sélectionnant sur chacune des nouvelles feuilles que (j'ajouterai au fur à mesure) uniquement les données des 8 colonnes, dont j'ai besoin (sur les 40) et qui sont (les 8 colonnes) présentent aussi sur la feuille "Base de travail", que la macro me permette automatiquement d'actualiser la feuille "base de travail" tout en renseignant les 8 colonnes grâce aux données des 8 colonnes des différentes feuilles rajoutées au fur et à mesure.

2) grâce à la macro que j'aurai créer, que la colonne "entité" de la feuille "base de travail" de mon fichier ci-joint soit renseignée automatiquement par les noms des différentes feuilles.
Par exemple on retrouve dans la colonne "entité", "rubis" le nom de l'une des feuilles.

3) si je fais une erreur et que je modifie par exemple les données renseignées sur les 8 colonnes des différentes feuilles rajoutées au fur à mesure, que macro tienne compte de cela lorsqu'elle actualise la feuille "Base de travail" tout en renseignant uniquement les 8 colonnes.

J'espère que j'ai été claire, en attendant que je vous envoie ma ma macro, je vous remercie de votre réponse.
Jacinthelafleur
Messages postés
9887
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 février 2021
1 129
Bonjour,
Merci pour l'information.
En supposant que les données sont entrées directement dans chaque feuille respective.
J'aimerais seulement savoir à quoi vous sert la feuille "Base de travail" .... !
Messages postés
88
Date d'inscription
mercredi 19 décembre 2012
Statut
Membre
Dernière intervention
7 octobre 2013
1
Bonjour,
merci pour votre réponse.
" En supposant que les données sont entrées directement dans chaque feuille respective" => c'est bien cela.

Avant création de la macro le fichier "Base de travail", serait uniquement un tableau avec 8 colonnes citées ci-dessus et non renseigné par les données des différentes feuilles.
Une fois la macro créee la feuille " Base de travail" serait la feuille "Base de travail" présente sur le fichier ci-joint.

La feuille "base de travail" présent sur mon fichier sert donc d'exemple pour montrer le résultat final que je souhaiterai obtenir une fois que la macro tourne et marche et autant de fois que je rajoute de nouvelles feuilles.

J'espère que j'ai été claire.

Mes salutations.
Jacinthelafleur
Messages postés
9887
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 février 2021
1 129
Bonjour,
Merci, j'attends votre macro pour la suite ... !

Messages postés
88
Date d'inscription
mercredi 19 décembre 2012
Statut
Membre
Dernière intervention
7 octobre 2013
1
Bonsoir!
désolé pour ce long silence, j'ai eu un petit soucis de santé.
J'essayerai de vous faire parvenir le fichier avec la macro ce soir ou maximum demain que j'aurai créée afin que vous puissiez m'aider.

Merci d'avance pour votre réponse.
Bien cordialement.

Jacinthelafleur
Messages postés
88
Date d'inscription
mercredi 19 décembre 2012
Statut
Membre
Dernière intervention
7 octobre 2013
1
Bonsoir,
je vous envoie mon fichier sur le lien suivant : https://www.cjoint.com/?0CfwmMx710u

- Je me suis servi de l'enregistrement des macros car je n'arrive pas à faire une" macro qui se déclenche sur ouverture et/ou fermeture du classeur avec une boucle sur les feuilles du classeur et y récupérer les informations voulues sur chacune d'elles que vous placer dans votre ["base de travail"]"
.

- Sur le fichier ci-joint , pour ne pas faire de nombreuses macros, j'ai restreins le nombre de feuilles à 5. Les différentes macros 1,2,3,4,5,6 devront être tournées dans cet ordre afin d'atteindre le résultat final présent sur la feuille " base de travail".
Les macros 1,2,3,4,5,6 me permettent de remplir la "feuille base de travail".

Cependant 1) j'aimerais avoir une macro simplifiée me permettant qu'à chaque fois que je rajoute de nouvelles feuilles sur mon fichier, que la macro sélectionne automatiquement les données présentes sur les colonnes suivantes des différentes feuilles ( "<gras>Code ISIN", "Libellé", "Acquisition","DEV","Valo Bours dev","Val Bours. €", "+/- value YTD" "dont Perf YTD " ), pour compléter et renseigner ces mêmes colonnes présentes aussi sur la feuille "base de travail

2) grâce à la macro que j'aurai créer, que la colonne "entité" de la feuille "base de travail" de mon fichier ci-joint soit renseignée automatiquement par les noms des différentes feuilles.
Par exemple on retrouve dans la colonne "entité", "jacinthe" le nom de l'une des feuilles.

- Le résultat que j'aimerais obtenir est toujours ceux énoncés ci-dessus (notamment mon commentaire du poste 6).

Merci d'avance pour votre réponse et votre aide.
Bien cordialement
jacinthelafleur
Messages postés
9887
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 février 2021
1 129
Bonjour,
Merci pour le fichier.
Votre macro1 ne copie pas les mêmes colonnes que les 5 autres....
Qu'est ce qui est correct .... ?
Messages postés
88
Date d'inscription
mercredi 19 décembre 2012
Statut
Membre
Dernière intervention
7 octobre 2013
1
Bonjour,
Votre macro1 ne copie pas les mêmes colonnes que les 5 autres....
Oui c'est normal car sur la feuille "jacinthe", parmis les colonnes "qui m'interessent" uniquement les colonnes :
- entité ( dans mon exemple c'est "jacinthe" vu que dans la colonne entité doit apparaitre les noms des différentes feuilles du classeur)
- code isin
- Libellé
- Acquisition
- Dev
- Valo Bours Dev
- Valo Bours euros
- +/- value YTD
- dont perf YTD
sont renseignées.
Tandis que sur les 5 autres feuilles en plus de celles énoncées ci-dessus, toutes les colonnes:
- Garanti
- Classe Mktg
-Classe AMF
- Périodicité VL
- IFRS
- PF
- type Seed
qui m'intéresse sont renseignées.

- 1) Au final j'aimerais que ma macro puisse sélectionner automatiquement sur chacune des feuilles et à chaque fois que j'en rajoute ds le classeur , uniquement les colonnes qui "m'interesse". A titre d'exemple la macro 1 sélectionne uniquement les colonnes qui m'interesse et qui sont renseignées sur la feuille "jacinthe"
- 2) Sur la feuille "Base de travail", j'aimerais aussi que ma macro me permette aussi d'actualiser la date "31/12/2012".
Par exemple si je fais tourner la macro le 31/03/13 j'aimerais qu'apparaisse la date 31/12/13 au lieu du 31/12/13, ou si je fais tourner la macro à fin avril au lieu du 31/03/13, j'aimerais qu'apparaissent la date du 30/04/2013. Est-ce possible ce genre de macro?
Je comprendrai parfaitement si vous ne pouvez pas m'aider sur ce point.
Je ne sais pas si j'ai été assez claire dans mes explications, n'hesitez pas à me faire un retour pour des informations complémentaires.

Merci beaucoup pour votre aide.

Bien cordialement
jacinthelafleur
Messages postés
9887
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 février 2021
1 129
Bonjour,
Merci pour l'information.
J'ai déjà réalisé la majorité du travail et là, suite à vos informations je m'arrête pour l'instant.
Alors pour la feuille [jacinthe] vous recopier que 8 colonnes et pour le 5 autres les 8 plus 7 nouvelles colonnes ... Dans ce cas que faire avec les feuilles suivantes, combien de colonnes en plus ... ?
Je vous propose de créer un tableau qui mentionne pour chacune des feuilles les colonnes à copier.
En plus vous faite le nécessaire pour que chaque feuille est le même format :
Ligne 3 pour des titres...
Ligne 4 pour la première donnée
Colonne [A] est « Code ISIN »

Messages postés
9887
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 février 2021
1 129
Bonjour,
Ma proposition dans l'état avant votre dernier message : https://www.cjoint.com/?3Chxph3TWQp
Note la mise en forme n'est réalisée pour l'instant.

Messages postés
88
Date d'inscription
mercredi 19 décembre 2012
Statut
Membre
Dernière intervention
7 octobre 2013
1
Bonjour,
merci beaucoup pour votre aide.
Je tiendrai compte de vos remarques (messages 16 et 17) pour faire les modifications necessaires sur mon fichier et à ce moment là je reviendrai vers vous.

Bien cordialement
jacinthelafleur
Messages postés
88
Date d'inscription
mercredi 19 décembre 2012
Statut
Membre
Dernière intervention
7 octobre 2013
1
Bonjour,

1) j'ai tenu compte de vos remarques messages 16 et 17 en ce qui concerne le format des feuilles voici le lien : https://www.cjoint.com/?0CvtFQAo6js

Les feuilles une à 15 sont au même format(sauf les feuilles lundi" à "vendredi").

2) Pour les feuilles" lundi" à "vendredi", je suis obligée de les conserver dans mon fichier car elles me permettent de faire des calculs intermédiaires nécessaire aux calculs des données présentes sur les feuilles "une" à "quinze".

3) Est- il possible s'il vous plait de créer une macro qui sélectionne uniquement les données des colonnes des feuilles "une" à "quinze" pour compléter la feuille base de travail. La macro ne tiendrai compte que des feuilles "une" à "quinze" et ignorerait les feuilles "lundi à vendredi".

4) Pour chacune des feuilles( feuilles une à quinze), les colonnes à copier sont : "Entité"=> correspond aux noms des différentes feuilles, "Code Isin","Libellé","Acquisition", "Garanti","Classe Mkt","Classe AMF","Périodicité VL","IFRS","PF", "Type Seed","Dev","Valo Bours.dev","Valo Bours.€","+/- Value YTD", "dont Perf YTD".


5)- Cependant j'ai supprimé de mon fichier original plusieurs feuilles autres que les feuilles "une" à "quinze" et "lundi" à "vendredi" et dont les formats sont différents(car je ne peux pas les modifier). Ma question est peut-on SVP faire une macro spécifique à chacune de ces feuilles me permettant de sélectionner uniquement les colonnes renseignées (car toutes ne le sont pas) et identiques à celles de la feuille "base de travail" qui me permettent de compléter par des données les colonnes de la feuille base de travail?

Si oui à ce moment là, je vous fournirai un tableau qui mentionne pour chacune de ces feuilles les colonnes à copier.



- Pour le moment ne pas tenir compte du points 5. Merci pour votre aide et n'hésitez pas à me demander des informations complémentaires si je n'ai pas été claire.

Bien cordialement.
Jacinthelafleur
Messages postés
9887
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 février 2021
1 129
Bonjour,
Eh bien c'est très intéressant ces changement en court de route. Je pense que je vais attendre que vous soyez sur de ce que vous voulez réellement.
Vous me le faites savoir clairement et je me pencherais sur cette affaire.

Messages postés
88
Date d'inscription
mercredi 19 décembre 2012
Statut
Membre
Dernière intervention
7 octobre 2013
1
bonjour à vous,
Merci beaucoup pour m'avoir répondu.
J'ai tenu compte de vos remarques et j'ai effectué des modifications sur mon fichier.
Veuillez trouver ci-joint le lien sur lequel se trouve mon fichier : https://www.cjoint.com/?0Dvpi1tgTvy

- J'ai mis les documents « tulipe », « hortensia », « orchidée », « coquelicot », « marguerite », « mangue », « nougatine », « girafe », « chaise », « collier », « banane », « espadrille », « pantalon », « raquette », « goyave », « basket », « chaussette », « orange », « Evian », « papaye », au même format.

- Les feuilles « un », « girafe bis », « deux », « rien », « rien 2 », « rien 3 », « trois », « quatre », « cinq », « six », « sept » (et TCD macro pour une autre raison) seront sur mon fichier final car elles me permettent de faire des calculs intermédiaires nécessaires aux autres feuilles (tulipe, hortensia, orchidée, coquelicot, marguerite, mangue, nougatine, girafe, chaise, collier, banane, espadrille, pantalon, raquette, goyave, basket, chaussette, orange, Evian, papaye) avant que celles-ci puissent alimenter la feuille « Base de travail ».

- La feuille « Base de travail », telle qu'elle est, est à titre d'exemple, elle représente le résultat final que j'aimerais obtenir une fois la macro créée.

1) J'aimerais créer une première macro qui permet à chaque fois qu'on rajoute de nouvelles feuilles (de même format comme celles en rose, vert foncé (feuille « girafe ») et jaune), sauf celles nécessaires aux calculs intermédiaires, de sélectionner automatiquement sur chacune des nouvelles feuilles rajoutées, les données des colonnes suivantes : - Entité, Code ISIN, libellé, Acquisition, Garanti, Classe MKTG, Classe AMF, IFRS, PF, Type Seed, Dev, Valo Bours.dev, Val Bours. €, +/- value YTD, dont Perf YTD de telle sorte que la feuille « Base de travail » soit renseignée ( voir l'exemple feuille « Base de travail »). A chaque fois que je modifie les données des différentes colonnes présentes sur mes feuilles (jaunes, roses et vertes foncées), j'aimerais que la macro tienne compte de ces modifications et actualise automatiquement les données présentes sur les mêmes colonnes de la feuille « Base de travail ».

2) A chaque fois que je fais tourner ma première macro à une date t, j'aimerais que celle-ci permette d'actualiser sur la feuille « Base de travail » à la date t. A titre d'exemple si je fais tourner ma macro le 17/04/2013, j'aimerais que sur ma feuille « Base de travail » au lieu de « au 31/03/2013 », apparaissent « au 17/04/2013 ».

3) Une fois que la première macro permet de renseigner automatiquement la feuille «Base de travail » à partir des feuilles roses, jaunes et vertes foncées, j'aimerai créer une seconde macro me permettant d'automatiser le TCD crée à partir de la feuille « Base de travail » (voir la feuille TCD macro et l'extrait de Macrotcd).

j'ai essayé d'être claire dans mes explications mais je sais que parfois j'ai du mal à m'exprimer donc n'hésitez pas à me dire si vous voulez des informations complémentaires et éventuellement je peux vous envoyer par messagerie privé une capture du fichier réelle (sans données fictives si je n'ai pas été claire).

Merci d'avance pour votre aide.
Bien cordialement
Jacinthelafleur
Messages postés
9887
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 février 2021
1 129
Bonjour,
J'ai survolé votre dossier, je pense sérieusement qu'il faut revoir la notation des feuilles, car cela devient ingérable pour avoir qu'elle feuille alimentera la feuille [Base de travail] .... !
On pourrait croire que c'est le marché des halles.... !

Messages postés
88
Date d'inscription
mercredi 19 décembre 2012
Statut
Membre
Dernière intervention
7 octobre 2013
1
Bonjour,
Je tiendrai compte de votre remarque en ce qui concerne le nom des feuilles et je vous posterai le fichier modifié dès ce soir.
Bien cordialement
Jacinthelafleur
Messages postés
9887
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 février 2021
1 129
Bonjour,
Non n'en faites rien, je vais le modifier et vous en prendrez note.
Messages postés
9887
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 février 2021
1 129
Bonjour,
Si la date et l'heure ne vous convient pas, dans la procédure [Sub extraitglobal()],
après [Next sh] modifier comme suit :
Range("miajo") = Date


Messages postés
88
Date d'inscription
mercredi 19 décembre 2012
Statut
Membre
Dernière intervention
7 octobre 2013
1
re bonjour,
en lançant l'extraction, je me suis rendue compte qu'il y'avait un souci de décalage.

Exemple: prenant la feuille "tulipe", Périodicité VL correspond à VL non quotidienne tandis que dans la feuille "Base de travail", pour "tulipe", Périodicité VL correspond à trimestriel. Ce qui est différent et faux et au final décale tout. Sur la feuille "Base de travail", pour "tulipe", Périodicité VL devrait donc correspondre à VL non quotidienne.Sur toutes les feuilles il y a donc un souci de décalages.

En relisant mon poste suivant :
"....sur chacune des nouvelles feuilles rajoutées, les données des colonnes suivantes : - Entité, Code ISIN, libellé, Acquisition, Garanti, Classe MKTG, Classe AMF, IFRS, PF, Type Seed, Dev, Valo Bours.dev, Val Bours. €, +/- value YTD, dont Perf YTD de telle sorte que la feuille « Base de travail » soit renseignée ( voir l'exemple feuille « Base de travail »)....." je me suis aussi rendue compte que j'avais omis de mentionner que les données de la colonne "Périodicité VL" présent sur les feuilles de mêmes formats et se trouvant entre les colonnes Classe AMF et IFRS devraient aussi permettre de renseigner la feuille "Base de travail".

Par conséquent à chaque fois qu'on rajoutes des feuilles de même format (feuilles roses, jaunes et vertes foncées), la macro doit permettre de sélectionner les données des colonnes A,B,C, D ,E,F,G,I, J, K, L, M, AC, AD, AH, AI de ces feuilles de telle sorte que la feuille "Base de travail" soit renseignée.

- Lorsque je fais tourner la procédure [Sub extraitglobal()] sur mon fichier réel (sans données fictives) tout en prenant soin, pour les feuilles qui ne sont pas utilisées pour la [Base de travail], de mettre en fin le nom la référence : [ _CI], un message d'erreur apparaît : "la méthode range de l'objet global a échoué", je fais débogage et la ligne suivante : " Range("miajo") = Date" apparaît en jaune. Je ne trouve pas mon erreur.

Merci d'avance pour votre aide et n'hésitez pas à me dire si mes explications ne sont pas claires.

Bien cordialement
Jacinthelafleur
Messages postés
9887
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
26 février 2021
1 129
Bonjour,
Pour ceci : la ligne suivante : " Range("miajo") = Date" apparaît en jaune.
J'ai oublié de mentionner que j'ai nommé [miajo] la cellule [M1] de la feuille [Base de travail], merci de le faire sur votre classeur de travail.
Concernant le décalage je vais regarder quelle est la correction à faire.