Bonjour à tous!
Je travaille sur un fichier de contrôle de gestion sur lequel j'ai créé une macro qui permet d'alimenter plusieurs feuilles à partir d'autres feuilles.
Plus précisément, toujours dans le même classeur :
- j'ai une dizaine de feuilles contenant chacune le même tableau de synthèse : une feuille pour chaque produit (le tableau représente tous les détails de facturation, selon divers types de contrat...)
- à côté 5 ou 6 onglets, eux totalement différents les uns des autres : certains récupèrent les factures dans un tableau Excel via une requête SAP, d'autres sont des tableaux créés par l'utilisateur...
Ma macro, suivant plusieurs critères et pour chaque tableau de synthèse, récupère les données de plusieurs colonnes (quantité et montant) et va l'alimenter dans chaque cellule de chaque tableau de synthèse.
Pour l'instant, elle est gérée dans un onglet "MAJ_données" contenant 2 tableaux :
- l'un, de 2 colonnes et d'une dizaine de ligne, contient les produits et leur code, pour que la macro sache dans quel tableau de synthèse elle place les données pour tel ou tel produit
- l'autre, plus gros, contient une ligne par catégorie alimentée, et en face, précise : le ou les onglet(s) où elle va chercher les données, quels "mots-clés" elle doit trouver dans chaque ligne de cet ou ces onglet(s) pour récupérer la quantité ou le montant, dans quelle(s) colonne(s) se trouve la ou les quantité(s) ou montant(s) à récupérer...
Chaque catégorie a une procédure différente des autres pour être alimentée.
Du coup, dans le tableau ci-dessus, j'ai très peu d'éléments et le reste se trouve dans la macro, donc s'il y un problème ou une modif à faire (je suis en cdd et ce fichier peut évoluer régulièrement), les personnes doivent accéder au code, ce que je souhaite éviter.
J'ai donc créé un formulaire qui demande à l'utilisateur d'insérer pour chaque catégorie toutes les infos dont la macro a besoin pour que le code de celle-ci soit généraliste et toujours adapté au fichier même s'il évolue. Le souci est que dans ce cas, le formulaire présente toutes les infos dans le tableau "MAJ_données". Donc :
- d'une part n'est pas très lisible, et si jamais j'ai plusieurs onglets de données avec pour chacun une grande quantité d'infos, le tableau se retrouve avec 10 ou 15 colonnes par onglets
- d'autre part, si j'ai des infos que je concatène dans une cellule pour la lisibilité du lecteur, cela me donne plus de difficulté pour récupérer ces infos grâce à la macro...
J'ai donc pensé qu'un tableau à 3 dimensions : catégories, infos de chaque catégorie et onglets de données (avec en 3eme dimension "catégories" puisque c'est elle qui sera redim à chaque ajout de données) serait plus efficace. Je pensais que d'un côté, il servirait à ma macro pour alimenter les données, et indépendamment il créerait un tableau dans Excel avec les données utiles à l'utilisateur et une meilleure lisibilité.
Le problème c'est que mon tableau ne peut pas garder les données en mémoire à la fermeture de Excel.
Comment réussir à faire gérer de manière simple ma macro par l'utilisateur lui-même, sans qu'il est besoin à chaque évolution du fichier d'aller dans le code, et que la macro puisse récupérer simplement toutes ces infos?
Le fichier est déjà très lourd car contient des formules, des liaisons avec d'autres classeurs...
Si quelqu'un a une idée de comment il s'y prendrait pour gérer tout cela, merci d'avance!!






Répondre avec citation






Partager