Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Récupérer des informations dans un autre fichier

titine06

XLDnaute Junior
Bonsoir le forum !

Je centralise les informations du fichier "titine2" dans un fichier "titine".
Je récupère les données de:
  • la celulle A2
  • le fichier titine2.xlsx
  • l'emplacement C:\Users\Samsung\Desktop\Inventaire\

Pour cela j'utilise une formule:
='C:\Users\Samsung\Desktop\Inventaire\[titine2.xlsx]Feuil1'!$A$2

Cependant, l'emplacement, le nom du fichier et la cellule à récupérer peuvent changer.
Je souhaite que cette formule se base de 3 cellules afin de déterminer l'emplacement, le fichier, et la cellule à récupérer:

- D3 pour la cellule
- E3 pour l'emplacement
- F3 pour le fichier

Merci d'avance


Titine
 

Pièces jointes

  • titine.xlsx
    9.6 KB · Affichages: 48
  • titine.xlsx
    9.6 KB · Affichages: 52
  • titine.xlsx
    9.6 KB · Affichages: 52

JCGL

XLDnaute Barbatruc
Re : Récupérer des informations dans un autre fichier

Bonjour à tous,

Je renomme le fichier précédent pour éviter les ambiguïtés.

On est bien d'accord que tu renseignes les cellules D3 à G3....



Fonctionne chez moi sinon je n'aurais pas déposé...

A + à tous
 

Pièces jointes

  • Capture_1.png
    1.5 KB · Affichages: 73
  • Capture_1.png
    1.5 KB · Affichages: 75
Dernière édition:

titine06

XLDnaute Junior
Re : Récupérer des informations dans un autre fichier

Bonsoir tout le monde!!!

Mille excuses !! ca marche maintenant.. j'avais du faire une mauvaise manip..
En recréant un fichier test, nouvel emplacement .... ca marche !!

MERCIIIIIIIIIIIIIII et bonne année

Titine
 

JCGL

XLDnaute Barbatruc
Re : Récupérer des informations dans un autre fichier

Bonjour à tous,

C'est une fonction personnalisée : nul besoin de lancer une macro
Dans le fichier, tu tapes en H3 par exemple et tu tires vers le bas :
Code:
=RecupInfo(E3; F3; G3)



A + à tous
 

Pièces jointes

  • Capture_4.png
    13 KB · Affichages: 64
  • Capture_4.png
    13 KB · Affichages: 64

titine06

XLDnaute Junior
Re : Récupérer des informations dans un autre fichier

Rebonsoir à tous, désolé pour le précédent poste.


Donc grâce à vous, surtout à toi JCGL j'ai pu avancé dans mon fichier.
Mais je me suis rendu compte un peu tard... (beaucoup trop ) que j'ai 52*7*10 cellule à rapatrier.
Ce qui implique que je dois adapter/modifier le code énormément de fois. Non pas que j'ai la flemme, mais j'ai très peur de faire des erreurs (à la longue).

C'est pourquoi j'ai réadapter ma demande...

Ce que je souhaite (définitivement), c'est rapatrier des "plages" et non pas des cellules.
Je vous joint 2 fichier:
- la source : plage à rapatrier
- la saisie: zone où il faut copier les infos récupérées précédemment et où se déclenche la macro

Je ne sais cependant pas si c'est possible, car là ca devient vraiment costaud...
Merci d'avance pour vos retours/conseils.

Titine
 

Pièces jointes

  • Titine saisie.xls
    38 KB · Affichages: 38
  • Titine source.xls
    33.5 KB · Affichages: 33

titine06

XLDnaute Junior
Re : Récupérer des informations dans un autre fichier

Rebonsoir à tous !!

Ah non je n'avais pas vu

ah oui carrément une fonction personnalisée ! ouahh
Donc je résume, je dois télécharger ton ancien fichier xlsm du message #19

et ensuite, depuis celui-ci j'utilise la fonction "=RecupInfo"
Petite question elle ne prend pas en compte l'emplacement? (car je ne vois que 3 champs: fichier, feuille, cellule)

J'ai test, ca n'a pas l'air de marcher chez moi, dois-je faire une manip particulière?

merci d'avance

Titine
 

JCGL

XLDnaute Barbatruc
Re : Récupérer des informations dans un autre fichier

Bonjour à tous,

Il y a beaucoup plus simple :

VB:
Option Explicit


Sub Copie()
    Dim Emplacement As String, Fichier As String, Feuille As String, Plage, FCible, PCible
    Application.ScreenUpdating = 0
    With Workbooks("Titine Saisie.xls")
        Emplacement = Cells(3, 4)
        Fichier = Cells(3, 5)
        Feuille = Cells(3, 6)
        Plage = Cells(3, 7)
        FCible = Cells(3, 8)
        PCible = Cells(3, 9)


        Workbooks.Open Filename:=Emplacement & Fichier
        Range(Plage).Copy
        Windows("Titine Saisie.xls").Activate
        Sheets(FCible).Activate
        ActiveSheet.Range(PCible).Select
        ActiveSheet.Paste
        Application.DisplayAlerts = 0
        Windows(Fichier).Close
        Application.DisplayAlerts = 1
        Sheets("Feuil1").Select
        Application.ScreenUpdating = 1
    End With
End Sub

Avec tes derniers fichiers déposés...
Code à Copier ici et Coller dans un module standard du classeur "Titine Saisie.xls".


A + à tous
 
Dernière édition:

titine06

XLDnaute Junior
Re : Récupérer des informations dans un autre fichier

Rebonsoir !

Tout simplement parfait
Je suis comblée !!

Merci à toi GRAND JCGL ! tu m'as sauvée et montrée beaucoup beaucoup sur Excel ces jours ci !!
Joyeuse année à toi ! et à bientôt !!

J'espère que ca servira à d'autres !

Perso, je pense souvent utiliser ce code !

Amicalement

Titine
 

titine06

XLDnaute Junior
Re : Récupérer des informations dans un autre fichier

Bonsoir !!

J'ai l'impression avoir trouvé un petit bug (à confirmer si ca le fait chez vous).
Apparemment, la Feuil "source" prise en compte dans le code n'est pas celle qu'on paramètre, mais automatiquement la feuille sur laquelle le fichier source s'ouvre.

une idée?

merci d'avance



EDIT: j'ai trouvé toute seule

Code:
Sub Copie()
    Dim Emplacement As String, Fichier As String, Feuille As String, Plage, FCible, PCible
    Application.ScreenUpdating = 0
    With Workbooks("manager.xlsm")
        Emplacement = Cells(5, 5)
        Fichier = Cells(6, 5)
        Feuille = Cells(7, 5)
        Plage = Cells(8, 5)
        FCible = Cells(9, 5)
        PCible = Cells(10, 5)


        Workbooks.Open Filename:=Emplacement & Fichier
        Sheets(Feuille).Select
        Range(Plage).Copy
        Windows("manager.xlsm").Activate
        Sheets(FCible).Activate
        ActiveSheet.Range(PCible).Select
        ActiveSheet.Paste
        Application.DisplayAlerts = 0
        Windows(Fichier).Close
        Application.DisplayAlerts = 1
        Sheets("Feuil1").Select
        Application.ScreenUpdating = 1
    End With
End Sub

j'ai rajouté: Sheets(Feuille).Select

Titine
 
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…