objet Range issu d'un tableau (listobject)
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:
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:
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.