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 :
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 dialogiue 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,