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:
Pas de soucis avec lui et ça marche assez bien pour un premier jet ! Mon probleme arrive ...
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
J'ai 25 équipements différents. j'ai commencé à rédiger mes lignes comme ceci :
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'
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")
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 ...
J'avoue ne pas être encore à l'aise avec la notion de page parente et le .select, je continue à travailler cela !
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
Merci si une âme charitable se penche sur mon petit projet personnel !
Partager