Parcourir cellules excel

Résolu
HiiiCoach Messages postés 27 Date d'inscription vendredi 30 avril 2010 Statut Membre Dernière intervention 1 juin 2011 - 21 mai 2010 à 11:02
HiiiCoach Messages postés 27 Date d'inscription vendredi 30 avril 2010 Statut Membre Dernière intervention 1 juin 2011 - 21 mai 2010 à 16:36
Bonjour,

Je souhaiterai créer une boucle pour récupérer toutes les donnés se trouvant dans les cellules de n'importe quelle feuille Excel.

Sachant que je ne connais pas le nombre de cellules renseignées à l'avance, y a t-il une ligne de code qui permet de parcourir toutes les cellules de la feuille qui sera ouverte ?

Merci pour vos réponses.

5 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
21 mai 2010 à 15:47
"C'est quoi un range"
Demande à l'aide de Excel de te renseigner.

Si tu as observé la fenêtre de debug (Ctrl-G), tu aura vu que, lorsque la boucle tourne, les chiffres des lignes et des colonnes défilent.

Tu demandais "Je souhaiterai créer une boucle pour récupérer toutes les donnés se trouvant dans les cellules de n'importe quelle feuille Excel" : Tu as maintenant ce qu'il te faut.
A toi de regarder dans l'aide (et ses exemples) à quoi sert chaque mot de ce code.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
21 mai 2010 à 11:32
Salut
Pour sélectionner toutes les cellules d'une feuille :
    Cells.Select
mais cela ne peut pas être utilisé comme un Range

Pour sélectionner toutes les cellules comportant quelque chose :
    Range("A1").Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select

Pour parcourir toutes les cellules d'un Range :
    Dim maCellule As Range
    For Each maCellule In Range("A1", ActiveCell.SpecialCells(xlLastCell))
        Debug.Print maCellule.Row, maCellule.Column
        DoEvents
    Next

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
HiiiCoach Messages postés 27 Date d'inscription vendredi 30 avril 2010 Statut Membre Dernière intervention 1 juin 2011
21 mai 2010 à 12:10
Merci,

C'est quoi un range ?

J'ai besoin de faire des actions spécifiques à chaque cellule...

Voici mon code:

Dim maCellule As Range
For Each maCellule In Range("A1", ActiveCell.SpecialCells(xlLastCell))
Debug.Print maCellule.Row, maCellule.Column
DoEvents
Cells(i, 1) = part1
Cells(i, 2) = part2
Cells(i, 3) = "CREATION "
Cells(i, 4) = format_ex
Cells(i, 5) = code
Cells(i, 6) = " "
Cells(i, 8) = "0"
Next

For Each maCellule In Range("A1", ActiveCell.SpecialCells(xlLastCell))

Debug.Print maCellule.Row, maCellule.Column
DoEvents
Sheets(feuille).Select
Code_mvmt = Cells(i, 3)
txt2 = Cells(i, 2)
'Variable contenant le format externe
format_ex = Mid(txt2, 1, 2)
'Variable contenant le Code info
code = Mid(txt2, 3, 4)
Sheets("entête d'enregistrement").Select
Cells(i, 7) = Code_mvmt
i = i + 1
Cells(i, 4) = format_ex
Cells(i, 5) = code
Code_mvmt = ""
Next

Il ne tourne pas parce que i n'a pas de valeur (j'utiliais une boucle for avant...)

Pourrais tu m'aider ?

Peut-être qu'il est possible de compter le nombre de cellules utilisées pour ensuite mettre une boucle for ?
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
21 mai 2010 à 15:49
Remplace
Debug.Print maCellule.Row, maCellule.Column
par
Debug.Print "Ligne : "; maCellule.Row, _
            "Colonne : ";maCellule.Column, _
            "Contenu : "; maCellule.Value
pour mieux te rendre compte de ce que fait le programme
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
HiiiCoach Messages postés 27 Date d'inscription vendredi 30 avril 2010 Statut Membre Dernière intervention 1 juin 2011
21 mai 2010 à 16:36
Merci ;)
0
Rejoignez-nous