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 :

[VBA Excel]Comment parcourir une collection ?


Sujet :

Macros et VBA Excel

  1. #1
    Invité
    Invité(e)
    Par défaut [VBA Excel]Comment parcourir une collection ?
    Bonjour

    Je voudrais parcourir toutes les cellules d'une plage, sans utiliser un "For... each".

    C'est possible ?

    Comment accéder directement à la i-ième cellule de ma plage ?

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Question 1.
    Euh...
    Parcourir sans faire de boucle???
    Quelle est la question?

    Question 2.
    Offset, peut-être?
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  3. #3
    Invité
    Invité(e)
    Par défaut Copie de plages
    Citation Envoyé par AlainTech
    Question 1.
    Euh...
    Parcourir sans faire de boucle???
    Si-si, avec un "for ... to ..." ou un "while", mais pas de "each"

    Le problème initial est le suivant :

    Je voudrais copier le contenu toutes les cellules d'une plage source vers une plage destination.
    (Les plages source et destination on le même nombre de cellules)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function copierPlage(byval plageSrc as range, byval plageDest as range)
    ...
    end function
    J'arrive bien à parcourir toutes les cellules source avec un "for each cellSrc in plageSrc", mais il faut que je parcoure dans la même boucle les cellules de la plage destination... D'où ma question...

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Cells(i, Col) sur chacune des feuilles.
    Où Col est l'index de la colonne à parcourir et i ton index de boucle.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  5. #5
    Invité
    Invité(e)
    Par défaut Item
    Normalement, pour lire un élément i d'une collection, il faut utiliser la propriété "maCollec.item(i)"
    Mais ça ne fonctionne pas pour "range"...

    J'ai donc créé une collection dans laquelle je stocke toutes les valeurs de mes cellules source.
    Ensuite je parcours toutes mes cellules destination (avec un for each) et je colle les valeurs de ma collection en les atteignant avec la propriété "item"...

    Et voilà...

    Si vous avez une meilleure solution, n'hésitez pas...

  6. #6
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Je ne comprends pas une chose, pourquoi veut tu utiliser un for to au lie d'un for each ?
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  7. #7
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Citation Envoyé par Kaji
    Normalement, pour lire un élément i d'une collection, il faut utiliser la propriété "maCollec.item(i)"
    Mais ça ne fonctionne pas pour "range"...
    Pour un Range, il faut utiliser Cells.

    Voir mon message au-dessus.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

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

Discussions similaires

  1. Comment parcourir une ficher word avec VBA?
    Par megapacman dans le forum VBA Word
    Réponses: 6
    Dernier message: 17/11/2006, 11h11
  2. Réponses: 2
    Dernier message: 27/09/2006, 19h41
  3. [VBA-E]Comment mettre une ligne entière d'un fichier excel en gras ?
    Par pauletta22 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 24/05/2006, 08h23
  4. [VBA][Excel] Comment faire pour faire une boucle?
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 29
    Dernier message: 19/12/2005, 14h48
  5. vba excel - Comment saisir une cellule sans faire entrer
    Par brethomeau dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 15/11/2005, 17h50

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