[Résolu] Référence qui "casse" si suppression d'une ligne

Discussions à propos du tableur Calc.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Tad
Membre OOrganisé
Membre OOrganisé
Messages : 52
Inscription : 07 déc. 2022 08:42

[Résolu] Référence qui "casse" si suppression d'une ligne

Message par Tad »

Bonjour,

En fichier joint un exemple du problème.

Contexte :
- la colonne B contient un nombre
- dans chaque cellule de cette colonne, soit on reprend soit le contenu de la cellule du dessus s'il existe, soit celui par défaut qui figure en tête de colonne
- si on modifie une cellule (exemple : on transforme le "2" en "1"), alors les cellules suivantes comporteront la nouvelle valeur

Le problème :
- si on supprime une ligne, le numéro de ligne des références casse.

Illustration :
- on supprime la ligne 6, dont la formule fait appel à la cellule B5.

Code : Tout sélectionner

=SI(C6<>"";SI($B5<>"";$B5;$B$1);"")
- le comportement "normal" serait que la ligne "7", qui remplace donc la ligne 6, voit les références "B6" de sa formule se transformer en "B5"
- sauf que les "B6" sont converti en "B#ref"

Code : Tout sélectionner

=SI(C6<>"";SI($B#REF !<>"";$B#REF !;$B$1);"")
Quelqu'un aurait-il une piste ? (testé avec un profil vierge sans modification de comportement)

Merci
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Tad le 15 juil. 2024 15:26, modifié 1 fois.
LibreOffice 7.6 sous W10
Avatar de l’utilisateur
njhub
PassiOOnné
PassiOOnné
Messages : 517
Inscription : 18 juin 2017 05:43
Localisation : 976

Re: Référence qui "casse" si suppression d'une ligne

Message par njhub »

Bonjour Tad, le forum

Testez la formule, à étendre vers le bas, suivante en B3

Code : Tout sélectionner

=SI(C3<>"";SI(INDIRECT(ADRESSE(LIGNE()-1;2);1)<>"";INDIRECT(ADRESSE(LIGNE()-1;2);1);$B$1);"")
Tad.png
Tad_Pb_ref_suppression _ligne.ods
:wink:
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 24.2.5.2 (x64) FR-YT 10/03/25
OS : Windows 11.0
Tad
Membre OOrganisé
Membre OOrganisé
Messages : 52
Inscription : 07 déc. 2022 08:42

Re: Référence qui "casse" si suppression d'une ligne

Message par Tad »

Bonsoir,

Merci beaucoup, effectivement cela fonctionne très bien. :D

Je passe le sujet en résolu mais quelqu'un connait-il la raison du comportement décrit dans mon premier post ? Je trouve cela "étrange"
LibreOffice 7.6 sous W10
Jeff
GourOOu
GourOOu
Messages : 9942
Inscription : 18 sept. 2006 09:40
Localisation : France

Re: [Résolu] Référence qui "casse" si suppression d'une ligne

Message par Jeff »

Bonjour,

Pour ma part, cela me semble assez logique de signaler que la cellule visée n'existe plus.

Pour un exemple minimaliste, sur un classeur vierge, en C6 saisir la formule :
  • Suppression de la ligne 3 :arrow: #REF en C6
    (Annuler la dernière action, puis)
  • Clic-droit sur B3, Supprimer... > Décaler les cellules vers le haut :arrow: #REF en C6
    (Annuler la dernière action, puis)
  • Suppression de la ligne 4 :arrow: La formule fait toujours référence à B3
    (Annuler la dernière action, puis)
  • Suppression de la ligne 2 :arrow: La formule s'adapte
A +
À lire avant tout !

Pour télécharger Apache OpenOffice

AOO 4.1.15 / Debian 12.10 "bookworm" / Xfce
Tad
Membre OOrganisé
Membre OOrganisé
Messages : 52
Inscription : 07 déc. 2022 08:42

Re: [Résolu] Référence qui "casse" si suppression d'une ligne

Message par Tad »

Oui effectivement avec du recul c'est logique. C'est moi qui ai de [très] mauvaises habitudes :oops:
LibreOffice 7.6 sous W10