Boucle un peu longue

Snoop

XLDnaute Occasionnel
Bonjour tout le monde et le forum ! (enfin vendredi :p)

J'suis sur un code qui au nombre de ligne me prend un peu de tps, et je voudrais lui donner un pti coup de boost !

le principe est de vérifier pour la colonne A à chaque fois que j'ai un "C"
si le numero client -> est dans une liste pour créer un nouveau fichier.

je me rend compte qu'il met bcp de tps pour tester 30000 lignes avec 12000 numero client (même si je ne crée que 2 fichiers)


Si quelqu'un a une solution, j'ai encore voulue passé par une Variante, mais sans résultat,

en dessous une partie du code d'origine ! --- Merci pour votre aide !:D


sub test()
.......
'------------- recherche de la plage ---------
While Range("a" & i + 1) <> ""

numero_client = Range("b" & i).Value 'numero client
nom_client = Range("c" & i).Value 'nom du client

Do Until Range("a" & j).Value = "C" 'recherche jusqu'a ce que l'on trouve C
j = j + 1
Loop
j = j - 1
'------------ Test si le résultat est dans la liste à prendre -----------------

ThisWorkbook.Activate

Set cc = [b:b].Find(numero_client, LookIn:=xlValues)

If Not cc Is Nothing Then 'si l'on trouve le compte client (cc)

cc.Offset(0, 1) = "ok"

'----------- decoupe fichier et mise en forme entre i et j ------------------
.......
end if

i = j + 1
j = j + 2

Wend
 

Celeborn61

XLDnaute Occasionnel
Re : Boucle un peu longue

Salut,

Je ne comprend pas bien pourquoi tu scrute deux fois la même colonne.
Une fois en ne prenant que les non-vide, et une fois en prenant les "C".

Pourquoi ne pas réaliser une seule boucle, qui n'intervient que si un "C" est trouvé ?.
for each Cel in range("A1:A9999")
if Cel.value="C" then
numero_client = Cel.offset(0,1).Value 'numero client
nom_client = Cel(Offset(0,2).Value 'nom du client
...
endif
next Cel
 

Snoop

XLDnaute Occasionnel
Re : Boucle un peu longue

Bonjour,

la première permet d'arreter la recherche lorsque c'est vide.. mais peut etre que cela ne sert à rien.

Ensuite, je prend les lignes entre le 1er C et le deuxieme C moins une ligne qui correspond à divers information que je dois copier.

Voili voulou
 

Snoop

XLDnaute Occasionnel
Re : Boucle un peu longue

bonjour Pierrejean,

merci pour le code, mais il faut qu'il coupe à chaque C une feuille (ou autre) à chaque fois avec en change.

J'essaiyerais lundi, mais px tu m'expliquer un peu le code...

tks

merci !!!
 

Discussions similaires

Statistiques des forums

Discussions
312 427
Messages
2 088 304
Membres
103 813
dernier inscrit
mehdifr