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 Discussion :

Boucle For each en VBA


Sujet :

VBA

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Boucle For each en VBA
    Bonjour,

    Voila mon bout de code:

    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 dbuser1 As Variant
    ' Dim db3 As Variant
    Dim db2 As IAdDatabase
    Dim dbFound As Boolean
     
    For Each db1 In Split(Cells(Line, DBCol).value, DBSeparator)
     
    dbFound = False
    For Each db2 In user.SubscribedDatabases
    'If (db1 And db3) = db2.Name Then
    If db1 = db2.Name Then
    dbFound = True
    Exit For
    End If
    Next
    L' idée est d'inclure aussi la variable dans la boucle "For Each".

    Comment je fais? quelqu'un peut m'aide ? je suis un debuttant en VBA.

    Merci bien pour reponse

  2. #2
    Membre actif
    Profil pro
    chomeur
    Inscrit en
    Août 2006
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chomeur

    Informations forums :
    Inscription : Août 2006
    Messages : 343
    Points : 246
    Points
    246
    Par défaut
    Peux tu être plus... explicatif? je ne comprends pas trop ce que tu veux faire.
    Mais pourquoi passes tu par des boucle for each? coté perf y a mieux, surtout que tu fais le split a chaque passage!
    De même pense a indenter ton code... ça permet de mieux comprendre tes boucles.

  3. #3
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 634
    Points : 34 343
    Points
    34 343
    Par défaut
    Bonjour,
    bienvenue sur DVP (1er post meme si une presence depuis 18 mois )
    en lieu et place du For Each, je te recommande plutot une syntaxe comme celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim i As Integer
    Dim tmp As Variant
    temp = Split(Cells(Line, DBCol).value, DBSeparator)
    For i = 0 to UBound(temp)
    'ton code
    Next i
    D'autre part, utiliser un comme tu sembles le faire me parait maladroit, dans la mesure ou tu sors de facon "brutale" d'une boucle. Aussi je pencherais plus pour un forcage de ton increment. En utilisant le code donne plus haut, ca serait un simple
    et tu sors de la boucle.

    Concernant les notions de VBA, je t'encourage a consulter les nombreux tutoriaux disponibles sur
    http://access.developpez.com/cours
    ainsi que la tres bien fournie
    http://access.developpez.com/faq

    Bon courage a toi

  4. #4
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    comme tu sembles le faire me parait maladroit, dans la mesure ou tu sors de facon "brutale" d'une boucle. Aussi je pencherais plus pour un forcage de ton increment. En utilisant le code donne plus haut, ca serait un simple
    Code :
    i = UBound(temp)

    Le forcage d'indice de boucle est AUSSI MALADROIT qu'un EXIT FOR, voir plus car la sortie n'est pas EXPLICITE !!!!!!!!!!!
    Le mieux, c'est la boucle WHILE !

Discussions similaires

  1. boucle for each
    Par jadey dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 30/08/2006, 20h50
  2. [VBA-E]PB sur une boucle for each next
    Par rond24 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 31/07/2006, 15h47
  3. aide vba boucle for each paramétrée en range
    Par gotlieb dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/07/2006, 08h55
  4. [VBA-E] erreur boucle for each
    Par Mut dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/02/2006, 16h38
  5. Boucle For each
    Par roots_man dans le forum ASP
    Réponses: 10
    Dernier message: 18/02/2005, 09h55

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