Bonjour à tous,

Je suis novice dans le développement et je dois créer une macro qui va chercher des informations dans un autre fichier sans l'ouvrir. En cherchant sur ce site, j'ai trouvé beaucoup d'informations intéressante et j'en suis arrivé à cela :

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
Private Sub cmdValider_Click()
 
    Dim Chemin_Fichier_Modele As String, Chemin_MOAP As String, Chemin_Complet_MOAP As String
 
 
    ' Chemin du Fichier MOAP
 
    Chemin_Complet_MOAP = TextBoxMOAP.Text
    Chemin_MOAP = TextNameMOAP.Text
    Chemin_Fichier_Modele = ThisWorkbook.Name
    ThisWorkbook.Worksheets("Suivi").Range("B1").Value = Chemin_Complet_MOAP
 
    ' Vérifie si un fichier a été choisie
    If TextBoxMOAP.Text = "" Then
        MsgBox "Choisissez un fichier Excel (xls ou xlsm)"
        TextBoxMOAP.SetFocus
 
    Else
        ' Désactive le mise à jour de l'écran
        Application.ScreenUpdating = False
 
        Application.DisplayStatusBar = True
 
        Application.StatusBar = "En cours..."
        DoEvents
 
        Dim Cn As ADODB.Connection
        Dim Fichier As String
        Dim NomFeuille As String, texte_SQL As String
        Dim Rst As ADODB.Recordset
 
 
            'Définit le classeur fermé servant de base de données
            Fichier = "C:\Users\E51973\Desktop\MED-FML-2010-000129.xlsx"
            'Nom de la feuille dans le classeur fermé
            NomFeuille = "MED-FML-2010-000129"
 
            Set Cn = New ADODB.Connection
 
            '--- Connection ---
            With Cn
                 .Provider = "Microsoft.Jet.OLEDB.4.0"
                 .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
                 & Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
                 .Open
            End With
 
 
            ' Montant décidés de l'année en cours
            Range("B23").FormulaR1C1 = "=SUM('MED-FML-2010-000129.xlsx'!R10C46:R1500C46)/1000"
 
            Cn.Close
            Set Cn = Nothing
 
 
    End If
End Sub

En fait, dans excel j'ai créé une boite de dialogue sur lequel je charge un fichier et qui ensuite est censé me modifier une cellule dans mon fichier de base.
Cependant cela marche que si j'ouvre le deuxième fichier. Pourquoi cela ?
C'est assez gênant pour mon application.

Je vous remercie d'avance pour votre aide.

Salutations,