IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

changer le contexte d'une boucle pendant son execution


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 64
    Points : 50
    Points
    50
    Par défaut changer le contexte d'une boucle pendant son execution
    Dans cette boucle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For Each vCellule In Range("xx:xx")
    ..........
    Next
    Si en cours de boucle je change le contenu de la colonne : par ex je détruis/insére des cellules ( la cellule courante ou la suivante par ex) est ce le Next a un comportement toujours prévisible ?

    Michel

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonsoir.

    Si tu insères des cellules ou que tu en ajoutes, la collection des cellules de la plage va être modifiée. Si tu en ajoutes il faut veiller à ce que la nouvelle cellule ne provoque pas l'insertion d'une suivante et ainsi de suite jusqu'à saturation.
    Si tu en enlèves, tu risques de déclencher une erreur en cherchant une cellule disparue.

    Je te conseille d'éviter cette façon de faire. Il vaut mieux parcourir la collection avec les indices ligne et colonne et en décroissant.

    Mais il faudrait voir ce que tu veux faire.

    Cordialement,

    PGZ

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 64
    Points : 50
    Points
    50
    Par défaut
    C'est un peu ce que je pensais.
    Comment modifierais tu ce bout de code pour parcourir la colonne en partant de la dernière cellule ?

    merci

  4. #4
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonsoir.

    Par exemple si on veut parcourir la colonne D entre les lignes 3 et 255
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub michel()
    Dim i As Long, oSh As Excel.Worksheet
    Const iMin As Long = 3
    Const iMax As Long = 255
     
    Set oSh = ThisWorkbook.Worksheets("NomFeuille")
     
    For i = iMax To iMin Step -1
        'ici la cellule à traiter est osh.Range("D" & i)
        'on fait le traitemment
    Next i
     
    Set oSh = Nothing
    End Sub
    Cordialement,

    PGZ

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/02/2015, 16h46
  2. Bloquer une fiche pendant son chargement
    Par dim07 dans le forum Langage
    Réponses: 8
    Dernier message: 08/07/2008, 11h57
  3. [Mail] stoper une boucle pendant un temps donné
    Par gpsevasion dans le forum Langage
    Réponses: 4
    Dernier message: 26/06/2007, 02h14
  4. affichage d'une page pendant son chargement
    Par boss_gama dans le forum ASP
    Réponses: 3
    Dernier message: 17/08/2006, 19h04
  5. [Jboss][myEclipse] Comment changer le contexte d'une appli
    Par adilou1981 dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 28/03/2006, 01h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo