[Résolu]Fonction TROUVE() et résultat #NULL !

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.
Phosphène
Fraîchement OOthentifié
Messages : 4
Inscription : 11 avr. 2020 19:29

[Résolu]Fonction TROUVE() et résultat #NULL !

Message par Phosphène »

Bonjour,

J'essaie de mettre en place une formule de concaténation dans un tableur, sous la forme "texte_fixe"+"contenu_colonne_A"+"contenu_colonne_B". Jusque là, tout va bien.
Les choses se compliquent avec la colonne B, donc les valeurs peuvent prendre 2 formes : soit une suite de nombres, soit 2 suites de nombres, séparées par " // ", auquel cas, je ne souhaite récupérer que la première suite.

J'ai donc mis en place cette formule : =CONCATENER("texte_fixe-";A1;"-";SI(TROUVE("//";B1;1);STXT(B1;1;6);B1)) <-- les suites de nombres séparées par "//" font toujours 6 caractères.
Problème : cette solution ne fonctionnent que lorsque le contenu de la cellule de la colonne B contient effectivement la chaine " // " ; faute de quoi, la fonction renvoie #VALEUR !
Après quelques recherches, j'ai effectivement trouvé que la fonction TROUVE() renvoie un résultat #NULL !, ce qui cause sans doute le problème.

J'ai donc essayé de modifier la formule : =CONCATENER("MTG-";A1;"-";SI(ESTVIDE(TROUVE("//";B1;1));B1;STXT(B1;1;6)))
... Et ça semblait marcher ! ... Jusqu'à ce que je me rende compte que ça ne m'affiche tout le temps que les 6 premiers caractères, qu'il y ait "//" ou pas.

Où est mon erreur ? Je cherche depuis 2 jours sans trouver le problème...

Bonne journée et merci d'avance !
Dernière modification par Phosphène le 02 déc. 2021 19:37, modifié 1 fois.
LibreOffice 7.2
Windows 10 familial
Avatar de l’utilisateur
Michel JANZEF
ManitOOu
ManitOOu
Messages : 3581
Inscription : 12 janv. 2006 10:04

Re: Fonction TROUVE() et résultat #NULL !

Message par Michel JANZEF »

Bonjour,
En joignant votre fichier (anonymisé), nous pourrions plus facilement voir où se trouve l'erreur.
AOo 4.1.16 (Oracle JRE x86 - 1.8.0_471) et LibO 25.8.6.2 (Oracle JRE x64 - 1.8.0_471) - Windows 11 Famille 25H2 (26200.6725) 64 bits
Avatar de l’utilisateur
DLE
HédOOniste
HédOOniste
Messages : 1516
Inscription : 30 déc. 2007 18:56
Localisation : Lille

Re: Fonction TROUVE() et résultat #NULL !

Message par DLE »

Bonsoir,

A tester :

Code : Tout sélectionner

=CONCATENER("MTG-";A1;"-";SI(ESTERREUR(TROUVE("//";B1;1));B1;STXT(B1;1;6)))
Avec un fichier exemple c'est plus pratique pour valider la proposition
+A
MacOS Tahoe 26.3.1 (iMac-M4) : AOO 4.1.16 , LibreOffice 25.8.6.2, Adoptium-temurinJDK 1.8.0_402, CCC, FireFox, Thunderbird, ORB 1.2.1
Parallels Desktop = Windows 11 & MacOS : AOO, Libre Office.
Phosphène
Fraîchement OOthentifié
Messages : 4
Inscription : 11 avr. 2020 19:29

Re: Fonction TROUVE() et résultat #NULL !

Message par Phosphène »

Ah, évidement !

En plus, j'avais effectivement préparé le fichier en question mais j'ai complètement oublié de le joindre, pardon...

En tout état de cause, merci beaucoup à DLE : la fonction ESTERREUR() était effectivement la solution à mon problème.
LibreOffice 7.2
Windows 10 familial