Bonjour à tous,
Avant de commencer, merci de l'aide que vous apportez sur différents sujets, qui permettent chaque jour de résoudre pas mal de problèmes...
Mais là, j'en ai un qui me pose soucis, et j'en me remet à vous...
J'ai une macro fonctionnelle, mais si mes données sont supérieures à environ 10000 lignes, alors là, c'est le drame, ça mouline dans le vent...
Voici le code qui va bien
Précisions :
- j'avais déclaré en "Integer" à la base, ce que j'ai corrigé en "Long" après erreur du dépassement de capacité, pour les séries de plus de 30000 lignes
- Pour environ 6000 lignes, la macro met 30 secondes à tourner
- J'ai attendu 10 bonnes minutes pour 15000 lignes, sans qu'elle ne finisse...
- Je fais tourner ça sur un DELL récent, avec un bon core 2 duo, de la RAM itou itou
- Je fais tourner ça depuis Excel 2003
Ma question est donc de savoir si j'atteins les limites de la boucle For...Next, ou si la façon dont j'ai écris ma boucle fout tout par terre si j'ai un trop grand nombre de lignes...
L'autre problème est qu'il faut absolument que je garde mes grandes listes... Pas moyen de scinder en plus petits fichiers (ce qui règlerais mon problème en plus...)
Merci d'avance de votre aide à tous !
Avant de commencer, merci de l'aide que vous apportez sur différents sujets, qui permettent chaque jour de résoudre pas mal de problèmes...
Mais là, j'en ai un qui me pose soucis, et j'en me remet à vous...
J'ai une macro fonctionnelle, mais si mes données sont supérieures à environ 10000 lignes, alors là, c'est le drame, ça mouline dans le vent...
Voici le code qui va bien
Code:
Sub seqp1()
Dim i As Long
Dim k As Long
For i = 1 To Range("B65536").End(xlUp).Row
If Cells(i, 2).Value = "?" Then
Cells(i + 1, 2).Value = Cells(i, 3).Value
End If
For k = 1 To Range("B65536").End(xlUp).Row
If Cells(i + k, 2).Value <> "?" And Cells(i + k, 2).Value <> "" Then
Cells(i + k, 2).Value = Cells(i + 1, 2).Value
Else
Exit For
End If
Next k
Next i
End Sub
Précisions :
- j'avais déclaré en "Integer" à la base, ce que j'ai corrigé en "Long" après erreur du dépassement de capacité, pour les séries de plus de 30000 lignes
- Pour environ 6000 lignes, la macro met 30 secondes à tourner
- J'ai attendu 10 bonnes minutes pour 15000 lignes, sans qu'elle ne finisse...
- Je fais tourner ça sur un DELL récent, avec un bon core 2 duo, de la RAM itou itou
- Je fais tourner ça depuis Excel 2003
Ma question est donc de savoir si j'atteins les limites de la boucle For...Next, ou si la façon dont j'ai écris ma boucle fout tout par terre si j'ai un trop grand nombre de lignes...
L'autre problème est qu'il faut absolument que je garde mes grandes listes... Pas moyen de scinder en plus petits fichiers (ce qui règlerais mon problème en plus...)
Merci d'avance de votre aide à tous !