Macro : problème de mise à jour sans ouvrir fichier

tomaix

XLDnaute Nouveau
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,
 
C

Compte Supprimé 979

Guest
Re : Macro : problème de mise à jour sans ouvrir fichier

Bonjour Tomaix et bienvenue sur ce forum ;)

Alors en regardant comme ça ...
1) Tu utilises apparemment une variable pour le chemin complet de ton fichier Chemin_Complet_MOAP
mais tu ne l'utilises pas dans ton ouverture ADO !?
Code:
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
& Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""


2) Tu n'utilises pas cette connexion pour importer les données
Code:
Range("B23").FormulaR1C1 = "=SUM('MED-FML-2010-000129.xlsx'!R10C46:R1500C46)/1000"


Voici un lien, qui je pense pourra t'aider
Ce site n'existe plus

A+
 

tomaix

XLDnaute Nouveau
Re : Macro : problème de mise à jour sans ouvrir fichier

Merci beaucoup Bruno !!
En bricolant avec tes infos; j'ai tout simplifié et cela marche :

Private Sub cmdValider_Click()

Dim Chemin As String
Dim Classeur As String
Dim Feuille As String
Dim PlageAT As String

Chemin = "C:\Users\E51973\Desktop\"
Classeur = "MED-FML-2010-000129.xlsx"
Feuille = "MED-FML-2010-000129"
PlageAT = "AT10:AT1500"
PlageAR = "AR10:AR1500"
PlageAW = "AW10:AW1500"

...Divers calculs...

Unload Me
End Sub

Par contre je souhaiterais pour une meilleure utilistaion pouvoir selectionner depuis ma boite de dialogue (déjà créée) différents fichiers et pas toujours le même.
Comment déclarer un chemin aléatoire ?

Merci d'avance pour ta réponse
 

Discussions similaires

Réponses
4
Affichages
969

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote