Fonction ligne() décalage

Bonjour

Voici une nouvelle question envoyée à l'aide du formulaire de demande d'aide (http://fr.libreoffice.org/get-help/poser-une-question/).
Si vous répondez, merci de penser à utiliser la fonction "répondre à tous" de votre logiciel de courrier électronique de façon que le demandeur reçoive une copie de votre réponse.

Email: - mars60@orange.fr
Sujet: - Fonction ligne() décalage
Question: - Bonjour à tous
Soit 2 fichiers:Gestion 2015-01 et ventilation 2015-01
La formule:
=SI(ESTERR(PETITE.VALEUR('file:///C:/Poste Joseph/Brouillon/Gestion 2015_01.ods'#$Trim01.$P$1:$P$120;LIGNE()-7));"";INDEX('file:///C:/Poste Joseph/Brouillon/Gestion 2015_01.ods'#$Trim01.$F$1:$F$120;PETITE.VALEUR('file:///C:/Poste Joseph/Brouillon/Gestion 2015_01.ods'#$Trim01.$P$1:$P$120;LIGNE()-7);1))
fonctionne parfaitement sauf en feuille trim_02 ou il faut la paramétrer en ligne()-6 au lieu de ligne()-7
Quelle serait la subtilité???
Comment joindre les 2 fichiers?
merci par avance.

les fichiers:

Gestion_2015.ods
<http://nabble.documentfoundation.org/file/n4158895/Gestion_2015.ods>
Ventilation_2015.ods
<http://nabble.documentfoundation.org/file/n4158895/Ventilation_2015.ods>

Bonjour. Ma demande est-elle bien parvenu au bon endroit? car je n'ai pas de réponse.
Je vais essayer autrement pour les fichiers...

Bonjour. Ma demande est-elle bien parvenu au bon endroit? car je n'ai pas de réponse.
Je vais essayer autrement pour les fichiers...
les fichiers:

Gestion_2015.ods
<http://nabble.documentfoundation.org/file/n4158895/Gestion_2015.ods>
Ventilation_2015.ods
<http://nabble.documentfoundation.org/file/n4158895/Ventilation_2015.ods>

Bonjour,

Bonjour. Ma demande est-elle bien parvenu au bon endroit? car je n'ai
pas de réponse.

Si vous n'avez pas de réponse c'est probablement parce que personne ne
comprend la question ou que parmi les personnes disponibles, personne ne
connait de réponse satisfaisante.
Peut-être devriez-vous reformuler votre question.

Bonne journée
JBF

Bonjour,

-----Message d'origine-----
De : Mars60 [mailto:mars60@orange.fr]
Envoyé : jeudi 3 septembre 2015 15:58
À : users@fr.libreoffice.org
Objet : Re: [fr-users] Fonction ligne() décalage

Bonjour. Ma demande est-elle bien parvenu au bon endroit? car je n'ai
pas de réponse.
Je vais essayer autrement pour les fichiers...
les fichiers:

Gestion_2015.ods
<http://nabble.documentfoundation.org/file/n4158895/Gestion_2015.ods>
Ventilation_2015.ods
<http://nabble.documentfoundation.org/file/n4158895/Ventilation_2015.ods>

Reçus certes mais non congruents avec la question (cf ci-après).

> Bonjour
>
> Voici une nouvelle question envoyée à l'aide du formulaire de demande
d'aide (http://fr.libreoffice.org/get-help/poser-une-question/).
> Si vous répondez, merci de penser à utiliser la fonction "répondre à
tous" de votre logiciel de courrier électronique de façon que le demandeur
reçoive une copie de votre réponse.
>
>
> Email: - mars60@orange.fr
> Sujet: - Fonction ligne() décalage
> Question: - Bonjour à tous
> Soit 2 fichiers:Gestion 2015-01 et ventilation 2015-01
> La formule:
> =SI(ESTERR(PETITE.VALEUR('file:///C:/Poste Joseph/Brouillon/Gestion
2015_01.ods'#$Trim01.$P$1:$P$120;LIGNE()-7));"";INDEX('file:///C:/Poste
Joseph/Brouillon/Gestion
2015_01.ods'#$Trim01.$F$1:$F$120;PETITE.VALEUR('file:///C:/Poste
Joseph/Brouillon/Gestion 2015_01.ods'#$Trim01.$P$1:$P$120;LIGNE()-7);1))
> fonctionne parfaitement sauf en feuille trim_02 ou il faut la paramétrer
en ligne()-6 au lieu de ligne()-7
> Quelle serait la subtilité???
> Comment joindre les 2 fichiers?
> merci par avance.

Dans les fichiers joints:

La formule dans les deux (2) feuilles Trim01 et Trim02 du classeur
Ventilation utilise LIGNE()-6 contrairement à la question posée, ce qui
paraît cohérent si on cherche la n° petite valeur correspondant à la ligne
(on commence ligne 7 et donc ligne 7 on veut la 1ère petite valeur donc la
n° 1) - c'est bien LIGNE()-6 qu'il faut utiliser et c'est bien ce qui est
fait dans le fichier fourni.

D'autre part, il n'est pas possible de vérifier si le pb pourrait venir du
fichier Gestion car la feuille Trim02 appelée dans la formule n'existe pas.

Ceci peut expliquer le silence assourdissant de la liste ... C'est déjà
difficile d'analyser des formules longues, mais si en plus elles ne
correspondent pas au message ???

Cordialement,
Michel

Bonjour,

le classeur Ventilation_2015.ods contient des formules pointant vers le classeur externe Gestion_2015.ods
jusque là tout va bien

Dans la feuille Ventilation_2015.ods>Trim01 elles pointent vers Gestion_2015.ods>Trim01
jusque là tout va bien

Dans la feuille Ventilation_2015.ods>Trim02 elles pointent vers Gestion_2015.ods>Trim02
or, il n'y a pas de feuille trim02 dans Gestion_2015.ods !
Rien ne va plus

Si je crée des feuilles Trim_02, Trim_03 et Trim_04 dans Gestion_2015.ods, les formules affichent des résultats, apparemment cohérents.

Votre question sur le numéro de ligne ne correspond donc pas à l'anomalie constatée sur les formules.

Pourriez-vous la reformuler ?
Car, comme le suggère JBF, on ne sait pas quel est votre problème.

C_Lucien

Le 03/09/15 15:57, Mars60 écrivait :

Houlala! effectivement il manque des feuilles dans le fichier. Je rectifie.
A bientôt si j'arrive à passer les bons fichiers.
Encore toutes mes excuses...

Avec encore toutes mes excuses pour la grosse bourde du fichier incomplet.
J'essaie de vous passer ces fichiers en pièces jointes...

Zut apparemment les fichiers ne sont pas passés.
Pourrait-on me le confirmer.
Je ne trouve pas le moyen de transmettre par Nabble. Je n'y comprends rien.
Désolé...

Avec un peu plus de détails aussi.

ps : essayer cjoint pour envoyer les fichiers par exemple.

Il semblerait que par ici ça passerait mieux. J'essaie.

Pour plus de précisions: Dans ventilation 2015,en trim_02, si je mets
ligne()-7, elle me rajoute la ligne juste avant la bonne.

Gestion_2015.ods
<http://nabble.documentfoundation.org/file/n4159240/Gestion_2015.ods>
Ventilation_2015.ods
<http://nabble.documentfoundation.org/file/n4159240/Ventilation_2015.ods>

Je crois que c'est bon.

Bonsoir,

-----Message d'origine-----
De : Gixona [mailto:mars60@orange.fr]
Envoyé : jeudi 3 septembre 2015 21:28
À : users@fr.libreoffice.org
Objet : [fr-users] Re: Fonction ligne() décalage

Il semblerait que par ici ça passerait mieux. J'essaie.

Pour plus de précisions: Dans ventilation 2015,en trim_02, si je mets
ligne()-7, elle me rajoute la ligne juste avant la bonne.

Désolé, mais la formule juste est justement LIGNE()-7 qui donne la 1ère
petite valeur soit 23,24 pour le montant.
Avec LIGNE()-6 on obtient la 2° petite valeur soit 79,88 ce que montre le
fichier joint et c'est donc faux.
Il faut croire dans l'aide ou l'assistant qui précise la signification du
deuxième argument qui est le rang de la petite valeur cherchée.
si on commence la liste ligne 8, on veut la 1ère petite valeur et c'est
obligatoirement LIGNE()-7 (soit: 8-7=1)

Par contre, je ne m'explique pas pourquoi dans trim01 (Ventilation):
- les lignes sont redoublées
- et pourquoi la question n'a pas porté là-dessus - à moins que le problème
n'apparaisse que chez moi ??? (ma version: Libo 4.4.5.2)

En décomposant en plusieurs colonnes la formule, tout se passe bien:
colonne I: (le rang)
=LIGNE()-7
colonne H: (trouver le n° de la ligne à ventiler)
=PETITE.VALEUR('file:///C:/.../Gestion_2015.ods'#$Trim01.P$7:P$120;I8)
colonne F: (trouver le montant)
=INDEX('file:///C:/.../Gestion 2015.ods'#$Trim01.$E$7:$E$120;H8;1)
colonne D: (gérer l'erreur - lorsque le rang demandé n'existe pas)
=SI(ESTERR(H8);"";G8)

Nota: c'est mieux de chercher uniquement dans le tableau (lignes 7 à 120) et
non a partir de la ligne 1, on ne sait jamais ce qu'il peut y avoir
au-dessus.

Je ne saurais trop conseiller de procéder comme je viens de faire, on voit
bien ainsi la succession des calculs, on comprend bien ce que l'on fait, on
comprend les diverses fonctions utilisées et on corrige sans problème.
Il n'y a rien de honteux à procéder ainsi (je pense avoir une bonne
expérience du tableur et je procède ainsi couramment). De nombreux moyens
existent ensuite pour masquer ces calculs intermédiaires, colonnes masquées
ou application d'un style masqué lorsque la feuille est protégée par
exemple.

Cordialement,
Michel

Oups, j'ai cliqué trop vite, une erreur et une variante (cf. ci-après):

-----Message d'origine-----
De : Michel Rudelle [mailto:rudelle.michel@gmail.com]
Envoyé : jeudi 3 septembre 2015 22:53
À : 'Gixona'; 'users@fr.libreoffice.org'
Objet : RE: [fr-users] Re: Fonction ligne() décalage

En décomposant en plusieurs colonnes la formule, tout se passe bien:
colonne I: (le rang)
=LIGNE()-7
colonne H: (trouver le n° de la ligne à ventiler)
=PETITE.VALEUR('file:///C:/.../Gestion_2015.ods'#$Trim01.P$7:P$120;I8)

colonne F: (trouver le montant)

remplacer la formule précédemment indiquée par:
=INDEX('file:///C:/.../Gestion 2015.ods'#$Trim01.$E$1:$E$120;H8;1)
(en effet dans index on donne le n° de ligne dans la plage, et il faut donc
faire commencer la plage à 1)

colonne D: (gérer l'erreur - lorsque le rang demandé n'existe pas)
=SI(ESTERR(H8);"";G8)

on peut aussi utiliser:
=SIERREUR(G8;"")

Michel

Bonjour et merci pour toutes ces explications.
Dans trim_01, je n'ai aucun redoublement de ligne. Si on compare le
nombre d'opération, on voit qu'elles correspondent exactement au total
sur gestion.
Dans trim_02, justement, c'est ligne()-7 qui ne va pas. Elle me rajoute
la ligne qui précède la première occurrence soit la ligne 19 d'un
montant de 45.73
En tout état de cause, je vais essayer de procéder en décomposant la
formule sur plusieurs colonnes.
Ce sera plus raisonnable d'après vos conseils et aussi plus clair.
Peut-être que ça éliminera le problème.
merci encore et à bientôt.

Rien à faire, pas moyen.
Ligne()-7 dans la feuille trim02 me renvoie toujours la ligne 19 au lieu de la 20.
J'ai supprimé la feuille Trim02 et l'ai recrée. ça ne change rien.
Je vais recréer complètement tout le classeur pour voir.
C'est quand même étrange.
Voyons si les fichiers passent en pièces jointes.

pardon, j'ai fait une erreur de fichiers

Rien à faire, pas moyen.
Ligne()-7 dans la feuille trim02 me renvoie toujours la ligne 19 au lieu de la 20.
J'ai supprimé la feuille Trim02 et l'ai recrée. ça ne change rien.
Je vais recréer complètement tout le classeur pour voir.
C'est quand même étrange.
Voyons si les fichiers passent en pièces jointes.

Bonjour,

Gixona wrote

pardon, j'ai fait une erreur de fichiers

Rien à faire, pas moyen.
Ligne()-7 dans la feuille trim02 me renvoie toujours la ligne 19 au lieu
de la 20.
J'ai supprimé la feuille Trim02 et l'ai recrée. ça ne change rien.
Je vais recréer complètement tout le classeur pour voir.
C'est quand même étrange.

Rien d'étrange, l'"erreur" est juste:
la formule recherche le n° de ligne sur la plage P$7:P$120, et en P114 il y
a 19 !!!! qui est le résultat du comptage. donc la formule PETITE.VALEUR
renvoie bien au rang 1 la plus petite valeur de la plage, soit 19

Cordialement,
Michel

Ouahou!!! SUPER Grand merci, très grand merci... Là, j'étais perdu. C'était pourtant très simple.
Juste une étourderie qui m'a bien fait souffrir. Le petit grain de sable...
Enfin, j'ai compris. Comment met-on "RESOLU"? Ce sera avec un immense plaisir.

C’est fait, il suffit de modifier l’objet du message

Michel