|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Étudiant Inscription : août 2011 Messages : 9 ![]() |
bonjour
Pourriez-vous m'aider SVP à ameliorer une procédure que je lance pour classer des "bonds" en fonction d'un Code? Pour cela j'utilise actuellement un Vlookup qui fait appel à une autre feuille du classeur dans laquelle se trouve un liste contenant une classification de ces "bonds". voila ma macro mais une fois apliquée le fichier devient trop lourd et est difficile à manipuler. Code :
|
||
|
|
00
|
|
|
#2 | |||
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 885 ![]() |
Bonjour,
une solution serait de faire un copier/coller valeur après calcul des vlookup Code :
__________________
Jérôme Citation:
nous encouragera.Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
|
|||
|
|
01
|
|
|
#3 | ||
|
Membre Expert
![]() Marcel GALANODéveloppeur informatique Inscription : juillet 2009 Messages : 644 ![]() |
Bonjour Mirak87, Bonjour Jérôme,
Si je peux me permettre. Une autre solution serait de traiter la formulation dans sa globalité au niveau des cellules à informer. D'autre part, plutôt que d'effectuer un collage spécial, il est tout aussi efficace d'utiliser une astuce (de mercatog, je crois) consistant à affecter une valeur à la valeur de la formule. Ce qui donne (à adapter, notamment en termes d'adressage des champs) Code :
__________________
Bien Cordialement. Marcel Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.![]()
|
||
|
|
20
|
|
|
#4 |
|
Office & Excel ![]() ![]() ![]() |
Salut.
Tu pourrais appliquer la formule sur la plage directement, plutôt que de l'appliquer sur la première cellule puis de recopier. Code :
Range("AA2:AA" & LastRowG).FormulaR1C1="=VLOOKUP(RC[-19],'bonds data new'!C[-26]:C[-13],5,FALSE)" Evite de sélectionner des cellules. Cela ralentit le système et est souvent superflu. Tu gagneras du temps et de la clarté de code à travailler directement avec les objets Cells ou Range appropriés.
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire) --------------- Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP Vous souhaitez rédiger pour DVP? Contactez-moi Amoureux de la langue française? Venez corriger nos ressources VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA... N'oubliez pas de VOTER (en bas à droite d'un message) --------------- |
|
00
|
|
|
#5 |
|
Membre Expert
![]() Marcel GALANODéveloppeur informatique Inscription : juillet 2009 Messages : 644 ![]() |
Salut Pierre,
Nos méthodes, je pense, sont similaires. Au demeurant, j'ai testé cette méthode sur 65530 cellules avec un champ de référence sur la même feuille. Le temps d'exécution est de l'ordre de 2 secondes tout au plus.
__________________
Bien Cordialement. Marcel Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.![]()
|
|
|
10
|
|
|
#6 |
|
Office & Excel ![]() ![]() ![]() |
Tout à fait, Marcel,
Je n'avais pas vu le "dercell" dans ton code... Mea culpa! Je pense aussi qu'il faut vraiment de grosses tables de données pour que le vlookup "pagaie dans la semoule"...
__________________
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire) --------------- Ma nouvelle vidéo: comparer des listes via une MFC - Mes articles sur DVP Vous souhaitez rédiger pour DVP? Contactez-moi Amoureux de la langue française? Venez corriger nos ressources VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA... N'oubliez pas de VOTER (en bas à droite d'un message) --------------- |
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() Étudiant Inscription : août 2011 Messages : 9 ![]() |
Bonjour,
Merci pour vos reponse Pierre et Marcel! effectivement c une base de 65 000 lignes!! je ne parviens pa à appliquer la copie valeur suggéré en debut de discussion! Code :
|
||
|
|
00
|
|
|
#8 | |||||
|
Membre éclairé
![]() Inscription : février 2006 Messages : 287 ![]() |
Citation:
Je pense qu'on peut faire ça avec un tableau de variables, qui plus est c'est très rapide : Code :
EDIT : je suis très con, il y a même un moyen bien plus simple : Code :
|
|||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com