Bonjour,
Je suis confronté à un problème avec du code VBA pour gérer des données dans un tableau (listobject).
J’explique mon problème et je l’illustre par un exemple.
J’ai un tableau (qui comporte de nombreuses lignes), Tableau1, je souhaite associer à chaque nom un code numérique.
Nom Code
Louis
Jean
Paul
Charles
Léopold
Sébastien

J’ai écrit le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
Sub test2()
Dim cellule As Range
Dim plage As Range
Dim i As Integer
Set plage = Range("Tableau1").Columns(2)
i = 0
For Each cellule In plage
    i = i + 1
    cellule.Value = i
Next
End Sub
Et j’ai obtenu le résultat suivant :

Nom Code
Louis 1
Jean 1
Paul 1
Charles 1
Léopold 1
Sébastien 1

En fait, la boucle For each est parcourue une seule fois. Je ne comprends pas ?

En exécutant le code suivant, j’obtiens le résultat que j’attends :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub test1()
 
Dim cellule As Range
Dim plage As Range
Dim i As Integer
 
Set plage = Range("Tableau1")
 
i = 0
For Each cellule In plage
    i = i + 1
    cellule.Value = i
Next
 
End Sub
Nom Code
Louis 1
Jean 2
Paul 3
Charles 4
Léopold 5
Sébastien 6

Est-ce que quelqu’un peut m’expliquer pourquoi le premier code ne fonctionne pas ?

Merci d’avance pour votre aide.