Transformation en VBA

  • Initiateur de la discussion Initiateur de la discussion Spinzi
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Spinzi

XLDnaute Impliqué
Bonjour à tous,

le but de ma requête est de transformer une lourde formule Excel qui ralentit tout mon fichier, en un développement VBA qui, je l'espère (enfin c'est le but), sera plus rapide.

Ma formule n'est en fait qu'un tri multi critères (sur la base du Département, nom de centre de cout et responsable) dnas une base.
Je souhaite avoir dans la colonne "Ordre" tous les ordres qui repondent à ces critères.

Est déjà présente une macro pour alimenter les listes de validation en cascade et dans tous les sens (montants et descendants)

Vous trouverez dans le fichier ci joint, un peu en pagaille, désolé, mes attentes et la précédente formule qui était dans la colonne ordre en E3

Merci d'avance

ps : je suis complètement nul en VBA, alors il y a peut être d'autres choses à optimiser en VBA, mais pour l'instant je pense que ce developpement va largement accélérer le temps de traitement de mon fichier (de mon vrai fichier, avec 3000 lignes, pas l'exemple avec 10 lignes ^^)
 

Pièces jointes

Re : Transformation en VBA

Bonjour,

si cela peut vous aider, voila le fichier tel qu'il fonctionne actuellement
En plus du renvoie suivant les critères, il y a un recherchev pour remonter le réel 2011 (formule s'adapte suivant ce qui est rentré en entête).

Bien à vous
 

Pièces jointes

Re : Transformation en VBA

Bonjour Spinzi,

Je ne sais pas jusqu'où, je pourrais te venir en aide car vois-tu moi aussi je sollicite de temps à autres de l'aide.

Je dois te dire que j'ai jeté un coup d'oeil à ton fichier et c'est un véritable fourtout.

Tu as créé des plages nommées dont certaines font références à un autre classeur.

Bon sur le fichier joint, j'ai viré tout ce qu'il y avait et j'ai mis une validation pour les cellules B1,C1 et D1 faisant référence respectivement au colonnes A,B et C de la feuille "Base en cours".

Pourrais-tu mettre tes formules dans tes cellules, car je n'ai pas compris grand chose.

Dis-moi pour la validation si c'est ça que tu veux?

Cordialement,
 

Pièces jointes

Re : Transformation en VBA

Bonjour Cathodique !

merci de têtre penché sur mon problème ... =)

Alors je commence par où :
ton fichier et c'est un véritable fourtout.
Oui, désolé ce sont les aléas des copier coller onglet ... mais à la base il est propre, je te rassure.

Pourrais-tu mettre tes formules dans tes cellules
C'est à dire ? Tu parles de mes formules pour ce que j'attends ?
En fait j'ai créé des plages nommées sinon j'ai trop d'imbrication dans ma formule ... j'ai donc du un peu tricher.
Pour faire simple, les "Formule 1", "Formule 2" etc. gèrent le fait que totues les listes de validations soient remplis ou non.
Ex : Si B1 est rempli et le reste vide, alors dans ma base je trie les données suivant seulement la variable département.
Si B1 et C1 sont remplis, je trie les données suivant les variables département et nom de centre de cout.
et ainsi de suite pour les différentes combinaisons possibles.

Dis-moi pour la validation si c'est ça que tu veux?
Oui c'est bien ça que je souhaite !


Merci
 
Re : Transformation en VBA

Re,

J'ai consulté ton 2ème fichier, sur lequel il n'y a plus de validation (sur feuille "budget" en B1, C1 et D1).

Je t'avoue que je n'ai pas compris tes attentes. Est-ce que tu veux trier ou filtrer et sur quelle feuille?

Si tu n'as pas eu beaucoup de participation, c'est parce qu'on arrive pas à bien comprendre ce que tu veux vraiment.

ça m'est arrivé plusieurs fois. Essaie l'enregistreur de macro, bien souvent je l'utilise et me sort d'affaire.

J'espère qu'un Barbatruc te viennes rapidement en aide.

Cordialement,
 
Re : Transformation en VBA

Re,

mon 2ème fichier est un fichier qui fonctionne : en choisissant des données dans les listes de validations, les résultats aparaissent en conséquence.

Cependant, si on se penche sur ma grosse formule, c'est bien comme si j'appliquais des filtres sur mes colonnes ...
Sauf que ma formule pompe bcp trop de ressources et que je souhaite obtenir une macro optimisée, ce que ne permet ni l'enregistreur de macro, ni mes compétences ... :s

Cependant j'ai effectivement essayé l'enregistreur de macro mais impossible à adapter à mon fichier suivant les liste de validation.
 
Re : Transformation en VBA

j'ai remarqué la lenteur de ton fichier qui est dû au recalcul automatique, essaie option calcul manuel.

Pour le tri voici une piste
Code:
Range("A3:L202").Sort key1:=Range("G3"), order1:=xlAscending
à adapter selon tes besoins.

Même moi je ne suis pas très à l'aise en VBA, sinon je t'aurai fait un code avec plaisir.

Cordialement,
 
Re : Transformation en VBA

Dis-moi s'il te plait, sur quelle feuille se trouvent tes cellules de validation.

tu as 3 feuilles: "Base en cours"; "Budget" et "Synthèse budget"

Et sur quelle feuille tu veux appliquer les filtres. Au fait pourquoi tu veux filtrer?
Je fais de mon mieux pour essayer de comprendre tes attentes. J'ai compris que la feuille "base en cours" contient toutes tes données et si je devine bien, tu récupères sur les feuilles "budget" et "synthèse budget" les données correspondantes à partir de base en cours.
 
Re : Transformation en VBA

Bonjour cathodique,

Base en cours : base de données
Budget : requete sur la base de données
Synthese budget : synthse de l'onglet budget mais il n'est pas important ici

Pour les liaisons :
Les listes de validations (onglet budget cellules B1 C1 D1) reposent sur les données en onglet Base en cours colonnes A B et C. Ce sont des listes en cascades (liées).

but du fichier :
recenser tous les codes budgétaires (projets) en fonction du nom du département, du nom du centre de cout ou du responsable (soit l'un, soit l'autre, soit tous en meme temps, soit que le reponsable [cf combinaisons dans ma formule compliquée]).

J'espère être plus clair cette fois ci =) Et si je ne le suis toujours pas n'hesite pas à me redemander car si ça n'est pas clair pour toi, ça ne l'est pas non plus pour d'autres personnes.

ps : je regarde pour ton bout de code voir où je peux le mettre
 
Re : Transformation en VBA

Bonsoir,

Si j'ai bien compris voici une approche. Je te préviens ce n'est pas le top du codage, je ne suis qu'un apprenti. Il y a beaucoup mieux.

Je t'ai fait ce code avec mes maigres connaissances et me basant sur ce que j'ai fait avec l'aide du forum.

Tu peux essayer de te faire aider sur le forum, pour avoir un code plus simple et plus efficace.

Car moi j'ai utilisé 3 macros pratiquement identiques qui sont appelées par rapport aux cellules B1, C1 et D1.

Regarde si ça te conviens.

Cordialement,
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
175
Réponses
2
Affichages
400
Retour