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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| Option Explicit
Sub Copie()
Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet, ws4 As Worksheet
Const PremL1 = 1 'Première ligne de données dans la feuille 1
Const PremC1 = 1 'Première colonne de données dans la feuille 1
Dim DerL1 As Long 'Dernière ligne de données dans la feuille 1
Dim DerC1 As Long 'Dernière colonne de données dans la feuille 1
Dim Col As Long
Dim Lig As Long
Dim Lign As Long
Set ws1 = Worksheets("Données brutes") 'L'objet Feuille 1 est attribué à la variable ws1
Set ws2 = Worksheets("Soustraction") 'L'objet Feuille 2 est attribué à la variable ws2
Set ws3 = Worksheets("Normalisation") 'L'objet Feuille 3 est attribué à la variable ws3
Set ws4 = Worksheets("Dérivée")
'Recherche de la dernière ligne renseignée dans la colonne A de la feuille 1
DerL1 = ws1.Range("A" & ws1.Rows.Count).End(xlUp).Row
'Recherche de la dernière colonne renseignée dans la ligne 1 de la feuille 1
DerC1 = ws1.Cells(1, ws1.Columns.Count).End(xlToLeft).Column
'Recopie de la colonne A de la feuille 1 dans les feuilles 2 et 3
ws1.Range("A:A").Copy ws2.Range("A:A")
ws1.Range("A:A").Copy ws3.Range("A:A")
ws1.Range("A:A").Copy ws4.Range("A:A")
'soustraire la colonne B de la feuille 1 à toutes les autres colonnes pour renseigner la feuille 2
For Col = PremC1 To DerC1 - 2
For Lig = PremL1 To DerL1
ws2.Cells(Lig, Col).Offset(0, 1) = ws1.Cells(Lig, Col).Offset(0, 2) - ws1.Cells(Lig, PremC1 + 1)
Next Lig
Next Col
'soustraire la ligne 1090 de la feuille 2 à toutes les autres lignes pour renseigner la feuille 3
For Col = PremC1 To DerC1 - 2
For Lig = PremL1 To DerL1
ws3.Cells(Lig, Col + 1) = ws2.Cells(Lig, Col + 1) - ws2.Cells(1090, Col + 1)
Next Lig
Next Col
'dérivée première de la feuille 3 pour renseigner la feuille 4
For Col = PremC1 To DerC1 - 2
For Lig = PremL1 + 1 To DerL1 - 1
ws4.Cells(Lig, Col + 1) = (ws3.Cells(Lig + 1, Col + 1) - ws3.Cells(Lig - 1, Col + 1)) / (ws3.Cells(Lig + 1, 1) - ws3.Cells(Lig - 1, 1))
Next Lig
Next Col
'Libère les ressources
Set ws1 = Nothing
Set ws2 = Nothing
Set ws3 = Nothing
Set ws4 = Nothing
End Sub |
Partager