Formules de calcul écrasées après exportation

Bonjour,

Dans mon fichier DONNEES, j’exporte des données dans le fichier REPORTING.

Dans ce fichier DONNEES à la feuille Tréso ,de la colonne J, j’ai des formules de calcul.

Je n’arrive pas à modifier dans le code de la macro pourquoi une fois les données qui sont exportées les formules de calcul sont écrasées.

Merci de votre aide.

Sub Mise_à_jour_REPORTING()

Workbooks.Open Filename:="C:\Test\REPORTING.xlsx"

Windows("DONNEES.xls").Activate

Sheets("Tréso").Select
    Range("A2:J77").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Sheets("Macro").Select

Dim WsS As Worksheet, WsC As Worksheet
Dim JourJ As Integer, DerJour As Integer
Dim PremLigne As Long, DerLigne As Long
Dim i As Byte
Dim PlageàCopier As Range
    Set WsS = ThisWorkbook.Worksheets("Tréso") 'Classeur Source (DONNEES.xls)
    Set WsC = Workbooks("REPORTING.xlsx").Worksheets("Tréso") 'Classeur Cible
    'On dédertmine la date du jour indiqué en A2
    JourJ = Weekday(WsS.Range("A2"), 2)
    'On effectue la copie de A2 à J77
    Set PlageàCopier = WsS.Range("A2:L" & WsS.Range("A" & Rows.Count).End(xlUp).Row)
    PlageàCopier.Copy WsC.Range("A" & WsC.Rows.Count).End(xlUp).Offset(1)
    ''Si on est dans le cas où le jour en A2 est un vendredi
    'et le dernier jour indiqué en colonne A (avant copie) est un jeudi
    If JourJ = 5 Then
        For i = 1 To 2
            PremLigne = WsC.Range("A" & Rows.Count).End(xlUp).Row + 1
            DerLigne = PremLigne + PlageàCopier.Rows.Count - 1
            PlageàCopier.Copy WsC.Range("A" & PremLigne)
            With WsC.Range("A" & PremLigne)
                .Value = .Value + i
                .AutoFill Destination:=WsC.Range("A" & PremLigne & ":A" & DerLigne), Type:=xlFillCopy
            End With
        Next i
    End If
    Set PlageàCopier = Nothing: Set WsC = Nothing: Set WsS = Nothing
    Application.CutCopyMode = False

End Sub
7donnees.zip (131.99 Ko)
5reporting.xlsx (9.38 Ko)

Bonjour, bonjour !

Afin de comprendre, juste comparer l'aide VBA de la méthode PasteSpecial et la ligne dans le code !

Ensuite voir l'aide de la méthode Range.Copy et son exemple …

Comme dans cet exemple, un bon code n'a pas besoin de sélectionner pour accéder aux cellules !

Ok, merci.

Bonjour,

Où est-ce que je dois mettre Range.Copy ?

Ici ?

Sheets("Tréso").Select
    Range("A2:J77").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Sheets("Macro").Select
Rechercher des sujets similaires à "formules calcul ecrasees exportation"