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 :
Et j’ai obtenu le résultat 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
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 :
Nom Code
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
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.
Partager