Re,
Pas de problème lio, pour ma part, je suis content de répondre à quelqu'un qui s'intéresse et s'investit dans son projet
🙂 et c'est tout à fait ce genre de fil que j'apprécie dans ce Forum...
Bon, en premier, si tu as rencontré
Set Tablo = Range('A1😀10').Value dans le Forum, alors tu peux tout de suite te dire que celui qui écrit ça, n'a pas testé son code, car tu te confronteras immédiatement à une erreur au lancement de la procédure...
Je vais tenter une explication...(je change les noms exprès pour que tu puisses mieux appréhender la chose....)
[ol][li]Si tu fais :
Dim Plage As Range
Set Plage = Range('A1😀10')
Tu définis la
variable Plage comme étant un
Objet Range. C'est à dire que, grâce à cette
variable, tu feras directement référence à une Plage de cellules sur la feuille et tu bénéficieras, non seulement des valeurs mais aussi de l'ensemble des propriétés, méthodes liées à ces cellules au travers de cette
variable. Plus qu'une
variable , c'est une
référence d'objet et c'est pourquoi l'instruction
Set devient ici obligatoire. Tu pourras donc faire ensuite : Plage.Value = 10, Plage.ClearContents, Plage.Interior.ColorIndex = 6, Plage.Select... etc. Bref, tu manipules la variable Plage comme tu manipulerais une selection de cellules...[/li]
[li]Si tu fais :
Dim Tablo As Variant
Tablo = Range('A1😀10').Value
Ici, la notion de
Value prend tout son sens. Tu viens de définir une variable (de type variant). Comme pour toute variable 'classique', celle-ci te permet de stocker uniquement des valeurs et comme elle est de type Variant, tu peux donc y stocker tout type de valeurs.
Ainsi, lorsque tu fais 'Tablo = Range('A1
😀10').Value', tu lui affectes les valeurs de la plage A1:A10 et cette variable devient automatiquement une variable Tableau à 2 dimensions (Lignes et Colonnes) pour y stocker ces valeurs (comme dans la plage d'origine).[/li][/ol]
Voilà, j'espère avoir un peu dégrossi le sujet et t'avoir un peu aidé à comprendre le principe...
Cordialement,