Bonjour, merci d'avance pour votre gentillesse

Je suis en train de basculer peu a peu des formules vers une approche macro.

Je suis sur un classeur qui utilise les formules que j'ai déjà créées dans un autre classeur.

Actuellement il procède de la sorte:
  1. copie des valeurs renseignées sur une première feuille de classeur 1
  2. collage de ces valeurs dans une feuille de classeur 2
  3. copie des valeurs de classeur 2
  4. collage des valeurs dans classeur 1


Je cherche à évoluer en ouvrant le classeur 2 en mode masqué faire mes manipulations et refermer ce classeur voire le garder en mémoire pour une prochaine fois.

J'ai parcouru de nombreuses pages dans ce forum mais il y a des choses qui m'échappent!

Voici mes deux codes: l'un marche mais m'oblige à ouvrir et refermer le classeur 2 manuellement.
L'autre quant à lui je l'ai fait en suivant des conseils sur ce forum mais il m'efface le contenu de classeur 1 et ne fait plus rien!!

merci d'avance.

code 1:
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
27
28
29
30
31
32
33
34
35
36
37
38
sub macro1
Windows("TARIF_VIERGE.xls").Activate
    Range("A4:D40").Select
    Selection.Copy
    Windows("CHIFFRAGE.xls").Activate
    ActiveWindow.SmallScroll Down:=-15
    Range("A4").Select
    ActiveSheet.Paste
    Range("A4:E40").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("TARIF_VIERGE.xls").Activate
    Range("A4").Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
    Windows("CHIFFRAGE.xls").Activate
    Range("A4:D40").Select
    Selection.ClearContents
    Windows("TARIF_VIERGE.xls").Activate
    Range("A41:D77").Select
    Selection.Copy
    Windows("CHIFFRAGE.xls").Activate
    ActiveWindow.SmallScroll Down:=-15
    Range("A4").Select
    ActiveSheet.Paste
    Range("A4:E40").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("TARIF_VIERGE.xls").Activate
    Range("A41").Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
    Windows("CHIFFRAGE.xls").Activate
    Range("A4:D40").Select
    Selection.ClearContents
    Windows("TARIF_VIERGE.xls").Activate
    Range("A4").Select
End Sub

code 2:
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
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
56
57
sub macro 2
Dim oExcel As Excel.Application
   Dim obExcel As Excel.Workbook 'Classeur Excel
   Dim osExcel As Excel.Worksheet 'Feuille Excel
 
 Set oExcel = CreateObject("excel.application")
 Set obExcel = oExcel.Workbooks.Open("C:\Documents and Settings\.Nissin\Mes documents\ESI\TARIFS FOURNISSEURS\CHIFFRAGE.xls")
 Set osExcel = obExcel.Worksheets("px de revient")
 
 oExcel.Visible = False
 
 
    Application.ScreenUpdating = False
    osExcel.Visible = True
 
    Windows("TARIF_VIERGE.xls").Activate
    Range("A4:D40").Select
    Selection.Copy
 
    osExcel.Select
    ActiveWindow.SmallScroll Down:=-15
    Range("A4").Select
    ActiveSheet.Paste
    Range("A4:E40").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("TARIF_VIERGE.xls").Activate
    Range("A4").Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
    osExcel.Select
    Range("A4:D40").Select
    Selection.ClearContents
    Windows("TARIF_VIERGE.xls").Activate
    Range("A41:D77").Select
    Selection.Copy
    osExcel.Select
    ActiveWindow.SmallScroll Down:=-15
    Range("A4").Select
    ActiveSheet.Paste
    Range("A4:E40").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("TARIF_VIERGE.xls").Activate
    Range("A41").Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
    osExcel.Select
    Range("A4:D40").Select
    Selection.ClearContents
    Windows("TARIF_VIERGE.xls").Activate
    Range("A4").Select
 
    osExcel.Visible = False
    Application.ScreenUpdating = True
    Set oExcel = Nothing
End Sub