Bonjour et sur le forum,
Je ne vois pas le fichier Excel mais je pense que la première ligne de ta feuille ne sert pas pour la macro, du coup pour bien dimensionner le tableau, on "snobe" la première ligne en réduissant de 1 le nombre de lignes du tableau, tu vois d'ailleurs par la suite que le tableau prend la valeur colonne A, ligne i+2, je dis qu'on réduit de 1 ligne alors qu'on fait -2 car un tableau dimensionné de cette manière commence à la ligne 0, si tu mets 3 en dimension, il aura en fait 4 lignes...
Pour être honnête avec toi je n'aurais pas écrit le code comme ça, car ça permet plus de s'embrouiller qu'autre chose, une version équivalente serait:
Sub enreg_tab()
derniere_ligne = Range("a1").End(xlDown).Row
Dim tab_exemple()
ReDim tab_exemple(2 To derniere_ligne, 1 To 3)
For i = 2 To derniere_ligne
tab_exemple(i, 1) = Range("a" & i)
tab_exemple(i, 2) = Range("b" & i)
tab_exemple(i, 3) = Range("c" & i)
Next i
End Sub
Tu remarqueras que j'utilise une syntaxe que tu ne connais peut-être pas encore: 2 to derniere_ligne, qui permet de dire que la première ligne du tableau est la ligne 2 et que le tableau va jusqu'à la ligne "derniere_ligne", j'ai fait la même chose pour les colonnes en indiquant 1 to 3. De cette façon on peut directement mettre i variant de 2 à la dernière ligne (on voit mieux qu'on snobe la première ligne), et j'ai adapté la suite du code aux dimensions du tableau, 1,2 et 3 pour les colonnes, et directement i des deux côtés pour la ligne
Petit bonus, on peut faire l'opération que tu vois ici de façon beaucoup plus rapide en écrivant:
Sub enreg_tab()
derniere_ligne = Range("a1").End(xlDown).Row
tab_exemple = Range("a2", "c" & derniere_ligne)
End Sub
ici ton tab_exemple prend directement en valeurs et en dimensions la plage de cellules que tu lui donnes, cette façon de déclarer un tableau a quelques spécificités : le tableau commence toujours par la ligne 1 et la colonne 1, il est toujours à 2 dimensions, ligne et colonne.
Si tu as de nouveau des questions n'hésite pas!