Vllokup VBA

7classeur2.zip (6.58 Ko)

Bonjour à tous,

je viens de m'inscrire et je commence à apprendre le language VBA donc ne m'en voulait pas si je parais pour un "neuneu'

Je travaille beaucoup sur Excel et j'ai besoin de maitriser quelque code vba pour etre plus efficace.

En l'occurrence, j'étudie la fonction Vlookup (ou dites moi s'il existe un code plus rapide).

L'objectif est d'écrire un code me permettant de faire une recherche sur une feuille en fonction d'une autre feuille (en formule excel ca donnerait =recherchev(feuil2!L2; feuil1!$A$2:$P$50000;9;faux)

La particularité réside donc dans le fait que les feuilles peuvent contenir 50000 lignes (variable selon les mois) et avec une fonction excel le calcul est tres long. Il existe une notion de boucle également.

je vous joint un extrait de mon fichier.

Je veux comprendre le code pour le faire évoluer par la suite.

MERCI pour votre accompagnement et votre aide.

voici le code que j'ai ecrit mais je suis perdu :

Sub vlookup()
Dim i, z As Integer
For j = 0 To 193
For i = 2 To 229
For z = 24 To 25
On Error Resume Next
On Error Resume Next
Worksheets("feuil2").Cells((j * 233) + i, z).Value = WorksheetFunction.vlookup(Worksheets("feuil2").Cells(i - 6 + 1, 13), Worksheets("feuil1").Range("B" & 7 + (j * 233) & ":G" & 234 + (j * 233)), z - 1, "false")
If Erro <> 0 Then Values = 0
If Erro <> 0 Then Values = xlErrNA
Next
Next
Next
MsgBox "Refomat Done"
End Sub

Bonjour,

Il existe le code FIND.

Si j'ai bien compris vous souhaitez que la feuil2 se mette a jour en fonction du numéro de référence indiqué en colonne L c'est bien cela ?

Exactement.

il faut un code qui soit rapide en execution.

Ci-joint un document exemple avec la fonction FIND

Je t'ai tout expliqué dans le module 1 pour que tu puisses convenablement utiliser cette fonction dans ton fichier

8find.xlsm (19.43 Ko)

Super, je vais essayer de l'adapter à mon fichier...si j'y arrive.

merci

Si tu bloques quelque part n'hésite pas à revenir

Bonjour,

La fonction 'Vlookup' est plus rapide que la méthode 'Find'

Enfin ce que je dis

Cdlt

merci j'ai su l'adapter a mon fichier

c'est long avec bcp de lignes (50000). Ce code est optimisé ?

il est possible d'avoir un sablier indiquant le % d'avancement en cours de l'execution de la macro.? exemple : on est à 30% / 100%

merci bcp

Le sablier ralentirait considérablement l'exécution du code.

Je comprend que le sablier ralentisse le code.

J'ai fait un test sur 100 lignes : la macro tourne pendant 30 secondes

si je fais l'extrapolation pour 50000 lignes : il faudrait 4 heures.

Hello,

Ci-joint un fichier avec la méthode Find et la méthode Vlookup.

Ainsi tu pourras comparer quel code va le plus vite

5find.xlsm (21.22 Ko)

merci Greg.leo

la macro est toujours longue je ne sais pas s'il y a une autre solution qui existe et qui traite plus rapidement la recherche.

Rechercher des sujets similaires à "vllokup vba"