Bonjour à tous,

Je mets en place une macro qui je pense peut être optimisée. Pour ceci, j'aimerai savoir comment je peux faire pour regrouper plusieurs range en un seul afin de renseigner directement une variable tableau.

Actuellement je fais ceci:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
j = 0 'variable clé
Set WB_a = Workbook("Archives.xls")
With WB_a.Worksheets("Liste T&F")
     DL_a = .Columns(1).Find("*", , , , xlByRows, xlPrevious).Row
     'Calcul de la dernière ligne
     Set RG_a = .Range(.Cells(3, 1), .Cells(DL_a, 1)) 'définit le range de la feuille
End With
montab() = RG_a.Value 'ajoute le range au tableau
 
Set MyDico = CreateObject("Scripting.Dictionary")
For i = LBound(montab, 1) To UBound(montab, 1)
        MyDico.Add j, Trim(CStr(montab(i, 1))) 'ajoute les données de montab au dico
        j = j + 1
Next i
' refaire de même avec une autre feuille etc...

J'ai 4 feuilles dont le range est identique autrement dis rien ne cahgne dans le code à part le nom de la feuille soit:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
With WB_a.Worksheets("Liste T&F")
Le but est donc de renseigner directement mon dictionnaire avec toutes les données sans devoir recopier ce code 4 fois (car j'ai 4 feuilles différentes) juste en changeant le nom de la feuille


Merci d'avance de votre aide