Bonjour
Malgré des réponses sur le net et sur ce forum à des questions proches de la mienne, je n'arrive pas à mes fins.
Je souhaite obtenir dans un fichier synthèse contenant 3 onglets : un onglet Parmètres et 2 onglets Résultats, la somme des cellules des 2 mêmes onglets des fichiers paramètrés
Je dois mal m'y prendre avec Application.EnableEvents . Non ?

Car dans ces fichiers il y a des macros qui s'exécutent à l'ouverture (Workbook_Open), ce que je ne veux pas.
Je pensais résoudre mon pb avec Application.EnableEvents = False
mais cela n'empêche pas l'exécution du code contenu dans Workbook_Open
Comment faire , en dehors de supprimer ce code dans chaque fichier ?

Merci pour votre aide
Voici une partie du code dans le fichier destinataire (synthèse) --> le coeur du problème en rouge
Bien cordialement

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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
    Répertoire = ActiveWorkbook.Path & "\"
    FichierRéception = ActiveWorkbook.Name
    OngletRéception1 = "2.2 Mensu Prod Org"
    OngletRéception2 = "2.5 Mensu Force de Travail"
    
    Ligne = 10
    Chaine = Workbooks(FichierRéception).Worksheets("Paramètres").Cells(Ligne, 4)            ' Colonne  D
    RepertoirePal = Workbooks(FichierRéception).Worksheets("Paramètres").Cells(8, 3)  ' Colonne C
    RepertoireSource = RepertoirePal & Workbooks(FichierRéception).Worksheets("Paramètres").Cells(Ligne, 3) & "\" ' Colonne C
    Fichier = Dir(RepertoireSource & Chaine & ".xls")
    
    ' On vide la colonne A qui contient la date d'intégration des données de chaque fichier
    Workbooks(FichierRéception).Worksheets("Paramètres").Unprotect ("1611")
    Workbooks(FichierRéception).Worksheets("Paramètres").Range("A10:A100").Select
    Selection.ClearContents
    
    Workbooks(FichierRéception).Worksheets("Paramètres").Range("A10").Select
    Do Until Fichier = ""
        'Application.EnableEvents = False
        ' Je n'arrive pas à interdir lors de l'ouverture des fichiers Maquette du 
        ' l'exécution du code figurant dans Workbook_Open
        ' Je suis donc contraint de supprimer le code contenu dans chaque fichier dans Workbook_Open ou alors trouver une solution
        
        With CreateObject("Excel.Application").Workbooks.Open(RepertoireSource & Fichier)
        On Error Resume Next
        .Application.EnableEvents = False
        
          ' Etape 1 : Onglet OngletRéception1
          For LigneSource = 6 To 121
            For Colonnesource = 4 To 27
                Workbooks(FichierRéception).Worksheets("Paramètres").Cells(Ligne, 1) = "Onglet 1, Lig " & LigneSource & " Col " & Colonnesource
                If Ligne = 10 Then
                    Workbooks(FichierRéception).Worksheets(OngletRéception1).Cells(LigneSource, Colonnesource) = .Worksheets(OngletRéception1).Cells(LigneSource, Colonnesource)
                Else
                    Workbooks(FichierRéception).Worksheets(OngletRéception1).Cells(LigneSource, Colonnesource) = Workbooks(FichierRéception).Worksheets(OngletRéception1).Cells(LigneSource, Colonnesource) + .Worksheets(OngletRéception1).Cells(LigneSource, Colonnesource)
                End If
            Next Colonnesource
          Next LigneSource
          
          LigneSource = 128 ' pour Productivité en EUTC (intégration TGA)
          For Colonnesource = 4 To 27
                Workbooks(FichierRéception).Worksheets("Paramètres").Cells(Ligne, 1) = "Onglet 1, Lig " & LigneSource & " Col " & Colonnesource
                If Ligne = 10 Then
                    Workbooks(FichierRéception).Worksheets(OngletRéception1).Cells(LigneSource, Colonnesource) = .Worksheets(OngletRéception1).Cells(LigneSource, Colonnesource)
                Else
                    Workbooks(FichierRéception).Worksheets(OngletRéception1).Cells(LigneSource, Colonnesource) = Workbooks(FichierRéception).Worksheets(OngletRéception1).Cells(LigneSource, Colonnesource) + .Worksheets(OngletRéception1).Cells(LigneSource, Colonnesource)
                End If
          Next Colonnesource
          
          ' Etape 2 : Onglet OngletRéception1
          Dim LigneOnglet2
          LigneOnglet2 = Array(7, 12, 21, 29, 39, 43, 49, 55, 67, 78, 81, 85, 90, 93, 97)
          For Indice = 0 To 13
            LigneSource = LigneOnglet2(Indice)
            For Colonnesource = 3 To 14
                Workbooks(FichierRéception).Worksheets("Paramètres").Cells(Ligne, 1) = "Onglet 2, Lig " & LigneSource & " Col " & Colonnesource
                If Ligne = 10 Then
                    Workbooks(FichierRéception).Worksheets(OngletRéception2).Cells(LigneSource, Colonnesource) = .Worksheets(OngletRéception2).Cells(LigneSource, Colonnesource)
                Else
                    Workbooks(FichierRéception).Worksheets(OngletRéception2).Cells(LigneSource, Colonnesource) = Workbooks(FichierRéception).Worksheets(OngletRéception2).Cells(LigneSource, Colonnesource) + .Worksheets(OngletRéception2).Cells(LigneSource, Colonnesource)
                End If
            
            Next Colonnesource
          Next Indice
          
          Workbooks(FichierRéception).Worksheets("Paramètres").Cells(Ligne, 1) = "Intégré le " & Now()
            .Application.EnableEvents = True
            .Close False  ' ferme sans enregistrer les modifications éventuelles apportées au fichier source

        End With
        
FichierSuivant:
        Ligne = Ligne + 1
        Fichier = ""
        Chaine = Workbooks(FichierRéception).Worksheets("Paramètres").Cells(Ligne, 4) ' Colonne  D
        RepertoireSource = RepertoirePal & Workbooks(FichierRéception).Worksheets("Paramètres").Cells(Ligne, 3) & "\" ' Colonne C

        Fichier = Dir(RepertoireSource & Chaine & ".xls")
    Loop