[Excel Macro] Méthode de recherche

Résolu
deniooo Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   -  
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   -
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   Statut Contributeur Dernière intervention   4 724
 
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   Statut Membre Dernière intervention   1
 
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 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
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   Statut Contributeur Dernière intervention   4 724
 
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   Statut Membre Dernière intervention   1
 
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   Statut Contributeur Dernière intervention   4 724
 
bonjour

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

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