Bonjour les gens,

Voila ma situation !
J'ai besoin d'utiliser Excel afin de comparer différents résultats concernant un type de produit, et ce, d'une année à l'autre.
C'est traité manuellement et je souhaitais découvrir les macro disponibles sous Excel avec cette occasion !

J'ai touché un peu en programmation ( Python & C++) mais il y a plus de 10ans, ça passe ...

contexte :
Mes mesures sont dans deux fichiers Excel avec 1 feuille pour chaque produit
Je souhaite récupérer des valeurs ( une formule) dans un troisième fichier qui va synthétiser le tout annuellement.
Je débute en VBA, il y a surement des erreurs ( optimisations). Attention les yeux !

code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
Sub Module1()         'ce module sert à sélectionner les fichiers de mesure de l'année n & n-1 manuellement et de l'ouvrir
 
Dim Cls_Anciennes_Mesures   As Workbook
Dim Cls_Nouvelles_Mesures   As Workbook
Dim Cls                     As Workbook
 
Set Cls = ActiveWorkbook
 
'/////Ouverture de l'ancien fichier de mesure/////
CreateObject("WScript.Shell").Popup ("Selectionner le fichier de mesure de l'an dernier"), 3
Anciennes_Mesures = Application.GetOpenFilename("Fichiers Excel (*.xlsx), *.xls")
If Anciennes_Mesures <> False Then
    Workbooks.Open Filename:=Anciennes_Mesures
End If
Set Cls_Anciennes_Mesures = Workbooks.Open(Anciennes_Mesures)
 
'/////Ouverture du nouveau fichier de mesure/////
CreateObject("WScript.Shell").Popup ("Selectionner le fichier de mesure de cette année"), 3
Nouvelles_Mesures = Application.GetOpenFilename("Fichiers Excel (*.xlsx), *.xls")
If Nouvelles_Mesures <> False Then
    Workbooks.Open Filename:=Nouvelles_Mesures
End If
Set Cls_Nouvelles_Mesures = Workbooks.Open(Nouvelles_Mesures)
 
End Sub
Pas de soucis avec lui et ça marche assez bien pour un premier jet ! Mon probleme arrive ...

J'ai 25 équipements différents. j'ai commencé à rédiger mes lignes comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Workbooks("20220530.xlsx").Sheets("Appareil_1").Range("A16:A216").Copy Destination:=Workbooks("synthese.xlsm").Sheets("Appareil_1").Range("A3:A203")
et cela pour les 25. J'ai souvenir de la notion de tableau et de pointeur. Comment puis-je écrire mon choix de feuille avec celui ci si c'est réalisable ? dans le genre .Sheets(tableau(*i)). Je souhaite créer un tableau qui liste ces différents modèles et une boucle for pour exécuter la commande de manière 'générique'

Question bonus !
Comment faites vous pour copier le résultat d'une formule sur un autre fichier Excel ? j'ai rédigé celui ci mais je pense que ça va me sauter au visage sous peu ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
/////Copie des résultats onglet Appareil_1/////
 
    Windows("20220530.xlsx").Activate
    Sheets("Appareil_1").Select
    Range("D16:D216").Select
    Selection.Copy
    Windows("synthese.xlsm").Activate
    Sheets("Appareil_1").Activate
    Range("B3:B203").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
J'avoue ne pas être encore à l'aise avec la notion de page parente et le .select, je continue à travailler cela !

Merci si une âme charitable se penche sur mon petit projet personnel !