Obtenir des données à partir d'un chemin d'accès indiqué dans une cellule

Bonjour à tous,

Je suis nouveau sur ce forum, j'espère que j'aurai bien respecté la charte, que je viens de lire.

Après plusieurs heures de recherche, je n'ai pas trouvé réponse à ma question.

Je voudrais créer un fichier Excel utilisé comme template par mes collègues. Ce fichier irait rechercher automatiquement des données dans des tableaux sources.
Par exemple, dans ce template, en cellule A1, le collègue indique "[C:\Users\utilisateur\Documents\test1.xlsx]Feuil1" ==> le template va chercher des données dans le fichier test1.xlsx.
Ensuite si on change dans le template la valeur de A1 pour passer sur "[C:\Users\utilisateur\Documents\test1.xlsx]Feuil2" ==> le template va chercher des données dans le fichier test2.xlsx.

En d'autres mots, je voudrais donc faire varier une formule, par exemple =SOMME('[C:\Users\utilisateur\Documents\test1.xlsx]Feuil1'!A1:A20) en allant chercher les cellules A1:A20 soit dans test1.xlsx, soit dans test2.xlsx selon ce que le collègue indique dans le template.

A noter bien sûr que les fichiers test1.xlsx et test2.xlsx ont des formats similaires. Mais de toute façon, la gestion des formules etc., j'en fais mon affaire.

Merci d'avance

Bonjour,

Alors je ne suis pas du tout un expert en VBA, mais vu que j'ai fait quelque chose qui ressemblait à ca il y a peu, voici un bout de code qui peut t'aider.

J'ai adapté dans un truc existant donc c'est loin d'être top mais ca devrait fonctionner.

Sub Adaptformule()

    Set tws = ActiveSheet

'répertoire inscrit dans la cellule B1 et nom de la feuille en B2
    Set fich = Range("B1")
    feuille = Range("B2").Value

'on ouvre le fichier noté en B1 en activant la feuille notée en B2
        Set wb = Workbooks.Open(fich)
        Sheets(feuille).Activate

'on copie les valeurs dans le fichier et on ferme
            Range("A1:A20").Copy
        tws.Activate
            Range("A1:A20").Select
            Range("A1:A20").PasteSpecial Paste:=xlPasteAll

        wb.Close False
                MsgBox "traitement ok"
                Exit Sub

End Sub

En gros tu indiques le chemin complet du fichier en B1 et le nom de la feuille concernée en B2.

Et quand la macro est lancé ca mets à jour les valeur A1:A20 en fonction du fichier noté, et donc le résultat de ta formule notée plus loin.

A+

Bonjour,

Génial, merci pour ta réponse rapide ! C'est un bon début de code :-)

Je vais potasser là-dessus et tenter de construire quelque chose (je suis super débutant en VBA, car en gros j'ai simplement suivi le cours de Excel-Pratique).

A + !

Rechercher des sujets similaires à "obtenir donnees partir chemin acces indique"