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 :

Boucle Do While + tableau VBA [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    361
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 361
    Par défaut Boucle Do While + tableau VBA
    Bonjour,

    Je ne comprends pas pourquoi la boucle Do While ne fonctionne pas avec mon tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            i = 0
            ligne_CC = 0
            If tableau_CC(i, 1) <> "" Then
                 Do While (tableau_CC(i, 1) <> "")
                    ligne_CC = ligne_CC + 1
                    i = i + 1
                 Loop
            End If
    alors qu'elle fonctionne parfaitement lorsque je remplace mon tableau par des cellule comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            i = 0
            ligne_CC = 0
            If Cells(nb_ligne + 7 + i, 1) <> "" Then
                Do While (Cells(nb_ligne + 7 + i, 1) <> "")
                    ligne_CC = ligne_CC + 1
                    i = i + 1
                Loop
            End If
    si quelqu'un aurait une petite idée sachant que j'ai déclaré mon tableau comme cela : Merci beaucoup

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Et tu as quoi dans ton tableau ?

    Si ce sont des nombres, ce n'est pas surprenant que cela plante en testant pour du texte.

    P.S. Ton If est inutile.

  3. #3
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 430
    Billets dans le blog
    11
    Par défaut
    Salut,

    Un petit tour sur ce tuto devrait peut-être te donner des pistes.

    Cdlt

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Je suppose que tu affecte ta plage au tableau de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tableau_CC = Range("A7:A30")
    Tu initialise I à 0 alors que ton tableau commence à 1. Pour ton exemple avec les cellules, tu commence systématiquement à 7 donc, pas d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Cells(nb_ligne + 7 + i, 1)
    Teste ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    Sub Tableau()
     
        Dim tableau_CC
        Dim I As Long
        Dim ligne_CC As Long
     
        tableau_CC = Range("A7:A30")
     
        If tableau_CC(I + 1, 1) <> "" Then
     
             Do While (tableau_CC(I + 1, 1) <> "")
     
                ligne_CC = ligne_CC + 1
                I = I + 1
     
             Loop
     
        End If
     
        MsgBox ligne_CC & vbCrLf & I
     
    End Sub
    Hervé.

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

Discussions similaires

  1. boucle while dans vba
    Par philippe6 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/02/2014, 19h19
  2. VBA Boucle do while
    Par amzyr dans le forum VBA Access
    Réponses: 4
    Dernier message: 23/01/2013, 18h16
  3. Réponses: 2
    Dernier message: 06/02/2007, 15h05
  4. [VBA] Boucle do while
    Par Pitou5464 dans le forum Access
    Réponses: 8
    Dernier message: 23/08/2006, 10h17
  5. [VBA] Boucle Do While
    Par jmde dans le forum Access
    Réponses: 4
    Dernier message: 16/10/2005, 20h23

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