[Excel Macro] recherche, parcours

Résolu
deniooo Messages postés 36 Statut Membre -  
 ellimac_zero -
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

Merci.
A voir également:

5 réponses

yg_be Messages postés 24281 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 585
 
Suggestion :

numlignes = Application.Sheets(1).UsedRange.Rows.Count

For i = 1 To numlignes
If (Cells(i, 1).Value <> "") Then
n = n + 1
Cells(i, 1).Value = ""
End If
Next i
0
deniooo Messages postés 36 Statut Membre 1
 
Merci pour les tuyaux notamment UsedRange !!
C'est utile mais ce n'est malheureusement aps ce que je cherche.
Il me faudrait l'équivalent de rows mais pour les collonnes.
genre 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 colonnes utilisées.

Une idée ?
0
yg_be Messages postés 24281 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 585
 
Toutes les colonnes d'un sheet ont le même nombre de lignes "utilisées".
Si tu veux parcourir une autre colonne que la colonne 'A', il suffit de remplacer le '1' dans Cells(i, 1). par le numéro de la colonne.
0
deniooo Messages postés 36 Statut Membre 1
 
Comment ça toutes les colonnes ont le même nombre de lignes utilsées ? c'est usedrange qui fait ça ?

Donc il n'y a pas d'outil qui sélection une colonne et renvoi un range ?!
0
yg_be Messages postés 24281 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 585
 
Pour Excel, toutes les colonnes ont le même nombre de lignes, et toutes les lignes ont le même nombre de colonnes : Excel voit chaque feuille comme un rectangle.

Je suis reparti de votre code de départ (le "for each" est assez séduisant).
Je pense que l'exemple ci-dessous vous conviendra :

Sub testccm2()

Dim plage As Range
Dim cel As Range
Dim n As Long
Dim i As Long

Set plage = Application.Sheets(1).UsedRange.Columns("A").Cells
n = 0
i = 0
For Each cel In plage
i = i + 1
If (cel.Value <> "") Then
n = n + 1
cel.Value = "???!"
End If
Next

End Sub
0
deniooo Messages postés 36 Statut Membre 1
 
Ahhh oui là ça me plait :D
je viens d'apprends que le clomuns("A") ne renvoi pas de range (ça je le savais) mais qu'on pouvait compter et utiliser les cells de cette columns..
Set plage = Application.Sheets(1).UsedRange.Columns("A").Cells c'est jsute ce qu'il me fallait!

Vraiment pas habitué à ce code.. je comprends pas pourquoi on peut trouver des cellules dans un objet qui n'est pas range.. -_-'
0

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

Posez votre question
ellimac_zero
 
=> Application.Sheets(1).UsedRange.Columns.Count ;)
0