VBA - Récupérer des données d'un classeur fermé [Fermé]

- - Dernière réponse :  andrea - 2 mai 2016 à 09:20
Bonjour à tous ,

Je début en VBA et j'ai le problème suivant :

J'ai un fichier A et un fichier source. je souhaite extraire des données du fichier source pour les afficher dans le fichier A. J'ai donc mis en place un lien entre les deux fichiers. Cependant, cela nécessitais l'ouverture du fichier source, pour que le fichier A ce mette à jour.

j'ai donc ecrit le code suivant, que j'ai réussis à avoir à l'aide d'un utilisateur:


Sub ImporterDonneesSansOuvrir()

'Déclaration variable chemin et nom en texte
Dim Cheminsource As String
Dim Fichiersource As String

'Définition contenu variable
Cheminsource = "I:\G_AMEC\ETAT AMEC2\Etat AMEC 2 \" '
Fichiersource = "Etat AMEC 2 (version 2).xlsm"

'Création d'une plage de remontée de données à partir du fichier source fermé sinon bug, de la feuille calculs et de la plage cellule voulue
ThisWorkbook.Names.Add "plage", _
RefersTo:="='" & Cheminsource & "[" & Fichiersource & "]calculs'!H9"


With Worksheets("RECAP") ' feuille du fichier A

Worksheets("RECAP").Range("F49").Value = "=plage"
End With

End Sub



Mais ce code affiche 0 et non la valeur voulue ... Avez vous une idée ?

merci d'avance
Afficher la suite 

2 réponses

Meilleure réponse
3
Merci
Patrice33740 , super ca marche ! merci beaucoup !

Seulement, lorsque j'execute le programme, il me redemande de remettre à jour les valeurs : une boite de dialogue s'ouve et je dois selectionner le fichier source. Sais tu comment contourner cette boite de dialogue ?

Merci encore

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 63277 internautes nous ont dit merci ce mois-ci

Patrice33740
Messages postés
7856
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
6 décembre 2019
1243 -
Re,

Si la boite de dialogue apparait c'est que soit le Cheminsource, soit le Fichiersource ne sont pas corrects ou encore qu'il n'y a pas de feuille "calculs" dans le fichier source.
ok, merci de ta réponse, je vais essayer de voir ce qui cloche!
Messages postés
7856
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
6 décembre 2019
1243
0
Merci
Bonjour Essaies :
Sub LireFichierFermé()
Dim Fichiersource As String
Dim Cheminsource As String
Dim Formule As String
  Cheminsource = "I:\G_AMEC\ETAT AMEC2\Etat AMEC 2 \"
  Fichiersource = "Etat AMEC 2 (version 2).xlsm"
  Formule = "='" & Cheminsource & "[" & Fichiersource & "]calculs'!H9"
  With Worksheets("RECAP").Range("F49")
    .Value = Formule
    .Value = .Value
  End With
End Sub