[Excel Macro] Méthode de recherche

Résolu/Fermé
deniooo Messages postés 36 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 16 juin 2008 - 9 juin 2008 à 13:50
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 10 juin 2008 à 10:09
Bonjour,
je cherche à parcourir une colonne. Y a t-il une commande (genre columns("A")) qui me permet de sélectionner toutes les cells de la colonnes ?
J'essaye d'éviter de passer par des ranges, surtout que je ne connais pas le nombre de cellules "active" (value <> "") dans la colonne.
j'ai essayé ce genre de truc :

Dim plage As Range
Dim cel As Range
Set plage = Application.Sheets(1).columns("A")
n = 0
For Each cel In plage
i = i + 1
If (cells(i, 1).Value <> "") Then
n = n + 1
cells(i, 1).Value = ""
End If
Next

Mais le soucis c'est que columns("A") ne renvoit pas un range..

Donc ma question est la suivante : y a t il une commande simple permmettant de résoudre ce souci ? un truc que je ne connais pas (je suis newbs dans ce langage et en prog :p)

Merci.
A voir également:

5 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
9 juin 2008 à 17:30
bonjour

Comme ceci, dans cellule tu obtiens A1, etc
Dim plage As Range
Dim cel As Object
Dim cellule, n
Set plage = Sheets(1).Range("A:A")
n = 0
For Each cel In plage

If cel.Value <> "" Then
        n = n + 1
cellule = cel.Address(RowAbsolute:=False, columnAbsolute:=False)
End If
Next
0
deniooo Messages postés 36 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 16 juin 2008 1
9 juin 2008 à 17:37
Je pige pas trop la fin de ton code.. :D
Par contre j'ai une meilleure idée de ce qu'il me faut, il y a la commande Rows qui donne un range avec toutes les lignes, y a-t-il une commande de même type qui donnerai un range avec les colonnes ?

genre la commande :
UsedRange.X.rows.count où X serait ma méthode cherchée pour compter les colonnes.

Comme ça je pourrais avoir le nombre de lignes d'UNE colonne utilisée.

?
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
9 juin 2008 à 17:49
Bonjour,

pour balayer la colonne A en t'arretant à la dernière cellule utilisée :
Dim cel As Range
For Each cel In Range("A1:A" & [A65536].End(xlUp).Row)
' ton code....
Next cel

Mais maintenant tu parles de compter les colonnes donc je ne sais plus trop ce que tu veux...
Un tit salut à gb au passage :-)
eric
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
9 juin 2008 à 19:05
bonjour deniooo,

Si j'ai compris ce que tu cherches "ma méthode cherchée pour compter les colonnes" qui en fait est une erreur car dans une colonne tu ne peux compter des colonnes mais les cellules.
n = Application.Sheets(1).UsedRange.Columns("A").Cells.Count


ps: salut à eric (pendant la mi-temps du match qui te passionne !)
0
deniooo Messages postés 36 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 16 juin 2008 1
10 juin 2008 à 09:51
Parfait merci ça répond parfaitement à mes attentes :)

Une petite précision néamoins, je pensais que la commande columns("A") ne renvoyais pas un range.. Je ne sais plus quand j'ai testé mais ça m'a choqué.. J'ai du me tromper ou il y a des conditions ?!
0

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

Posez votre question
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
10 juin 2008 à 10:09
bonjour

Effectivement la commande columns("A") ne renvoye pas un range.

Par contre, tu peux avoir le nombre de cellules ("cells") la composant.
0