VBA - Do... Loop While sans fin!

Résolu
Adee82 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
 adee82 -
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 315
 
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
adee82
 
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 315
 
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 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
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
adee82
 
Ok, merci à vous deux pour les explications et Merci Michel_m pour cette macro!!!!

Je ne connaissait pas ces codes!


Adrien
0