VBA - Do... Loop While sans fin!

Résolu
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

  1. Contributeur
    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
    1. 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!
      1. Contributeur
        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
        1. Contributeur
          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
          1. Ok, merci à vous deux pour les explications et Merci Michel_m pour cette macro!!!!

            Je ne connaissait pas ces codes!

            Adrien