[Excel Macro] recherche, parcours
Résolu
deniooo
Messages postés
36
Date d'inscription
Statut
Membre
Dernière intervention
-
ellimac_zero -
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.
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:
- [Excel Macro] recherche, parcours
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Déplacer colonne excel - Guide
5 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
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
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
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
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.
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.
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
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
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
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.. -_-'
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.. -_-'
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 ?