Renvoi vers nom de fichier selon numéro de ligne

Bonjour à tous,

J'ai un fichier Excel qui doit faire une synthèse de fiches de non conformités.

Chaque fiche de non conformité porte le nom 24-xxx FNC

Pour le renvoi à la cellule C12 de la FNC 24-001 FNC.xlsx par exemple, j'ai la formule :

='R:\FRANCE\_Commun\Suivi_des_non-conformites\Non conformités\2024\Fabrication\[24-001 FNC.xlsx]FNC'!C12

Je voudrai trouver la manière de remplir automatiquement le nom en fonction du numéro de ligne. Pour retrouver le numéro de ligne j'ai bien la formule =TEXTE(LIGNE()-2;"000") car mes lignes commencent à la ligne 3, mais je ne trouve pas comment remplacer 24-001 FNC.xlsx par 24-"numéro de ligne-2 à 3 chiffres".

Si l'un d'entre vous sait, ce sera avec plaisir !

Je joins mon fichier Excel au cas où cela ne paraisse pas clair !

Merci d'avance à la communauté !

Bonsoir,

si j'ai bien compris :
="'R:\FRANCE\_Commun\Suivi_des_non-conformites\Non conformités\2024\Fabrication\[24-"&TEXTE(LIGNE()-2;"000")&" FNC 51802.xlsx]FNC'!B17"

@ bientôt

LouReeD

LouReed bonjour

Merci pour cette formule mais en l'appliquant dans mes cellules un souci persiste :

Si je mets ta formule telle que, m'apparaît dans la cellule pour la ligne 3 (j'ai changé le nom du fichier cible qui est bien celui indiqué avec ta formule.

'R:\FRANCE\_Commun\Suivi_des_non-conformites\Non conformités\2024\Fabrication\[24-001 FNC Fab.xlsx]FNC'!M8

SI j'enlève les " cela donne une erreur de référence.

Une idée pour résoudre cela ?

Bonsoir,

donc votre référence ='R\FRANCE etc... vous permet de créer un lien vers ce fichier ?
En ajoutant les guillemets cela permet de créer une chaine de caractère dans laquelle on peut intégrer une variable, mais de ce fait votre lien ne marche plus, et sans les guillemets Excel vous indique une erreur.

Avez vous essayé avec la fonction LIEN.HYPERTEXTE ?
=LIEN_HYPERTEXTE("R:\FRANCE\_Commun\Suivi_des_non-conformites\Non conformités\2024\Fabrication\[24-"&TEXTE(LIGNE()-2;"000")&" FNC 51802.xlsx]FNC!B17";"LouReeD")

Reste à voir s'il faut mettre des apostrophes pour gérer les espaces dans le nom du fichier ou de la feuille, mais je crois que ce n'est que pour la feuille Excel, donc dans votre exemple il n'y en aurait pas besoin.

@ bientôt

LouReeD

Lou Reed bonjour,

Je viens de faire des essais mais n'ai toujours pas la solution....

Mon fichier a changé de nom et s'appelle 24-xxx FNC Fab.xlsx. Imaginons que je souhaite avoir le contenu de la cellule M9 de ce document.

-> Lorsque je rentre votre formule modifiée, à savoir

=LIEN_HYPERTEXTE("R:\FRANCE\_Commun\Suivi_des_non-conformites\Non conformités\2024\Fabrication\[24-"&TEXTE(LIGNE()-2;"000")&" FNC Fab.xlsx]FNC!M9";"LouReeD")

il apparait Lou Reed dans la cellule, quand je clique sur le lien rien ne ss'ouvre (sachant que mon but est d'avoir dans la cellule le contenu de M9)

-> SI je modifie et mets la formule suivante

=LIEN_HYPERTEXTE("R:\FRANCE\_Commun\Suivi_des_non-conformites\Non conformités\2024\Fabrication\[24-"&TEXTE(LIGNE()-2;"000")&" FNC Fab.xlsx]FNC'!$M$9")

apparait dans la cellule :

R:\FRANCE\_Commun\Suivi_des_non-conformites\Non conformités\2024\Fabrication\[24-006 FNC Fab.xlsx]FNC'!$M$9

ma demande de nom de ligne est bien prise en compte, mais je n'ai toujours pas le contenu de la cellule.... et le lien ne me trouve pas le fichier cible...

Auriez vous une idée ?

Bonjour,

déjà de mon côté je n'avait pas compris qu'il fallait faire afficher la valeur de la cellule, c'est pourquoi je suis parti sur un lien...

Ensuite la récupération de données de fichiers externes n'est pas simple. Avez vous essayé de faire ceci afin de récupérer la syntaxe pour que cela fonction et vérifier que cela fonctionne avec le fichier fermé :
dans la cellule écrire =, puis d'aller sur un fichier "test", aller sur la feuille voulue, et sélectionner la cellule voulue puis [Entrée]

Comme ceci Excel va créer la formule et vous allez voir si la valeur de la cellule, de la feuille du classeur cible s'affiche bien. Ensuite vous fermez le classeur cible et vous vérifiez si la valeur reste. Ensuite vous fermer ce classeur et vous l'ouvrez à nouveau pour vérifier si la référence reste ou bien autre chose.

Je vois de mon côté, mais je ne suis pas alaise avec les "multi fichier" !

@ bientôt

LouReeD

A mon niveau je peux vous proposer ceci :
un code VBA de mise à jour des références, si cela est possible dans le sens ou faut voir au niveau des boucles les différentes difficultés que l'on peut rencontrer.

Ci joint deux fichier afin que vous compreniez ce qui se passe. Je pense que cela peut être adapté à votre demande, soit "directement" soit en ajoutant quelque données en "dur" sur votre feuille "récap" afin que le code puisse comprendre dans quel fichier aller chercher la donnée et sur quelle feuille de chacun de ces fichiers.
Soit la MAJ crée le "lien", comme cela si la source est modifiée la valeur est mise à jour, soit le code inscrit directement la valeur.

Les fichiers tests :

6loureed.xlsm (17.68 Ko)
14test.xlsx (8.79 Ko)

Le récap et la mise à jour se trouve dans LouReeD.xslm

@ bientôt

LouReeD

Lou Reed merci.
j’avais bien essayé de pointer le fichier cible dans son dossier et cela fonctionne parfaitement.
Les modifications que je peux faire remontent bien dans le récapitulatif.
aujourd’hui je change les formules de chaque cellule d’une ligne en remplaçant le numéro qui est après 24-xxx
Le code Vba me semble compliqué et je voudrais juste que ce changement se fasse de manière automatique en fonction de la ligne….

On n’en est pas loin mais je ne trouve pas la formule exacte

Vous ne la trouver pas car c'est impossible...
Le seul moyen est de passer par VBA, qui lui peut tester le numéro de ligne et l'intégrer à l'expression lors de son écriture dans la cellule.

@ bientôt

LouReeD

Merci ! Cela m'évitera de chercher encore...

Au risque d'abuser, pourriez vous m'indiquer le code VBA dans mon cas avec les accès mentionnés sur les précédents échanges ?

Encore merci ;=)

Un essai avec votre premier fichier sur lequel j'ai fait quelques effacement malencontreux...

@ bientôt

LouReeD

Bonsoir Vince69340, LouReeD,

Pour récupérer une valeur ou un texte inscris dans un autre classeur on peut utiliser la formule INDIRECT.

Et dans le cas précis du fichier posté pour la ligne 4 en colonne I, cela donnera comme ci-dessous. Le classeur cible devant être ouvert.

="'"&"R\FRANCE\_Commun\Suivi_des_non_conformites\Non conformités\2024\Fabrication\" & "[24-" & TEXTE(LIGNE()-2;"000") & "FNC.xlsx]FNC'!B38"

En colonne J (ou autre) de la même ligne on inscrira = INDIRECT(I4)

On pourra alors fermer le classeur cible. La donnée restera valide et affichée sans erreur tant qu'on ne l'actualisera dès lors que le classeur cible est fermé.

Une manière de l'actualiser est de placer comme en colonne A un lien Hypertexte ouvrant le classeur cible situé sur le Réseau.

ATTENTION: dans le cas d'un disque Réseau, ce n'est pas la lettre de ce disque (ici symbolisé par la lettre R) qui doit être inscrite dans la colonne I mais son équivalent en adresse textuelle. Ôter le file:/// du lien Hypertexte pour ne garder que le reste de l'adresse Réseau. Donc l'ensemble du chemin à partir du \\ (constituant le début de marque de l'adressage Réseau)


Bonjour,

quitte à se retrouver avec une valeur qui sera bonne tant qu'on ne réinitialise pas les choses malgré la fermeture du classeur source, pourquoi, plutôt que de faire un lien qui n'en est pas vraiment un, ne pas mettre en place un code qui met à jour les données en les inscrivant "en dur" quitte pour cela à ouvrir les classeurs source, piocher les données voulues et les refermer. Cette mise à jour serait indiquée avec sa date et son heure afin de connaitre le delta entre les valeurs inscrites et ce qui pourrait avoir varié...

La mise à jour pourrait se faire à l'ouverture du fichier avec un petit message d'attente dans le cas où le code mettrait un peu de temps à tout scanner.

@ bientôt

LouReeD

Rechercher des sujets similaires à "renvoi nom fichier numero ligne"