Optimiser une macro

cs_Alban83 Messages postés 24 Date d'inscription vendredi 3 juillet 2009 Statut Membre Dernière intervention 21 septembre 2010 - 12 oct. 2009 à 15:04
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 - 13 oct. 2009 à 23:37
Bonjour tt le monde,

J’ai créé une macro qui fait une recherche verticale sur deux tableaux de deux feuilles.

Mon problème est que dans les tableaux j’ai énormément de ligne, presque le maximum sur Excel 2003, donc le programme peut mettre plus de deux heures pour finir.

J’aimerai savoir si on peut l’optimiser le programme ? Je pense que c’est les deux boucle For qui ralentie le programme. Comme je ne m’y connais pas en programmation je ne sais pas quoi utiliser.

Merci

Sub rechv()

Worksheets("Default").Activate
Dim ligne1 As Long
ligne1 = Columns("A:A").Find("*", Range("A1"), , , xlByRows, xlPrevious).Row


Dim ligne2 As Long
ligne2 = Columns("A:A").Find("*", Range("A1"), , , xlByRows, xlPrevious).Row

For i = 2 To ligne1

For j = 2 To ligne2

If Cells(i, 1) = Worksheets("Feuil2").Cells(j, 1) Then

Cells(i, 2) = Worksheets("Feuil2").Cells(j, 10)
Exit For

End If
Next j
Next i

End Sub

3 réponses

cs_Alban83 Messages postés 24 Date d'inscription vendredi 3 juillet 2009 Statut Membre Dernière intervention 21 septembre 2010
13 oct. 2009 à 11:13
personne peut m'aider?
0
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
13 oct. 2009 à 11:20
Bonjour,

Désolé (du moins en ce qui me concerne) mais je ne réponds jamais (je l'ai dit mille fois) lorsque, comme tu le fais ici, on pose dans le thème VBV6 une question concernant VBA (Excel).
Désolé. Vraiment.
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
13 oct. 2009 à 23:37
Bonsoir,

En effet, le thème est mal choisi... faut faire attention, sinon plus personne ne pourra utiliser CS... les admins font déjà beaucoup pour rectifier ces mauvaises manipulations... Alban83, je te conseille de leurs demander (gentiment ) de corriger le thème, venant de l'utilisateur c'est surement un peu plus agréable ...

sinon, j'aurai peut-être dit :
- déclarer ses variables : Dim i as Long, j as Long
- ensuite va voir mon modeste site, notamment sur la page http://fordom.free.fr/tuto/OPTIMISATION.htm plus précisément "Tableau Excel dans une Array".
- Ensuite, n'existerait-il une autre façon de faire ce traitement ? C'est la question à se poser en fonction du type donnée qu'on ne connait pas dans ta présentation...

Amicalement,
Us.
0
Rejoignez-nous