PatCatNat’s, site de Patrice MOREL
Vous êtes ici : Accueil » Inform@tic » Excel ou Calc » Incrémentation de lignes avec un classeur lié.

Incrémentation de lignes avec un classeur lié.

D 4 janvier 2018     H 21:14     A Patrice MOREL    


LibreOffice_Calc Libre Office - Calc

Problématique :
Un classeur de données de références est créé et doit servir à alimenter d’autres classeurs.
Ces autres classeurs actualisent les liens vers ce classeur de données de références.
L’avantage est qu’un seul fichier est alimenté et sert à toutes autres « bases » avec des données de références identiques.

Exemple :

  • Le chemin pour accéder à mon fichier est [P :/AdministratifPhotos]
  • Mon fichier de données de références se nomme [DonneesReference.ods]
  • La feuille comportant mes données se nomme [References]
  • Ma première donnée liée est en cellule [E4]

Le liens prends alors cette forme :
='file:///P:/AdministratifPhotos/DonneesReference.ods'#$References.$E4

Si je déplace mon classeur de données (ou transmet à autrui mon « application »), le lien est à refaire !

Pour éviter çà, il faut alors décomposer de lien :
Mettre le chemin de votre fichier de travail dans une cellule (dans l’exemple [B2]), soit P :/AdministratifPhotos/DonneesReference.ods

Le lien peut alors être écrit comme ceci avec la fonction CONCATENER() (ici j’utilise les esperluette (&) et les guillemets à la place de la fonction ; ce qui revient au même...) et utiliser la fonction INDIRECT() :
=INDIRECT("'file:///"&$B$2&"'#$References.$E4")
Note : $B$2 remplace le chemin P :/AdministratifPhotos/DonneesReference.ods. Les signes dollars permettent de « bloquer » la cellule (ligne et colonne) pour éviter qu’elle s’incrémente.

Cette formule fonctionne bien, et renvoi la bonne valeur, mais si j’essaie d’incrémenter la colonne, cela ne le fait pas et me renvoie toujours la valeur de ma cellule [$E4].

La première cellule à lier se trouve dans la même colonne [E] que dans votre fichier de données de références. Par contre la ligne se trouve en ligne [5], alors, comme on le voit dans l’exemple, la donnée à lier se trouve en ligne [4] !

Il faut donc utiliser la fonction LIGNE() soit :
=INDIRECT("'file:///"&$B$2&"'#References.$C"&LIGNE()-1)
Note : La ligne est ) -1 de la ligne de référence donc [LIGNE()-1]

Dans la même rubrique

17 janvier – Bogue en RechercheV avec des parenthèses

12 mai 2021 – Un lien entre les cellules

12 novembre 2019 – Formatages divers

3 août 2017 – Nom de fichier dans une cellule

14 mars 2012 – Date par défaut