Bonjour,
Merci pour votre code vba qui raccourcit grandement celui que j'ai élaboré lors de mes tests.
J’essaie de comprendre d'avantage le fonctionnement du code proposé au lieu de le reprendre bêtement.
Public Sub NumMonths()
Dim tbl, arr(), i As Long
With ActiveSheet
tbl = .Cells(1).CurrentRegion.Value
For i = 2 To UBound(tbl)
tbl(i, 2) = month("1/" & tbl(i, 1))
Next i
.Cells(1).CurrentRegion.Value = tbl
End With
End Sub
La seconde ligne, j'ai compris la définition des variables, la première (tbl) en tant que tableau, la seconde (i) en tant que valeur numérique.
Ensuite on travail sur la feuille active.
Si je comprends correctement la suite du code, on demande en VBA à lire le contenu de la cellule 1 d'Excel afin de récupérer la plus grande valeur non vide de la colonne A (UBound), mais comment Excel détermine la colonne de travail ? Est-ce à cause de Cells(1) ?
La suite avec le For i = 2 indique de démarrer la boucle à la ligne 2 jusqu'à la dernière ligne trouvé avec UBound précédemment ?
Et dernière ligne ou je pêche dans sa compréhension : tbl(i, 2) = month("1/" & tbl(i, 1))
Comment cette ligne parvient-elle à associer le mois en lettre à un chiffre correspondant ? Je n'arrive pas à assimiler son fonctionnement.
Merci à vous.