Lier plusieurs fichiers excel

Bonjour,

je me trouve face a un probleme qui me parait bien au dela de mes competences mais si quelques puristes peuvent y trouver une reponse.

J'ai un fichier que nos appellerons Base de donnée et 50 autres fichier que nous appellerons Fiche1, Fiche2,....Fiche50. Ils sont tous stockés dans un seul dossier sur le disque dur. Les fichiers Fiche1, Fiche2 etc... sont tous faits sur le meme modele strictement et contiennent une certain nombre d'information. Dans le fichier Base de données, je veux pouvoir taper le nom "Fiche1" dans la cellule A2 et que la macro complete tous les autres champs contenus dans Fiche1 (genre ; Nom, Prenom, Date de naissance, tel, Adresse, etc), puis dans la cellule A3, Fiche22, et ainsi de suite..., le tout sans ouvrir les 50 fiches.

merci de bien vouloir m'aider

10 réponses

  1. Contributeur
    Re le forum

    Il y a la fonction INDIRECT.EXT
    (Renvoie le contenu d'une cellule ou d'une plage contenue dans un classeur fermé)

    Il faut installer la macro complémentaire Morefunc de Laurent Longré

    Site de téléchargement : http://xcell05.free.fr

    Mytå
    3
    1. Contributeur
      Salut le forum

      Lire la valeur d'une cellule dans un classeur fermé

      Tiré du site de Frédéric Sigonneau

      Cette fonction est utilisable dans une feuille de calcul
      Exemple : =GetValueWithADO("D:\TestADO.xls";"feuil1";A1)

      Function GetValueWithADO(Classeur$, Feuille$, Cell As Range)   
      'Nécessite une référence à la librairie  
      'Microsoft ActiveX Data Object 2.x Library  
      
      Dim RcdSet As Object   
      Dim strConn As String   
      Dim strCmd As String   
      Dim dummyBase As Range   
           
        'prépare une "base de données" bidon pour la clause SELECT   
        '(une entête fictive et une ligne de données)   
        Set dummyBase = Cell.Resize(2)   
           
        'prépare les commandes ADO et SQL   
        strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _   
                      "Data Source=" & Classeur & ";" & _   
                      "Extended Properties=""Excel 8.0;HDR=No;IMEX=1;"";"   
        strCmd = "SELECT * FROM [" & Feuille & "$" & dummyBase.Address(0, 0) & "]"   
           
        'crée l'objet Recordset   
        Set RcdSet = CreateObject("ADODB.Recordset")   
           
        'va chercher l'info   
        RcdSet.Open strCmd, strConn, 0, 1, 1 'adOpenForwardOnly, adLockReadOnly, adCmdText   
           
        'et la renvoie   
        GetValueWithADO = Application.Clean(RcdSet(0))   
        'autre syntaxe possible   
      '  GetValueWithADO =Application.Clean(RcdSet.GetString(NumRows:=1))   
           
        'nettoyage   
        Set RcdSet = Nothing   
      End Function 'fs

      Mytå

      Merci de donner suite à votre question, nous ne sommes pas des robots...
      Versions installées [MsProject 2003(FR), Excel 2003-2007(FR)]
      2
      1. merciii beaucoup

        je vais esseyer ca demain car je n'ai pas les fichiers sur moi mtn
        0
        1. Contributeur
          Re le forum

          Bigfood, tu reviens si des problèmes à mettre la solution en oeuvre.

          Mytå
          0
          1. Oui biensur et merci encore pour ton intention et ton temps

            et Bonne soirée
            0
            1. Excuse moi Myta mais je n'arrive pas à comprendre comment utilsier ton code ... sachant que je qu'un débutant en la matiére .. Merci de bien voiloir m"expliquer en detail la démarche à suivre s'il te plait ..
              0
              1. Contributeur
                Re le forum

                Bigfood, tu parles du code de Frédéric Sigonneau ou de la macro complémentaire de Laurent Longré.

                Mytå
                0
                1. les deux..... si tu pourrais m'expliquer profondement s'il te plait
                  0
                  1. Contributeur
                    Re le forum

                    Pour la macro complémentaire Morefunc : Installation et déploiement

                    Pour la macro de Frédéric Sigonneau :
                    Tu ouvres VBA ALT+F11, Insertion Module et tu y colles le code.

                    Ensuite, il suffit de les utiliser comme de simple formule.

                    Mytå
                    Merci de donner suite à votre question, nous ne sommes pas des robots...
                    Versions installées [MsProject 2003(FR), Excel 2003-2007(FR)]
                    0
                    1. désoler du retard mais je ne peux me connecter regulierement ces temps ci a cause des travaux dans ma rue la connection et coupé et je dois aller dans les teleboutique .... bon je vais esseyer ca quand tous sera rentrer dans l'ordre

                      merci beaucoup
                      0

                      Discussions similaires

                      question pix mot caché

                      7 réponses