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

derniere_ligne = range("a1").end(xldown).row

Pourquoi A1 et non pas la denrière ligne de notre base ?

L’intérêt est justement de trouver quel est le numéro de la dernière ligne d’une plage évolutive (plage dynamique).

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

Redim tab_exemple(dernière ligne - 2, 2)

Pourquoi soustraire -2 à dernière ligne ? je ne comprend pas

Le but est de déterminer l’indice supérieur de la première dimension de tab.

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+

Génial !

Merci beaucoup !

Rechercher des sujets similaires à "cours numero vba"