VBA - Do... Loop While sans fin!

Résolu
Adee82 Messages postés 1 Statut Membre -  
 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

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  2. 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
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  4. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

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

    Je ne connaissait pas ces codes!

    Adrien
    0