Bonjour les partisans d'Excel.
Comment puis-je modifier ce code pour qu'il fonctionne sur mon classeur ci-dessous. Cela ne semble pas fonctionner correctement.
Soyez patient avec moi car ma langue maternelle est l'anglais.
Sub Copy_Extract()
Dim ARR1(1 To 14)
ARR1(1) = "10-YEAR US"
ARR1(2) = "SILVER-XAG"
ARR1(3) = "GOLD-XAU"
ARR1(4) = "RUB"
ARR1(5) = "CAD"
ARR1(6) = "CHF"
ARR1(7) = "MXN"
ARR1(8) = "GBP"
ARR1(9) = "JPY"
ARR1(10) = "EUR"
ARR1(11) = "BRL"
ARR1(12) = "NZD"
ARR1(13) = "ZAR"
ARR1(14) = "AUD"
Application.ScreenUpdating = False
With Sheets("Copy_Extract")
DT = .ListObjects (1) .DataBodyRange (1, 2)
For i = 1 To 14
If DT <> Sheets (ARR1 (i)). ListObjects (1) .DataBodyRange (1, 1) Then
Sheets (ARR1 (i)). Range ( "A2: I2" ) .ListObject.ListRows .Add (1)
For j = 1 To 7
Sheets (ARR1 (i)). ListObjects (1) .DataBodyRange (i, j) = .ListObjects (1) .DataBodyRange (i, j + 1)
Next
Sheets (ARR1 (i)). ListObjects (1) .DataBodyRange (i, 9) = .ListObjects (2) .DataBodyRange (i, 1)
End If
With Sheets(ARR1(i))
.Range ( "A3: I3" ) .Copy
.Range ( "A2: I2" ) .PasteSpecial Paste: = xlPasteFormats
End With
Next
.[A17].Select
Application.ScreenUpdating = True
End With
End Sub
Je ferai de mon mieux pour l'expliquer étape par étape ...
# 1 Sur l'onglet "Copy_Extract". J'ai 14 lignes de données, de la ligne 2 à la ligne 15.
Les données sont mises à jour sur les mêmes lignes sur les mêmes cellules sur une base hebdomadaire.
# 2 Chaque ligne de données représente une feuille de calcul.
Donc en d'autres termes:
14 lignes dans l'onglet "Copy_Extract" représentent 14 feuilles de calcul ...
Les données de la ligne 2 «BILLETS AU TRÉSOR DES 10 ANS AUX ÉTATS-UNIS - CHICAGO BOARD OF TRADE» sont transférées dans l'onglet «10 ANS aux États-Unis».
Rangée # 3 «SILVER - COMMODITY EXCHANGE INC.» les données sont transférées dans l'onglet "SILVER-XAG"
Rangée 4 «GOLD - COMMODITY EXCHANGE INC.» les données sont transférées dans l'onglet "GOLD-XAU". Etc. J'espère que vous avez la photo.
Je vais donner un exemple de la ligne n ° 2, à copier,
Une fois que vous avez compris l'exemple. Tout s'applique aux autres lignes de l'onglet "Copy_Extract".
Maintenant
Comment puis-je créer une macro pour:
# 1 Insérez une ligne vide «Toujours», dans la ligne 2 de l'onglet «10 ANS US». "Sans déplacer le graphique". Ensuite.
# 2 Copiez les données de l'onglet "Copy_Extract" sur les cellules B2, C2, D2, E2, F2, G2, H2 et I2. ensuite
# 3 Collez les données "B2, C2, D2, E2, F2, G2, H2 et I2 dans l'onglet" 10-YEAR US "dans A2, B2, C2, D2, E2, F2, G2 et I2
Remarque: Les dernières données ne sont pas collées dans "H2" dans l'onglet "10 ANS US".
# 4 Pour créer une formule dans l'onglet "10 ANS US" dans H2, qui est "= F2-G2"
# 5 La macro doit être conçue de manière à ne pas dupliquer les données si elle n'a pas été mise à jour de l'onglet "Copy_Extract" à l'onglet "10-YEAR US".
C'est tout. L'espoir est clair à comprendre.
Merci