Cherche possibilité de liaison entre plusieurs fichiers

laclau

XLDnaute Nouveau
Bonjour,

je suis dans une entreprise qui traite des affaires et qui en traite plusieurs à la fois.
Le patron souhaite établir un tableau qui récapitule l'ensemble des dépenses associées à chaque affaire et les comparer à ce qu'il avait prévu avant de commencer l'affaire.

J'ai créé une liste déroulante dans laquelle il va choisir le numéro de l'affaire qu'il veut analyser.
Le montant des fournitures, de la main d'oeuvre et du matériel prévu par affaire sera résumé en un tableau, sur une feuille excel pour chaque affaire (donc il y aura un dossier pour l'affaire 1, un autre pour l'affaire 2, etc...)

J'aimerai pouvoir lier le tableau récapitulatif au tableau de prévision, et qu'en fonction du numéro d'affaire sélectionné par la personne, excel aille chercher le fichier de l'affaire sélectionnée et à l'intérieur, le montant de chaque poste de l'affaire (fournitures, main d'oeuvre, matériel, etc...) . Du coup ça serait une sorte de rechercheV mais qui n'irai pas chercher juste dans un fichier mais dans un dossier comprenant plusieurs fichiers excel.

Est-ce possible??

Désolée si je ne m'exprime pas très bien mais je ne suis pas une pro d'excel...

Merci d'avance !
 

poulpor78

XLDnaute Junior
Re : Cherche possibilité de liaison entre plusieurs fichiers

Bonjour,

La première question à se poser est la suivante : si tu avais un classeur avec tous tes onglets représentant chacun une affaire, pourrais-tu aller chercher l'information par formule ? Si ce n'est pas le cas, inutile d'aller plus loin. De plus, es-tu capable de générer le chemin de chaque fichier cible depuis ton fichier de travail.

Dans ton cas, on a deux choix : soit essayer d'aller requêter l'information pour la ramener, soit rapatrier les données dans le fichier puis travailler dessus. Le mieux est certainement la requête d’information. On pourrait partir sur du code VBA mais il est possible que dans ton cas, on puisse s'en passer.

Puisque nous avons validé qu'il est possible depuis le fichier de travail d'avoir le chemin du fichier, le nom de l'onglet cible , on peut créer nos formules. Pour mettre en paramètre un nom d'onglet ou un chemin d'un fichier, il faut passer par les formules 'indirect(concatener(...' (le mieux est de commencer à créer des formules qui dépendent d'un nom d'onglet)

Mais nous avons ici un problème à contourner : indirect ne fonctionne pas sur des fichiers fermés. Il semble exister une solution développée par Laurent Longre : un addin nommé Morefunc où on trouve la formule 'INDIRECT.EXT' - lien :
Ce lien n'existe plus
Je n'ai jamais testé cette mine d'or.

En espérant avoir pu te donner des pistes. Ce serait bien de revenir sur le forum avec le fichier de travail et un fichier source.


Poulpor
 

laclau

XLDnaute Nouveau
Re : Cherche possibilité de liaison entre plusieurs fichiers

Bonjour Jiheme,

j'ai demandé l'autorisation à mon patron et même sans chiffres je n'ai pas le droit d'envoyer le tableau.
Je vais essayer de l'expliquer en détail.
J'ai un dossier qui contient des fichiers excel. Chaque fichier excel a le même tableau, mais avec des chiffres différents.
J'ai un tableau récapitulatif avec une cellule F5 où l'utilisateur sélectionne le numéro de l'affaire.
En fonction de cette sélection, le tableau suivant doit se remplir :
-en cellule H13 les dépenses n°1 qui sont dans le fichier de l'affaire concernée sur la cellule C3
-en cellule H16 les dépenses n°2 qui sont dans le fichier de l'affaire concernée sur la cellule C7
-etc...

Sauf qu'il faut que quand je rentre le numéro de l'affaire sur la case F5, l'ordi (enfin excel quoi) trouve automatiquement le fichier qui a comme nom ce numéro, pour prendre les bons nombres !

J'espère que c'est plus clair, et encore désolée de ne pas pouvoir vous joindre les dossiers.
 

laclau

XLDnaute Nouveau
Re : Cherche possibilité de liaison entre plusieurs fichiers

Bonjour Poulpor,

je ne peux pas mettre toutes les affaires sur un seul fichier, avec un onglet par affaire, car j'ai plus de 250 affaires et ça ne serait pas pratique.
Il est possible d'avoir le chemin du fichier oui, je vais essayer de comprendre la "mine d'or" et voir si ça marche...
Merci de ton aide !
 

laclau

XLDnaute Nouveau
Re : Cherche possibilité de liaison entre plusieurs fichiers

Je vous joins à ce messages les documents, sans aucune données confidentielles, en espérant que vous pourrez m'aider...

Donc pour récapituler, dans le classeur 2, vous avez le tableau type d'affaire, avec les différentes dépenses relatives à cette affaire, et le total du prix de revient de l'affaire.
Dans le classeur 3 vous avez le tableau récapitulatif, dans lequel il faut rentrer le numéro de l'affaire, et en fonction de celui-ci, la partie droite du tableau va se remplir en allant chercher dans le premier tableau (du classeur 2), dont le nom de fichier est le numéro de l'affaire.
J'espère que j'ai été claire ! :)

Merci d'avance
 

Pièces jointes

  • Classeur2.xlsx
    11.2 KB · Affichages: 53
  • Classeur3.xlsx
    18.1 KB · Affichages: 57
  • Classeur2.xlsx
    11.2 KB · Affichages: 63
  • Classeur3.xlsx
    18.1 KB · Affichages: 56
  • Classeur2.xlsx
    11.2 KB · Affichages: 53
  • Classeur3.xlsx
    18.1 KB · Affichages: 57

Jiheme

XLDnaute Accro
Re : Cherche possibilité de liaison entre plusieurs fichiers

Bonjour Laclau, le Forum

Ci joint un exemple, on récapitule toutes les affaires dans RECAP AFFAIRES (Ton fichier 3), mais à chaque nouvelle affaire, il faut faire un rechercher - remplacer.

Sinon, il faut utiliser la solution de Poulpor avec Morefunc à installe sur tous les C devant avoir accès à ces tableau

A+
 

Pièces jointes

  • affaire1.xlsx
    11.8 KB · Affichages: 36
  • recap affaire.xlsx
    20.7 KB · Affichages: 42
  • affaire2.xlsx
    11.8 KB · Affichages: 35

poulpor78

XLDnaute Junior
Re : Cherche possibilité de liaison entre plusieurs fichiers

Bonsoir,

La solution de Jiheme me semble bien. On peut y travailler encore dessus en intégrant ce code pour automatiser les rechercher/remplacer :

Sub MyCode()

Dim i As Integer ' i permet de compter les lignes d'affaire
Dim Myline As Integer ' Myline est la variable contenant le numéro de la ligne sur laquelle on travaille

'On commence par compter le nombre d'affaire à traiter (en fait on cherche la dernière ligne de travail)
i = 2
While ActiveSheet.Cells(i, 1).Value <> ""
i = i + 1
Wend
i = i - 1


'On suppose que les formules de la première ligne sont ok
'On copie-colle les formules de la première ligne partout avant de modification de chaque ligne

ActiveSheet.Range("B2:G2").Copy
Range("B2:G" & i).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False


' On va prendre les lignes une par une pour modifier la formule selon le numéro de l'affaire

Range("C2").Select
For Myline = 3 To i

ActiveSheet.Range("B" & Myline & ":G" & Myline).Select
Selection.Replace What:="Affaire1", Replacement:="Affaire" & Myline - 1, LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Next

Range("C2").Select
End Sub


'--------------
Par contre, es-tu certain que les informations des feuilles d'affaires se trouvent toujours dans les mêmes cellules avec les mêmes noms de feuille ?


Bonnes soirées.

Poulpor
 

Discussions similaires

Réponses
35
Affichages
869

Statistiques des forums

Discussions
312 189
Messages
2 086 033
Membres
103 102
dernier inscrit
nath34490