Compter les lignes d'un texte dans une cellule Le sujet est résolu

Avatar de l’utilisateur
dubs_one
Messages : 10
Inscription : 20 janv. 2023 14:23
A remercié : 1 fois
Remercié : 2 fois

Compter les lignes d'un texte dans une cellule

Message 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 😅
Avatar de l’utilisateur
NC-Ahmet

Coach Numericoach
Invétéré
Messages : 87
Inscription : 19 sept. 2022 14:09
A remercié : 16 fois
Remercié : 19 fois

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

Message 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
Avatar de l’utilisateur
dubs_one
Messages : 10
Inscription : 20 janv. 2023 14:23
A remercié : 1 fois
Remercié : 2 fois

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

Message 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
 
Avatar de l’utilisateur
NC-Ahmet

Coach Numericoach
Invétéré
Messages : 87
Inscription : 19 sept. 2022 14:09
A remercié : 16 fois
Remercié : 19 fois

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

Message par NC-Ahmet »

Re,

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

A demain ! 😉
Avatar de l’utilisateur
dubs_one
Messages : 10
Inscription : 20 janv. 2023 14:23
A remercié : 1 fois
Remercié : 2 fois

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

Message 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 😊
DerniÚre modification par dubs_one le 24 janv. 2023 14:59, modifié 1 fois.
Avatar de l’utilisateur
dubs_one
Messages : 10
Inscription : 20 janv. 2023 14:23
A remercié : 1 fois
Remercié : 2 fois

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

Message 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.
Avatar de l’utilisateur
NC-Ahmet

Coach Numericoach
Invétéré
Messages : 87
Inscription : 19 sept. 2022 14:09
A remercié : 16 fois
Remercié : 19 fois

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

Message 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
RĂ©pondre

Rejoignez la discussion 💬

Vous devez ĂȘtre enregistrĂ© pour participer Ă  la discussion et Ă©changer avec les diffĂ©rents membres

Inscrivez-vous dĂšs aujourd'hui

Vous n'ĂȘtes pas encore membre ? Rejoignez-nous gratuitement dĂšs aujourd'hui et contribuer en postant votre rĂ©ponse ou question sur tous les forums disponibles

Inscription

Connectez-vous