Compter le nbre de ligne dans une cellule y compris les retours à la ligne

Bonjour,

Je cherche un moyen de compter le nombre de lignes d'un texte à l'intérieur d'une place de cellules

en tenant compte des retours à la ligne automatique et des retours chariots

J'ai trouvé dans ce forum une réponse qui est parfaite avec les retours chariots

1-Function nblignes(cel As Range)

2-nblignes = 1

3-For i = 1 To Len(cel.Value)

4-If Asc(Mid(cel.Value, i, 1)) = 10 Then nblignes = nblignes + 1

5-Next

6-End Function

Par contre, ce code ne tient pas compte des retours à la ligne automatique quand le texte dépasse la largeur prévue de la colonne

Dans le fichier joint, la macro calcul 8 lignes au lieu des 12 présentes

J'ai beaucoup cherché et avant de laisser tomber je tente ma chance sur ce forum

Je ne suis pas du tout un spécialiste VBA et je post pour la première fois ;o)

(d'ailleurs je n'ai pas compris comment insérer le code proprement, désolé)

Merci pour vos réponses

Patric_k

9nbdelignes.xlsm (27.03 Ko)

bonjour

je ne comprends pas ton BUT, quelle est l'utilité de compter les retours à la lignes automatiques ?

Bonjour,

Je dois gérer de grand texte et Excel limite la hauteur de ligne à 409

Je cherche donc le moyen de faire une mise en page automatique (presse bouton) en fonction du texte saisi

C'est la raison pour laquelle, j'ai fusionné 3 lignes qui représentent un maximum de 3 fois 409

Cela représente un texte pouvant contenir environ 87 lignes de texte (ce qui est déjà pas mal)

J'ai écrit une première macro qui ajuste chacune des 3 lignes en fonction du texte et qui fonctionne bien

mais elle ne tient pas compte des retours à la ligne

Merci

Bonjour,

un exemple par une fonction personnalisée à coller dans ton fichier.

Par contre, ce code ne tient pas compte des retours à la ligne automatique quand le texte dépasse la largeur prévue de la colonne

Dans le fichier joint, la macro calcul 8 lignes au lieu des 12 présentes

j'ai répondu un peu vite car en fait tu avais déjà récupéré le code !

Pour moi, compter les retour auto, c'est impossible ... tout au plus on pourrait déterminer (peut-être) la position de la cellule en dessous et en déduire le nombre de lignes, mais ce n'est possible que si les lignes sont affichées !

Merci Steelson

C'est effectivement ton code que j'ai utilisé

Je n'avais pas pensé du tout au problème du retour à la ligne

Ci-joint la macro complète pour mieux comprendre les différences obtenues

En tous cas merci

4nbdelignes-v2.xlsm (34.25 Ko)

Je dois gérer de grand texte et Excel limite la hauteur de ligne à 409

Je cherche donc le moyen de faire une mise en page automatique (presse bouton) en fonction du texte saisi

Bon, excel n'est pas vraiment un traitement de texte !

Quel est le but ultime de ton application ? on peut contourner le problème et trouver d'autres solutions, comme les zones de texte, ...

Je sais bien qu'Excel n'est pas fait pour gérer du texte et je croyais avoir trouvé la solution grâce à toi

Il s'agit d'une application de demande de subvention ou il y a du texte (quelque fois très long ...), des données chiffrées, des dates, des listes déroulantes, etc ...

La solution de contournement est de demander aux utilisateurs de segmenter eux mêmes le texte quand il dépasse la hauteur de 409

C'est déjà ce qu'ils font aujourd'hui mais comme ce n'est pas super pratique pour eux, j'essayais de trouver un truc automatique

J'y étais presque

J'ai déjà essayé les zones de textes (il y a longtemps) mais je me heurte à autre chose

Certains champs textes sont repris dans d'autres feuilles du classeur

et d'autres sont utilisés pour du publipostage (macro)

Autre solution de contournement,

demander aux utilisateurs de faire eux mêmes le retour chariot à la fin de la ligne

Dans ce cas la macro fonctionne très bien

C'est surement la solution la moins pire pour eux

Je demanderai quelles est leurs préférences ..

On pourrait en VBA faire en sorte qu'à chaque retour chariot on change de cellule ... quitte à ajouter une ligne si des valeurs sont présentes en dessous. Et limiter chaque paragraphe en nombre de caractères (comme on peut le voir sur certains sites qiu affichent "il reste xxx caractères)

Je vais rester sur une des 2 solutions de contournement

  • segmenter le texte manuellement
  • faire un retour chariot manuellement

Je ne souhaite pas trop compliquer les choses et comme je suis un amateur ...

Merci en tout cas d'avoir pris du temps pour me répondre

Rechercher des sujets similaires à "compter nbre ligne compris retours"