VBA - Do... Loop While sans fin!

Résolu/Fermé
Adee82 Messages postés 1 Date d'inscription vendredi 14 octobre 2011 Statut Membre Dernière intervention 14 octobre 2011 - 14 oct. 2011 à 16:28
 adee82 - 17 oct. 2011 à 12:32
Bonjour à toutes et à tous!!

Je tente de faire une "Loop... Whille" en calculant colonne par colonne, en se décalant vers la droite. Je voudrais qu'elle s'arrête dès que mes colonnes sont vides, mais ca ne marche pas. La loop décale la sélection jusqu'à la dernière colonne ("IV") et la macro plante.

Voici mon Code :

Range("B1:B12504").Select

Do

Selection.Calculate
Selection.Offset(0, 1).Select

Loop While Not IsEmpty(Selection.Offset(0, 1))



Merci d'Avance!!!

5 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 14/10/2011 à 16:51
Bonjour,

je vois pas trop pourquoi le calculate dans une boucle ....mais c'est vendredi

essaies cette autre manière
Sub xxxx()
Dim dercol As Byte, col As Byte
'trouve la dernière colonne avec une donnée
dercol = Range("B1:IV12400").Find("*", , , , , xlPrevious).Column

Application.ScreenUpdating = False
'parcours le tableau
For col = 2 To dercol
     Cells(1, col).Resize(12504, 1).Calculate
Next

End Sub


edit: ajouté défilement écran bloqué

Michel
0
Bonjour Michel_m,

merci beaucoup pour votre réponse!!!

en fait le but était de "guider" excel dans le recalcul de l'onglet en question.
Le recalcul de cette onglet prend plus d'une heure!
Comme les premières colonnes sont des formules simples qui servent de variables dans les formules matricielles des colonnes qui suivent, j'ai pensé qui serait judicieux de lui imposer de calculer d'abord les premières colonnes.
En plus ca permet qu'il ne re-balaye pas les cellules qui n'entrent pas dans la sélection.
Qu'en pensez-vous?

Et comprenez-vous pourquoi ma loop est fausses?

Merci!
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
17 oct. 2011 à 11:38
as tu regardé la macro que je t'ai proposé suite à ton problème:

Je tente de faire une "Loop... Whille" en calculant colonne par colonne, en se décalant vers la droite. Je voudrais qu'elle s'arrête dès que mes colonnes sont vides, mais ca ne marche pas

?

d'autre part si tu as des matricielles sur 12400 lignes, installes ton matériel de camping près de l'ordi pour attendre la fin des calculs confortablement ;o)
un peu de lecture à ce sujet
http://xcell05.free.fr/pages/form/form_mat.htm#Performances
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
17 oct. 2011 à 11:43
Bonjour tout le monde,


Tu sais, excel n'est pas bête, il calcule d'abord les antécédents avant de d'évaluer une formule.

Lorsque tu as beaucoup de formule le mieux est de conserver celles de la 1ère ligne et de faire un 'copier-collage spécial valeur' sur toutes les autres lignes.
Et quand tu as des modif tu recopies toutes les formules vers le bas qu'il recalcule, et tu refais un collage spécial valeur.

eric
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ok, merci à vous deux pour les explications et Merci Michel_m pour cette macro!!!!

Je ne connaissait pas ces codes!


Adrien
0