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

VBA Access Discussion :

Boucle Do Loop While avec un if qui fait continuer la boucle


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Boucle Do Loop While avec un if qui fait continuer la boucle
    Bonjour,

    J'ai un petit problème avec mon code. J'ai une boucle qui parcours la colonne A et une boucle la colonne B d'un fichier Excel.
    Cependant j'aimerais que lorsque la condition de la fonction "estGras' est vrai, la boucle ne continue pas mais s'incrémente afin de continuer de parcourir le fichier sans prendre en compte les lignes en gras (sachant que les lignes en gras de la colonne A ne doivent en fait pas être affichée et du coup les lignes correspondantes dans la colonne B (qui ne sont elles pas en gras) doivent également être sautées.

    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
     Dim i As Integer
        i = 1
        Dim j As Integer
        j = 1
            
        Do
            i = i + 1
            If EstGras((sht.Cells.Item(i, 1))) Then ???  'ici je ne sais pas comment faire car si je met : Not estGras la boucle continue quand même et le parcours de j s'execute...
                Me.Liste1.AddItem (sht.Cells.Item(i, 1))
                Do
                    j = j + 1
                    Me.Liste2.AddItem (sht.Cells.Item(j, 2))
                Loop While Cells(j, 2) <> ""
            En
        Loop While Cells(i, 1) <> ""

  2. #2
    Membre expérimenté Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Points : 1 364
    Points
    1 364
    Par défaut
    Bonjour,

    Tout d'abord, on n'a aucune idée de ce que contient ta fonction "EstGras", qui est, je suppose, un appel d'une fonction.
    Ensuite, as-tu regardé quelle valeur cette fonction retourne ? Sans parler de ce que contient sht.Cells.Item(i, 1) ?
    Bref, on manque d'informations.

    Par contre, je te conseille, au niveau de la boucle, de récupérer la dernière ligne non vide de ta plage de données Excel et de faire une boucle For dessus.
    Cela te permettra par ailleurs de connaitre la dernière ligne qu'il trouve, ce qui peut être une raison de l'erreur que tu as.

    Cordialement,
    Le sabre est une arme. Le kendo est un art de tuer. Quelles que soient les belles paroles pour l'expliquer, telle est sa vérité.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Function EstGras(a As Range) 'Sert a reperer les caracteres qui sont en gras
    If a.Font.Bold Then
    EstGras = True
    Else
    EstGras = False
    End If
    End Function

    Pour ce qui est du Cells il représente des cellules excel. Mon fichier excel comprend une colonne avec des mots et une colonne avec des chiffres. La colonne avec des mots contient des titres (en gras). Ce que j'aimerais c'est ignorer ces lignes en gras lors de l'import de mon fichier et donc ignorer également la cellule de la colonne B située sur la même ligne.

  4. #4
    Membre expérimenté Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Points : 1 364
    Points
    1 364
    Par défaut
    Bonjour,
    Je viens de voir que tu as mis en "Résolu". Comment as-tu corrigé ton problème ?
    Cordialement,
    Le sabre est une arme. Le kendo est un art de tuer. Quelles que soient les belles paroles pour l'expliquer, telle est sa vérité.

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

Discussions similaires

  1. Boucle do loop while qui ne fonctionne pas
    Par nahamed dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/04/2015, 11h52
  2. [XL-2007] Problème boucle Do / Loop While
    Par LULUCI dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/01/2013, 10h39
  3. pourquoi linux fonctionne même avec un programme qui fait une boucle while(1) ?
    Par morpheusmg dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 23/12/2011, 17h49
  4. boucle while avec Or qui ne marche pas
    Par tibofo dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 18/01/2009, 23h33
  5. [VBA-E] PRobleme avec une boucle DO..LOOP WHILE
    Par AliochaBada dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 31/07/2006, 01h04

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