Découper une phrase sans couper les mots

  • Initiateur de la discussion Initiateur de la discussion kaki31
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

kaki31

XLDnaute Occasionnel
Bonsoir tout le monde;

Y'a t'il un moyen pour découper une phrase en deux lignes avec nombres de caractères déterminé, 40 caractères en B2 et le reste en B3 sans couper les mots.

Merci 🙂
 
Re : Découper une phrase sans couper les mots

Re,

Que ce soit le "Decoupe" d'Habitude, le "coupe" de ROGER2327, ou le "Scinderchaine" de david84, et même sur excel 2003, il faut :
1° Accepter l'exécution des macros,
2° Valider la formule sur 2 cellules avec Ctrl+Majuscule+entrée
🙂
 
Re : Découper une phrase sans couper les mots

Bonsoir ;

J'ai exploité le code de ROGER2327, et j'ai remarqué qu'il y'a des "*" sur la première ligne et ce malgré que le texte n'est pas terminée.

Normalement

1-il y'a découpage du texte sans couper de mots si ça dépasse les 40 caractères

puis

2-completer par des "*" sur les deux lignes si le texte et terminé sans dépasser toujours 40 caractères et 80 caractères 😕

c-a-d que les "*" viennent après la dernière lettre du texte.

Merci

🙂
 

Pièces jointes

Re : Découper une phrase sans couper les mots

Re...



Ce doit être parce que vous avez demandé ceci au message #7 :
(...) comment ajouter des " * " pour compléter le nbre de caractères (40 & 80) si le nombre de caractère est inférieur a 40 dans la 1ère ligne et inférieur a 80 dans la 2eme ligne (...)
D'ailleurs mes petits camarades ont compris la même chose comme vous le montrera le classeur joint.​



ROGER2327
#5902


Samedi 7 Merdre 139 (Nativité de Monsieur Plume, propriétaire - fête Suprême Quarte)
5 Prairial An CCXX, 9,6186h - canard
2012-W21-4T23:05:04Z
 

Pièces jointes

Re : Découper une phrase sans couper les mots

Re...


Pas grave ! Voyez d'autres solutions dans le classeur joint et dites s'il y en a une qui convient.​



ROGER2327
#5903


Samedi 7 Merdre 139 (Nativité de Monsieur Plume, propriétaire - fête Suprême Quarte)
5 Prairial An CCXX, 9,7929h - canard
2012-W21-4T23:30:10Z
 

Pièces jointes

Re : Découper une phrase sans couper les mots

Bonjour,
Merci Roger pour ce fichier test.
Ci-joint ma proposition modifiée :
Code:
Function ScinderChaine(chaine As String, Optional l As Double = 40, Optional c As String = "*") As Variant
Dim oRegExp As Object, Matches As Object, i As Byte, sep As Byte, T()
Set oRegExp = CreateObject("vbscript.regexp")
With oRegExp
    .Global = True
    .MultiLine = True
    .Pattern = "\s"
        Set Matches = .Execute(chaine)
        If Matches.Count > 0 Then
            For i = 0 To Matches.Count - 1
                If Matches.Item(i).firstindex <= l And Matches.Item(i).firstindex > sep Then _
                sep = Matches.Item(i).firstindex
            Next i
        End If
        ReDim T(1)
        T(0) = IIf(sep > 0, Left(chaine, sep), chaine)
        If Len(T(0)) < l Then T(0) = T(0) & _
        Application.WorksheetFunction.Rept(c, l - Len(T(0)))
        T(1) = IIf(sep > 0, Trim(Right(chaine, Len(chaine) - sep)), "")
        If Len(T(1)) < l * 2 Then T(1) = T(1) & _
        Application.WorksheetFunction.Rept(c, l * 2 - Len(T(1)))
End With
ScinderChaine = Application.Transpose(T)
End Function
Ceci-dit, même si elle semble répondre correctement aux exemples proposés dans votre fichier (mis à part l'exemple où la cellule est vide et ou j'ai proposé une variante), je pense que l'utilisation d'une expression rationnelle ne s'impose pas dans ce cas : Split fait bien l'affaire, donc autant l'utiliser.

Il faut donc prendre ma proposition comme un moyen d'expérimenter l'utilisation d'expression rationnelle, mais pas comme l'outil qui fait vraiment la différence comme cela peut être le cas dans d'autres exemples (ce qui me semble intéressant dans le cas présent pour ceux que le sujet intéresse est l'utilisation de FirstIndex permettant de trouver l'endroit où couper la chaîne de caractères initiale).

Si vous trouvez néanmoins d'autres exemples qui ne ramènent pas le résultat escompté, je verrai comment modifier ma proposition en conséquence, la limite à l'exercice étant de ne pas monter une usine à gaz avec du RegExp alors que Split permet d'aboutir au résultat voulu de manière simple.
A+
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
19
Affichages
696
Réponses
12
Affichages
351
Retour