Diviser une chaine de caracteres en colonnes sans coupure du dernier mot

  • Initiateur de la discussion Initiateur de la discussion mitou
  • 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 !

mitou

XLDnaute Nouveau
A l'aide,
J'ai une chaine de caractères (150 et plus) que je souhaite répartir en X colonnes de 30 caractères maxi mais je ne souhaite pas que le dernier mot soit coupé.
ex : Dans le cadre de la réalisation du nouveau télésiège débrayable 6 places , il est nécessaire de créer un nouveau poste de transformation.
Si j'applique la fonction STXT, j'obtiens "Dans le cadre de la réalisati" dans la première colonne alors que je préfèrerais "Dans le cadre de la" et ainsi de suite
Merci de me répondre
 
Re : Diviser une chaine de caracteres en colonnes sans coupure du dernier mot

Bonjour mitou
Un essai :
VB:
Sub Par30()
Dim s$, n%, oCel As Range, x$, sp
  With Selection 'ou toute autre plage qu'on veut traiter.
     For Each oCel In .Cells
      n = 0
      s = CStr(oCel.Value)
      Do
        n = n + 1
        sp = Split(Trim(StrReverse(Left$(CStr(s), 30))) & " ", , 2)
        x = Trim(StrReverse(sp(1 + (sp(1) = ""))))
        oCel.Offset(0, n).Value = x
        s = Trim(Replace(s, x, "", 1, 1))
      Loop Until s = ""
    Next
  End With
End Sub
À placer dans un module standard quelconque. La procédure opère sur la feuille active.
Mode d'emploi
: Sélectionner la (ou les) cellule(s) à traiter et exécuter la procédure.​
ROGER2327
#5033


Mardi 10 Pédale 138 (Nativité de Saint Tancrède, jeune homme, SQ)
14 Ventôse An CCXIX
2011-W09-5T15:03:50Z
 
Re : Diviser une chaine de caracteres en colonnes sans coupure du dernier mot

Bonjour,

Une tentative avec formule nommée et formule matricielle

Voir le fichier joint


Le tout, sous réserve d'avoir bien compris le problème.

@+
 

Pièces jointes

Re : Diviser une chaine de caracteres en colonnes sans coupure du dernier mot

Bonjour mitou, salut Roger, Tibo 🙂

Il me semble que le problème est le même que celui traité à la fin de ce fil :

https://www.excel-downloads.com/thr...ue-avant-le-xeme-caractere-dune-suite.108359/

J'y avais commis le fichier joint avec cette fonction macro :

Code:
Function Ventile$(texte$, N%, rang%)
Dim i%, deb%, fin%
texte = Application.Trim(texte) & " "
For i = 1 To rang
  deb = fin + 1
  fin = InStrRev(Left(texte, deb + N), " ")
Next
Ventile = Trim(Mid(texte, deb, fin - deb + 1))
End Function
A+
 

Pièces jointes

Re : Diviser une chaine de caracteres en colonnes sans coupure du dernier mot

Bonjour à tous, bonjour Roger2327, Tibo et Job75

Même remarque que job75 : Mitou, pourquoi n'utilises tu pas, ou n'adpates tu pas les solutions proposées sur l'autre fil ?

@ plus
 
- 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

Retour