Cours numéro 10 VBA
Bonjour,
Dans votre cours vba sur les tableaux (numéro 10), je ne comprend pas pourquoi lors de la redim et avec la fonction end vous écrivez :
derniere_ligne = range("a1").end(xldown).row
Pourquoi A1 et non pas la denrière ligne de notre base ?
Deuxième question,
Redim tab_exemple(dernière ligne - 2, 2)
Pourquoi soustraire -2 à dernière ligne ? je ne comprend pas
Merci énirmémenet de votre aide,
Bonne journée
Bonjour TDI et
L’intérêt est justement de trouver quel est le numéro de la dernière ligne d’une plage évolutive (plage dynamique).derniere_ligne = range("a1").end(xldown).row
Pourquoi A1 et non pas la denrière ligne de notre base ?
Pour déterminer quel est le numéro de cette ligne, une solution consiste à se positionner sur la première cellule renseignée de la colonne (A1 par exemple pour la colonne A) puis de descendre dans cette colonne jusqu’à trouver la dernière cellule renseignée. Cette opération est réalisable avec Excel en sélectionnant la cellule A1 puis en appuyant sur fin puis flèche bas.
Si tu utilises l’enregistreur de macro, tu t’aperçois que cette opération se traduit par le code
Range("A1").Select
Selection.End(xlDown).Select
La dernière ligne renseignée correspond donc à Range("A1").End(xlDown).row
Le but est de déterminer l’indice supérieur de la première dimension de tab.Redim tab_exemple(dernière ligne - 2, 2)
Pourquoi soustraire -2 à dernière ligne ? je ne comprend pas
Le nombre d’éléments de la colonne A est égal au nombre de lignes – 1 (on enlève 1 car l’en-tête ne doit pas être compté), soit dernière ligne-1.
De plus, par défaut l'indice inférieur d'un tableau commence à 0 alors que la première ligne de la table est numérotée 1. L’indice supérieur de tab sera donc (dernière ligne-1)-1, soit dernière ligne-2.
A+