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 :

Do while / Offset


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 46
    Par défaut Do while / Offset
    Bonjour,
    Une de mes macros beug sur la boucle suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set cel = Range("Feuil1!H2")
    Do While cel <> "blabla"
        cel = cel.Offset(1)
    Loop
    Le debogage indique que c'est la ligne soulignée qui est incorrecte. Pourquoi ?

  2. #2
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    Bonjour

    offset(nbligne,nbcolonne), 2 parametre

    offset(0,1) decale d'une colonne

  3. #3
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 46
    Par défaut
    Je croyais que quand on tapait offset avec un seul argument l'ordi partait du principe que c'était le nb de lignes et que nb de colonnes=0. Je l'ai déjà utilisé avec un seul argument ça marche très bien... J'ai quand même suivi ton conseil : j'ai remplacé cel.Offset(1) par cel.Offset(1,0). Maintenant le débogage indique que l'erreur se trouve à la ligne "Loop"... je ne comprend pas plus...
    J'ai changé cette boucle contre une 2e qui est sencé faire la même chose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Set cel = Range("Feuil1!H2")
    j = 2
    Do While cel <> ""
        If cel = "blabla" Then Exit Do
        j = j + 1
        Set cel = Range("Feuil1!H" & j)
    Loop
    Celle-ci marche très bien, ça fait plaisir. Cela dit j'aimerais quand même comprendre où est le problème dans la 1ère.

  4. #4
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    re:

    d'apres ce que je vois, la premiere boucle ne pouvait fonctionner puisque cel n'evoluait pas, donc restait sur la meme cellule

    alors que la deuxieme cel evoluant, il a des chances de trouver blabla ou encore d'etre à vide pour sortir de la boucle

    autre methode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    set cel = range("H2")
    while cel <> "" and cel <> "blabla"
         set cel = cel.offset(1,0)
    wend
    de ce que je lis de la boucle, on l'arrete si cel est à blanc ou si cel = "blabla"

  5. #5
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 46
    Par défaut
    Ca marche. Merci beaucoup !

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

Discussions similaires

  1. [CR8.5] Pbm d'affichage dans un While
    Par .:Tieri:. dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 14/07/2004, 10h17
  2. Réponses: 2
    Dernier message: 05/02/2004, 13h58
  3. [débutant]Documentation? boucle "while"? Session?
    Par o151181 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 19/01/2004, 15h20
  4. Qu'est ce qu'un offset
    Par gtr dans le forum Assembleur
    Réponses: 8
    Dernier message: 06/12/2002, 08h53
  5. Réponses: 3
    Dernier message: 25/11/2002, 14h15

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