[Excel Macro] Méthode de recherche

Résolu
deniooo Messages postés 36 Statut Membre -  
gbinforme Messages postés 14930 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.
Configuration: Windows XP
Internet Explorer 6.0

5 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
    1. deniooo Messages postés 36 Statut Membre 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
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
  4. deniooo Messages postés 36 Statut Membre 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

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

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