Liaison classeur du meme repertoire

Résolu
Salut tout le monde,

J'ai un repertoire toto dans lequel se trouve fichier1.xls; fichier2.xls; fichier3.xls;fichier4.xls;fichier5.xls
Fichier1.xls va chercher des infos dans les 4 autres. Ca marche très bien. Mon probleme cest dès que je transferet le fichier sur ma clé usb ou sur une autre machine forcement l'adresse du fichier change et mes liens sont cassés.
Ma question:
Comment dire d'aller chercher mon fichier2.xls qui se trouve dans le meme rep sans spécifier toute l'adresse.
=SOMME([fichier2.xlsx]Feuil1!$A$1)

Merci
Configuration: Windows Vista
Internet Explorer 7.0

14 réponses

  1. Bonjour,

    Pour trouver le fichier, il lui faut bien son chemin, son adresse.

    Regarde si ce tuto d'Excelabo te convient quand tu sauves sur la clé USB, à la rubrique "Fichiers liés : emplacements modifiés"
    http://www.excelabo.net/excel/liaisons.php
    0
    1. Merci argixu de ta réponse, mais cela ne m'aide pas dans la mesure ou il faut redefinir le chemin dans mon exemple j'ai donné 5 fichiers, mais en réalité il y en a 5 sources liées avec 23 fichiers (23x5) ca fait beaucoup de manipulattion.
      Ya vraiem,ent pas moyen de lui dire que le fichier x lié se trouve dans le même repertoire que le fichier ouvert?
      Merci
      0
      1. Contributeur
        Et il n'est vraiment pas possible de rapatrier tous tes fichiers en tant que feuilles d'un fichier unique ?
        0
        1. J'ai tenté l'expérience et je me retrouve avec un fichier de 13Mo. c'est trop lourd pour travailler
          0
          1. Contributeur
            Bonjour tt le monde

            vdw: quelques questions pour te proposer peut-être qq chose (en évitant d'ouvrir les 23 fichiers) XL<2007

            1/ les 5 données à reporter sont elles aux mêmes endroits sur les 23 classeurs (noms de feuille identiques, adresses identiques)?
            2/ les cellules à reporter sont elles jointives ? par exemple: A1:A5
            0
            1. Slt Michel et merci de ta réaction.

              J'ai un classeur maître et 23 classeurs parfaitement identiques =>Maitre.xls & clas1.xls ; clas2.xls etc...
              Dans le fichier maitre.xls je vais chercher des infos dans les 23 classeurs au meme endroit
              style

              Maitre.xls Feuille1
              A1= SOMME([clas1.xls]Feuil1!$K$58)
              A2= SOMME([clas2.xls]Feuil1!$K$58)
              A3= SOMME([clas3.xls]Feuil1!$K$58)

              ensuite

              Maitre.xls Feuille2
              A1= SOMME([clas1.xls]Feuil2!$z$59)
              A2= SOMME([clas2.xls]Feuil2!$z$59)
              A3= SOMME([clas3.xls]Feuil2!$z$59)

              etc ...

              j'èspère que c'est assez clair ? comme explication
              Merci d'avance
              0
              1. Slt Michel et merci de ta réaction.

                J'ai un classeur maître et 23 classeurs parfaitement identiques =>Maitre.xls & clas1.xls ; clas2.xls etc...
                Dans le fichier maitre.xls je vais chercher des infos dans les 23 classeurs au meme endroit
                style

                Maitre.xls Feuille1
                A1= SOMME([clas1.xls]Feuil1!$K$58)
                A2= SOMME([clas2.xls]Feuil1!$K$58)
                A3= SOMME([clas3.xls]Feuil1!$K$58)

                ensuite

                Maitre.xls Feuille2
                A1= SOMME([clas1.xls]Feuil2!$z$59)
                A2= SOMME([clas2.xls]Feuil2!$z$59)
                A3= SOMME([clas3.xls]Feuil2!$z$59)

                etc ...

                j'èspère que c'est assez clair ? comme explication
                Merci d'avance
                0
                1. Contributeur
                  Re,

                  je n'arrivais plus à me rappeler l'astuce!!!

                  pour rendre les formules indépendantes du répertoire parent de "toto"
                  tu écris dans une cellule de maitre.xls

                  ='.\..\toto\[Classeur2.xls]Feuil1'!$C$3

                  suivant l'endroit où tu copies tes fichiers: le chemin .\.. prendra la valeur voulue ainsi chez moi
                  la formule ci dessus se transforme et indique sur mon HD
                  ='F:\documents\toto\[Classeur2.xls]Feuil1'!$C$3
                  et en copiant le dossier "toto" sur la clé USB
                  ='E:\toto\[Classeur2.xls]Feuil1'!$C$3

                  ca te fait du boulot sur "maitre" (23 x5) mais ca évite du VBA (c'était ma demande de renseignements)

                  bonne soirée

                  EDIT: Apparamment, CCM ne prend pas les antislash! je copie le message en PDF et te le mets en PJ
                  0
                  1. Contributeur
                    En définitive, j'ai recopié le baratin sur Excel (Pb avec pdf)
                    https://www.cjoint.com/?jCspPtIPTw

                    En réouvrant le post, je m'aperçois que les antislash ont bien été écris

                    ca s'arrange pas trop pour moi ! l'automne c'est terrible chez les vieux! une camomille et dodo à 9 heures.
                    0
                    1. Pas de bol, ca marche pas. Dès que je confirme l'intro de la ligne il m'ouvre une fenetre pour mettre à jour le fichier. Si tu refuses il met perte de reference. Et si tu pointe le fichier il te met le néo emplacement. Mais cette une opéa qu'il faut recommencer deplacement!
                      Merci quand même.
                      @+
                      0
                      1. Contributeur
                        Avant de t'envoyer mon message, j'avais essayé comme je le fais toujours: je ne propose une solution que si mes essais ont été positifs.
                        0
                        1. Je ne met pas ta parole en doute loin de là, suis pas assez bon pour ca. Mais voilà ?
                          J'ai réessayé mais mm chose ? Je ne vois pas ou je me trompe copier/coller de ta réponse avec les memes classeurs/folder
                          0
                          1. Contributeur
                            Bonjour quand même

                            Ci joint une maquette avec 2 classeurs et en utilisant VBA
                            https://www.cjoint.com/?jDkVZrAZD3

                            tes classeurs seront traités dans l'ordre aphabétique: classeur1, classeur2 etc

                            tu connais quelles sont les adresses des cellules: K58 se traduit en R58C11 par exemple

                            voici la macro à complèter par tes soins (faire Al+F11 dans maitre.xls pour la retrouver:

                            Sub extraire()
                            Dim chemin As String, fichier As String
                            Dim cptr As Byte
                            
                            Application.ScreenUpdating = False
                            Sheets(1).Columns(1).ClearContents
                            Sheets(2).Columns(1).ClearContents
                            
                            chemin = ThisWorkbook.Path
                            ChDir chemin
                            fichier = Dir("*.xls")
                            
                            cptr = 1
                            While fichier <> ""
                                If fichier <> "maitre.xls" Then
                                    ' utilisation macro "walkenbach": extraire sans ouvrir donnée fichier fermé
                                    Sheets(1).Cells(cptr, 1) = ExecuteExcel4Macro("'" & chemin & "\[" & fichier & "]Feuil1'!R3C3")
                                    Sheets(2).Cells(cptr, 1) = ExecuteExcel4Macro("'" & chemin & "\[" & fichier & "]Feuil2'!R4C2")
                                    cptr = cptr + 1
                                End If
                                fichier = Dir
                             Wend
                            
                            End Sub


                            Je n'ai pas transfèré sur clé USB (pb actuellement sur mon pc)
                            0
                            1. Oulala, désolé on ne va pas polémiquer la dessus. J’ai essayé et ca na pas marché je t’ai remercié et suis passé à autre chose.
                              Si je t’ai frustré désolé ce n’était pas mon intention.
                              0