Formule cherchant infos dans classeurs différents

Sylvain -  
 SylvainChevalier -
Bonjour,

Dans un fichier Excel de synthèse où chaque ligne correspond à un numéro d'affaire (exemple: AF01 pour l'affaire n°1, etc.) , je souhaite aller chercher des informations (exemple: poids, volume, etc.) qui sont renseignées exactement dans la même cellule (exemple: C9) d'un même onglet (ex: onglet intitulé caractéristiques) dans des fichiers Excel qui sont stockés dans un même dossier mais où chaque fichier Excel porte un nom différent qui reprend le nom de l'affaire

Exemple:
Aff01.xlsx est le nom du fichier Excel de l'affaire n° 1 où le poids est renseigné dans la cellule C9 de l'onglet "caractéristiques"
Aff02.xlsx est le nom du fichier Excel de l'affaire n° 2 où le poids est renseigné dans la cellule C9 de l'onglet "caractéristiques"

Les fichiers sources de chaque affaire sont fermés.

Y a t'il un moyen autre que de saisir le chemin dans le fichier de synthèse?

Merci.

7 réponses

  1. danielc0 Messages postés 2191 Date d'inscription   Statut Membre Dernière intervention   287
     
    Bonjour,

    A ma connaissance, non.

    En espérant me tromper.

    Daniel
    0
  2. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
     
    Non, Daniel ne s'est pas trompé.

    Les différents fichiers ont combien de feuilles utilisées ?
    0
    1. Sylvain
       
      Il y a 2 onglets qui me sont utiles par fichier Excel sachant que les données que je veux récupérer dans ces 2 onglets proviennent de calcul de différents onglets de chaque fichier
      0
    2. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
       
      Ma demande de précision était destinée à te conseiller de rapatrier toutes les feuilles dans un fichier unique, ce qui résoudrait ton problème ...
      0
    3. Sylvain
       
      Oui j'y avais pensé mais il y a environ 200 fichiers Excel avec 2 onglets par fichier...
      0
    4. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
       
      ... et combien de colonnes par feuille ?
      0
  3. danielc0 Messages postés 2191 Date d'inscription   Statut Membre Dernière intervention   287
     
    Bonjour,

    Le plus simple serait bien sûr une macro.

    Daniel
    0
    1. sylvain
       
      Je pense aussi mais mes connaissances sont limitées pour ça
      0
  4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour;

    Une fois qu'on connaitra le chemin des classeurs source ;, il n'y a aucun problème pour récupérer C9 et ce, sans ouvrir les classeurs source.

    Dans le classeur "cible" dans quelle colonne et quelle feuille se trouvent les n° d'affaire ?
    Ces n° sont ils bien dans l'ordre croissant (AF01, AF02....) et de m^me dans le dossier "source" ?

    pour tester, il serait bien que tu nous indiques ce chemin et pour faciliter ces tests, que tu joignes 1 ou 2 classeurs source, voire un extrait du classeur cible ?

    pour cela
    Mettre le classeur sans données confidentielles en pièce jointe sur
    https://mon-partage.fr/
    Puis faire un clic « copier le raccourci » et le coller dans votre message

    Dans l’attente

    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bon! en attendant, un exemple adaptable

    Sub transferer()
    Dim lig As Long
    Dim recap As String, chemin As String, onglet As String
    Dim fich As String

    recap = ThisWorkbook.Name
    onglet = "feuil1" ' A ADAPTER
    chemin = ThisWorkbook.Path ' A ADAPTER
    Application.ScreenUpdating = False
    Range("B2:B300").ClearContents ' A ADAPTER
    lig = 2 ' A ADAPTER

    ChDir chemin
    fich = Dir("*.xlsx")
    While fich <> ""
    If fich <> recap Then ' SI "recap" dans le m^me dossier
    'source: instruction dite de "Walkenbach")
    Cells(lig, 2) = ExecuteExcel4Macro("'" & chemin & "\[" & fich & "]" & onglet & "'!R9C2") 'R9C3<==> C9
    lig = lig + 1
    End If
    fich = Dir
    Wend

    MsgBox "récapitulatif terminé avec succès"
    End Sub


    0
  7. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Merci !

    de rien....
    0
  8. SylvainChevalier
     
    Merci Michel.
    Je vais tenter de l'appliquer.
    0