Bonjour tout le monde et le forum ! (enfin vendredi )
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 !
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
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 !
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