Page 1 sur 1

Compter les lignes d'un texte dans une cellule

Publié : 23 janv. 2023 16:17
par dubs_one
Bonjour la communauté !

Je suis nouveau sur ce forum 🥳

Quelqu'un connait-il une fonction qui me donnerait en résultat le nombre de lignes de texte dans une cellule ?

Je m'explique...
J'ai créé une fiche de suivi pour les dossiers en cours que je vais chercher dans un planning de production. En gros, je sélectionne un numéro dossier que je veux afficher dans cette fiche grâce à une liste déroulante (dimensionnée pour être exportée en A4 en PDF), et elle se remplie automatiquement des infos du dossier en question avec toutes les lignes du planning concernées (un dossier peu être sur plusieurs lignes du tableau).
Le hic c'est que le contenu de certaines cellules sources (du planning) que je charge peuvent "sortir" de mes cellules cibles (de la fiche).

J'ai bien essayé avec le redimensionnement des cellules en fonction du contenu mais ça me pète mon gabarit et je me retrouve avec parfois 2 pages dans le PDF exporté...
Je n'ai pas trouvé l'inverse, à savoir adapter le corps du texte pour qu'il tienne dans la cellule... et je ne suis pas sûr que ce soit pertinent ; je risquerai d'avoir des textes trop petits en sortie...
J'ai cherché à "scanner" le contenu de la cellule mais je n'ai trouvé que par le nombre de caractères avec NBCAR(), ce qui ne me sert à rien dans mon cas puisque certaines lignes de texte peuvent être très courtes et finir par sortir de la cellule car trop de retours à la lignes dans le planning source...
Et quand je trouve des infos sur comment "compter les lignes", il s'agit des lignes du tableur, pas les lignes du texte DANS la cellule...

Bref, c'est la dernière piste que j'ai pour peut-être débloquer 3 problématiques d'un coup :
1. Afficher une alerte si mon texte sors de la cellule et sera donc partiellement masqué sur le PDF (Niveau jouable pour moi)
2. Essayer de remonter les lignes de texte pour que ça tienne sur une seule ligne dans les petites cellules (Niveau intermédiaire pour moi)
3. Créer un second gabarit sous le premier qui se remplie si ma cellule "Descriptif" (la plus grande) ne permet pas d'afficher tout son contenu, ce qui implique (A) de scinder son contenu en 2... et (B) accessoirement arriver à exporter cette seconde page que si elle est remplie... (Niveau expert pour moi)

Si vous avez un début de piste, je suis preneur 😅

Re: Compter les lignes d'un texte dans une cellule

Publié : 23 janv. 2023 17:05
par NC-Ahmet
Hello dubs_one, bienvenue par ici !

J'espère que tu vas bien. 😉

Si j'ai bien compris, tu recherches une méthode pour détecter le nombre de ligne dans UNE cellule, c'est bien ça ?

Dans ce cas, tu vas pouvoir utiliser la fonction REGEXMATCH qui indique si une partie d'un texte correspond à une expression que tu vas définir.

Par exemple, REGEXMATCH(A1; CAR(10)) ici, la fonction REGEXMATCH vérifie dans la cellule A1, la présence du caractère CAR(10), ce qui correspond à une entrée à la ligne. En cas de présence d'entrée à la ligne, ça va te retourner "VRAI", sinon "FAUX".

Si tu veux imprimer le nombre d'occurrences d'entrées à la ligne CAR(10) de ta colonne A par exemple, tu insères une nouvelle colonne quelque part dans ton document et voici la formule :
=ArrayFormula(SI(ESTVIDE(A1:A);;CNUM(NBCAR(A1:A))-CNUM(NBCAR(SUBSTITUE(A1:A;CAR(10);"")))+1))

Celle-ci va scruter toute ta colonne A (A1:A), vérifier si la cellule est vide ou non, si elle est vide rien ne se passe, sinon elle calcule le nombre de ligne dans la cellule en question.

Attention toutefois, il faut bien différencier ces deux choses :
  • une entrée à la ligne qui est présente dans le texte (qui est bien détectable par REGEXMATCH) > j'espère que c'est ton cas, sinon rien de tout ça ne marchera,
  • une entrée à la ligne qui se fait automatiquement dans Google Sheets pour des raisons de lisibilité, cette dernière étant simplement une mise en forme (n'est PAS détectable par REGEXMATCH et je ne sais pas s'il y a une solution à ce niveau là).
Si tu parles des entrées à la ligne qui sont présentes dans le texte, je te laisse apprécier le résultat. 😎
Je t'ai fait une petite démo en image :Image

A++ 😉,
Ahmet

Re: Compter les lignes d'un texte dans une cellule

Publié : 23 janv. 2023 17:25
par dubs_one
Bonjour NC-Ahmet ! 
Merci pour ta réponse et ta solution, j'ai envie de pleurer tellement c'est beau 😭
Je retrouve espoir car ce sont normalement des retours forcés à la ligne en majorité, ça devrait marcher pour mon alerte... je teste ça dés que possible demain !
(là je dois filer au sport, ma compagne n'aime pas mes nouveaux abdos de Noël )

Encore merci !
Bonne soirée et à demain pour la suite
 

Re: Compter les lignes d'un texte dans une cellule

Publié : 23 janv. 2023 17:33
par NC-Ahmet
Re,

Top. J'espère que ça conviendra. Tiens nous au courant asap.
​​​
Bonne séance de sport !

A demain ! 😉

Re: Compter les lignes d'un texte dans une cellule

Publié : 24 janv. 2023 14:44
par dubs_one
Bonjour NC-Ahmet,

Nickel ! J'ai tardé à te répondre car j'ai dû revoir mon approche pour remplir ma cellule "Descriptif" car c'était le résultat d'un rassemblement de plusieurs cellules du tableau avec des CAR(10)x2 pour recréer les paragraphes... et ça me faussait complètement le résultat...

Mais avec des SI() en cascade, et un peu d'arithmétique, c'est passé !
Et comme c'était pour une seule cellule, j'ai enlevé la première fonction de ta formule :
=SI(ESTVIDE(FAB!A8);"0";CNUM((NBCAR(FAB!A8))-NBCAR(SUBSTITUE(FAB!A8;CAR(10);""))))

C'est à la fois frustrant et hyper stimulant quand après avoir galéré à vouloir absolument trouver A alors que ce n'est pas possible, quelqu'un te montre qu'il suffit juste de changer de point de vue et te trouve A en faisant B moins C. Un grand merci pour le déblocage, j'ai maintenant une petite alerte qui s'affiche pour prévenir que le texte dépasse bien de la cellule à la ligne près 🥳

Bon maintenant, je m'attaque à une autre problématique... Sur cette fiche de suivi, je ne peux afficher qu'une seule ligne pour la date (cellule contrainte en taille).
Hors dans certains cas, dans le planning je dois préciser si c'est le matin ou l'après-midi "sous la date".
Donc cette précision n'apparait pas dans ma cellule...

Quelque chose me dit qu'avec SUBSTITUE(), je devrais pouvoir virer le CAR(10) qui me dérange 😊

Re: Compter les lignes d'un texte dans une cellule

Publié : 24 janv. 2023 14:56
par dubs_one
Du premier coup !

=SI(O3=0;"";SUBSTITUE(O3;CAR(10);" ")) 😎

Reste la 3e problématique, niveau expert :
Essayer de faire continuer le contenu de la cellule "Descriptif" sur une autre fiche de suivi A4 pour ensuite n'exporter cette 2e page que si elle est remplie...
J'ai trouvé la fonction SPLIT() qui m'a l'air pas mal pour ça... mais je vais devoir passer à un autre sujet avant de m'y attaquer.

Re: Compter les lignes d'un texte dans une cellule

Publié : 24 janv. 2023 15:13
par NC-Ahmet
Hello,

Super, je suis vraiment ravi d'avoir pu t'aider d'une manière ou d'une autre. Je vois que tu percutes bien et que t'as pu adapter la réponse à ta problématique, vraiment génial.

Pour ta troisième problématique, SPLIT est une excellente idée. Tu pourrais ensuite l'imbriquer dans un QUERY par exemple pour ne garder que les colonnes qui t'intéressent.

Exemple : dans ma cellule A1, j'ai un texte sur deux lignes. Grâce à =SPLIT(A1;CAR(10)) je vais récupérer le contenu de A1 et à chaque entrée à la ligne, je vais décaler d'une colonne vers la droite. En imbriquant mon SPLIT dans un QUERY, je vais pouvoir utiliser une requête pour ne garder que la deuxième colonne, voici la formule finale : =QUERY(SPLIT(A1;CAR(10));"SELECT Col2")

Après ça dépend totalement de tes besoins, tes contraintes et de tes données... Il y a certainement d'autres solutions également, peut-être avec un FILTER ?

Je t'invite à chercher de ton côté et si tu bloques, tu sais ce qu'il te reste à faire : nous contacter. 😉

Si tu as besoin de quoi que ce soit n'hésite surtout pas !

Au plaisir de te lire,
Ahmet