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 sur une liste dans Excel [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 159
    Points : 77
    Points
    77
    Par défaut Boucle sur une liste dans Excel
    Bonjour,

    Désolé mais après plusieurs recherches infructueuse et lu quelque tuto je me permet de poser cette question simple dont je ne trouve pas de solution simple...

    Alors voila j'ai une liste dans mon fichier excel et j'aimerais boucler sur tous les lignes de cette liste et ainsi pouvoir accéder a chaque colonne de chaque ligne.

    Je pense que je dois utiliser for each next mais je ne sais pas quelle objet ou méthode je dois utiliser pour atteindre ma liste?

    Pour info c'est liste commence en A2 et va jusqu'a D2
    et peux contenir une multitude de ligne. J'aimerais m'arrêter juste avant ma ligne total.

    Merci


    Merci

  2. #2
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Bonjour,
    Voici le principe de boucle For Each et For x To y, toutefois, dis en plus sur le but final de cette boucle, il y a peut-être une solution alternative...

    For each nécessite de définir une plage dans laquelle on fait la boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub boucleForEach()
     
    Dim cel As Range
    Dim c As Long, DerLig As Long
     
    For c = 1 To 4 'Boucle sur les colonnes de 1 à 4, 1=A; 4=D
             DerLig = Sheets("TaFeuil").Cells(Columns(c).Cells.Count, c).End(xlUp).Row 'Determine la dernière ligne remplie selon la colonne
        For Each cel In Sheets("TaFeuil").Range(Sheets("Tafeuil").Cells(2, c), Sheets("TaFeuil").Cells(DerLig-1, c))
            'Que faut il faire ?
        Next cel
    Next c
     
    End Sub
    For x To y nécessite un début et une fin en terme de ligne et de colonne dans ce cas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Boucle()
    Dim c as long, r as long, DerLig as long 'Dimmensionnement des variables
     
    For c = 1 to 4 'Boucle sur les colonnes de 1 à 4, 1=A; 4=D
         DerLig = sheets("TaFeuil").cells(columns(c).cells.count,c).end(xlup).row 'Determine la dernière ligne remplie selon la colonne
         For r = 2 to DerLig-1 'Boucle sur les lignes, depuis 2 car titre et denière ligne -1 car total
              'Que faut-il faire ?
         Next r
    Next c
     
    End sub
    A+

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 159
    Points : 77
    Points
    77
    Par défaut
    Ok je pensais qu'on pouvait faire mieux avec un for each et une liste...

    Donc la j'ai utilisé un do loop until jusqu'a que je trouve ma ligne total


    Merci pour la réponse

  4. #4
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Re,
    Tu n'as pas répondu à la question cruciale:
    Quel est le but final?
    -Trouver la ligne qui contient "total"?
    -Trouver la dernière ligne?
    -Trouver un élément entre les lignes x et y?
    -Faire une somme selon des conditions?
    -...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 159
    Points : 77
    Points
    77
    Par défaut
    Désolé

    Donc mon but c'est de générer un xml en parcourant les toutes le ligne de ma liste (une ligne correspond a une balise xml)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <Root>
    <Line id="y,1" compte="y,2"><Nom>y,3</nom><Prenom>y,4</Prenom></Line>
    <Line id="x,1" compte="x,2"><Nom>x,3</nom><Prenom>x,4</Prenom></Line>
    ...
    </Root>
    Et donc de générer autant de line que j'ai de ligne dans ma liste

  6. #6
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    OK dans ce cas, c'est en effet plus ou moins pareil...For Each est légèrement plus rapide mais, je pense, moins adapté à ton cas

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 159
    Points : 77
    Points
    77
    Par défaut
    Merci pour ton aide

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

Discussions similaires

  1. Faire une boucle sur un liste dans jasper report
    Par Tail dans le forum iReport
    Réponses: 4
    Dernier message: 29/11/2010, 11h31
  2. transfert SFTP - boucle sur une liste de fichiers
    Par Nick56 dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 18/12/2008, 09h25
  3. Togglemenu: boucle sur une liste
    Par ouissler dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 19/03/2008, 18h32
  4. [VBA-E] Selection d'une liste dans Excel
    Par GI_GI dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/01/2007, 02h05
  5. simuler un double click sur une liste dans un dbgrid
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 1
    Dernier message: 01/09/2005, 10h45

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