Transfert de données provenant de differents onglets

Don diégo -  
skk201 Messages postés 942 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis a la recherche d'une formule me permettant de rapatrier les informations d'une cellule dans un autre classeur, En entrant simplement le nom de l'onglet (Car il y a plusieurs onglets dans le classeur) dans lequel celle ci ce trouve (la cellule).

afin d'être plus clair voici des infos complémentaires :

La cellule recherchée se trouvent toujours à la même place (c'est a dire H249) mais pas toujours dans le même onglet (Exemple : "M13-001", "M13-002", etc...). L'onglet ce trouve dans le classeur "Marseille - Bordereau".

Donc en inscrivant le nom de l'onglet (Exemple: M13-001)dans une cellule du classeur "récapitulatif" j'aimerai retrouvé l'information de la cellule H249 de l'onglet M13-001 du classeur Marseille - Bordereau.

Bien a vous.

4 réponses

  1. Iama Messages postés 324 Statut Membre 14
     
    Bonjour
    Essaye les formules suivantes

    En A3 le nom du classeur
    en A6 le nom de la feuille
    en A7 la cellule :type $A$6

    En cellule de ton choix = =INDIRECT(CONCATENER("'[";A3;".xlsm]";A6;"'!";A7))
    pour contrôler l'adresse = =CONCATENER("'[";A3;".xlsm]";A6;"'!";A7)

    A vérifier l'extension du fichier
    J'ai testé avec un classeur ouvert
    0
  2. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Avec le nom de l'onglet en A1 et le classeur Marseille-Bordereau OUVERT tu peux utiliser la fonction INDIRECT reconstituant la référence voulue :

    =INDIRECT("[Marseille-Bordereau.xls]" & A1 &"!$H$249") (modifier l'extension xls si nécéssaire)

    Par contre si tu veux lire l'info dans le classeur fermé INDIRECT ne marche pas et il faut dans la formule le chemin du fichier :

    exemple :
    ='D:\EXCEL\[Marseille-Bordereau.xls]M13-001'!$H$249

    Cdlmnt
    0
  3. skk201 Messages postés 942 Date d'inscription   Statut Membre Dernière intervention   55
     
    Il n'exite pas de formule qui fait ça mais tu peux la crée.

    Tu veux que je te donne la soluce ?
    0
  4. skk201 Messages postés 942 Date d'inscription   Statut Membre Dernière intervention   55
     
    Je vais alors proposer ma solution :)

    A mettre dans un module

    Public Function IMPORT(Classeur As String, Feuille As String)
    Application.DisplayAlerts = False
    Dim Classeur_Name  As String
        Classeur_Name = Right(Classeur, InStr(1, StrReverse(Classeur), "\") - 1)
    Dim Classeur_Path As String
        Classeur_Path = Left(Classeur, Len(Classeur) - InStr(1, StrReverse(Classeur), "\") + 1)
    IMPORT= ExecuteExcel4Macro("'" & Classeur_Path & "[" & Classeur_Name & "]" & Feuille & "'!R249C8")
    End Function


    La formule est :
    =IMPORT("D:\EXCEL\Marseille-Bordereau.xls","M13-001")

    ou si le nom du classeur est en A1 et que A2,A3,A4 contient les différents nom des feuilles :
    =IMPORT($A$1,A2)

    Plus qu'as tiré la formule vers le bas :)

    Cela reviens au même que les autres :)

    *Pensez mettre vos messages en [Résolu] et cliquer sur le + des conseil qui vous ont été utils"
    0