Comment faire un For each cells dans le sens vertical

Salut à tous,

Ma boucle sur des cellules via un for each se fait dans le sens horizontal et je souhaiterai qu'elle se fasse plutôt verticalement, sauriez vous comment faire svp?

Merci pour votre aide ;)

Bonjour,

Il faudra faire une double boucle me semble-t-il.

Genre pour une boucle de A1 à G50 :

For i = 1 to 7

For j = 1 to 50

Cells(i, j) = ton code ici

Next j

Next i

Bonjour papa noel,

Merci pour ta réponse.

Oui je veux éviter ça justement ,car je voulais faire un for each pour éviter d'avoir 2 boucles for en fait.
Il n'existe donc aucune solution si je comprends bien...

Bonjour le fil, bonjour le forum,

Pas sûr d'a voir bien compris le problème... Un For Each Cel in Range devrait faire l'affaire non ?

Dim PL As Range
Dim Cel As Range

Set PL = Range("A1:A50")
For Each Cel In PL
'le code
Next Cel

Édition :
Ooops désolé, je viens de comprendre. Ma réponse est inappropriée ! Celle de JoyeuxNoel me semble mieux indiquée...

Bonjour à tous,

Une proposition en passant par la value :

le code :

Sub test()
Dim V As Variant

    For Each V In ActiveSheet.Range("A1:B3").Value
        Debug.Print V
    Next V

End Sub

Pierre

Oua pierrep56, ça marche t'es trop fort!!! :O.

Je savais pas qu'en faisant une recherche de variant plutôt qu'une cellule on pouvait changer le sens de recherche :O Mais comment ça se fait?

tout marche nikel en fait lol merci beaucoup

Re Pierre, en fin de compte j'ai un petit soucis, c'est qu'en faisant ça je n'arrive plus à récupérer l'adresse de la cellule. Comment je fais du coup? ;(
dans ma boucle moi j'agis ensuite sur les adresses, classiquement, comme ceci (et sans le "value" du coup)

For Each c In ActiveSheet.Range("A1:B3") 'plus de value du coup
Debug.Print c.address
Next V

Mais en agissant sur value, lorsque je fais c.address, ça ne marche plus (logique du coup vu que je lui demande de chercher des valeurs).

Bonjour,

avec .Value tu te retrouves avec un tableau de valeurs et plus la collection de ranges.
Avec For Each tu n'as pas le choix, c'est le parcours de vba.
Pas d'autres choix que de boucler par colonne puis par ligne.

Ou bien comme tu connais la ref en cours, tu peux appliquer le traitement prévu pour sa colonne via un test.
eric

Salut à tous,

Même pas peur

Ici avec value je récupère la valeur et l'adresse

Pierre

Oups, rectif

Astucieux, bravo
Ca complique quand même un peu par rapport à une double boucle
eric

Ouaaa... Impressionnant Pierre... Jamais j'aurai eu l'idée de faire un truc pareil, tu gères. Au delà de mon besoin, ta réponse est très instructive, je trouve ça super intéressant. (j'avoue même devoir lire plusieurs fois les calculs de ta fonction tellement ce que tu as fait est simple et complexe à la fois ^^).

Je ne fais jamais des petits calculs comme ça car je m'arrange toujours pour utiliser des Worcksheetfunction ou autres, afin de me simplifier la vie. Mais je devrai + m'habituer à trouver ce genre de calculs (je suis pas bon en calcul mental en fait, c'est mon défaut). Bref je suis admiratif.

Je vais réfléchir quelle solution s'intègrera harmonieusement à mon programme entre les 2 boucles for classique (que je voulais éviter car je trouve le for each plus rapide à écrire et ça fait moins de lignes haha) et la solution de Pierre avec la fonction...

Merci beaucoup Pierre et Merci Eric et Thauthème.

Excellente soirée ;)

Rechercher des sujets similaires à "comment each sens vertical"