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
| Sub Copie()
'Déclaration des variables
Dim ws1 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
'Attribution de valeurs
Set ws1 = Worksheets("Données brutes") 'L'objet Feuille 1 est attribué à la variable ws1
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 A2 à ADerL1-1 de la feuille 1 dans la feuille 4
ws1.Range(ws1.Cells(2, 1), ws1.Cells(DerL1 - 1, 1)).Copy ws4.Range("A1")
'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 - 1, 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
'ajout d'un classeur avec 1 feuille
Workbooks.Add 1
'copie des colonnes qui vont bien dans le nouveau classeur
ws4.[A:A].Copy [A1]
ws4.Cells(1, Col).Offset(0, 1).EntireColumn.Copy [B1]
'enregistrement au format texte
ActiveWorkbook.SaveAs ws0.[E14] & Col & ".txt", xlTextWindows
'fermeture du classeur texte
ActiveWorkbook.Close False
Next Col
'Libère les ressources
Set ws1 = Nothing
Set ws4 = Nothing
End Sub |
Partager