Séparer un texte en plusieurs parties d'une longueur maximale définie

Bonjour à tous,

tout est dans le titre, je n'ai pas réussi à trouver mon bonheur.

J'ai un texte de potentiellement plus de 2000 caractères.

Je voudrais que quand il dépasse 2000 il me le coupe et me donne 2 parties, 1 première avec les 2000 et une seconde avec le reste.

Ex: Mon texte fait 4500 caractères, je voudrais 3 parties, 2 de 2000 et une de 500.

Bonjour funky

Vous voulez le résultat de quelle manière... Formule ou VBA, il faut être plus explicite

@+

Bonjour,

Avec une fonction personnalisée

si texte en A, en B1 saisir:

=Separe(A1)

Le texte est fragmenté tout les 2000 caractères et renvoyé à la ligne.

Cdlt

Hello, merci pour vos réponses, j'aurai aimé du code vba si possible.

Edit: J'avais pas ouvert le fichier

Function Separe(cellule As String) As String
    Dim NbCar As Long, NbSepa As Long, Deb As Long, i As Long
    NbCar = Len(cellule)
    NbSepa = Int(NbCar / 2000)
    If NbSepa > 1 Then
        Deb = 1
        For i = 1 To NbSepa + 1
            Texte = Texte & Chr(10) & Mid(cellule, Deb, 2000)
            Deb = Deb + 2000
        Next i
    End If
    Separe = Right(Texte, Len(Texte) - 1)
End Function

Du coup j'arrive pas bien à saisir l'output de la fonction separe.

Il faudrait que je puisse récupérer une variable par exemple output(x) où x est le numéro de la partie de texte

De cette façon je fais une boucle à appliquer sur chaque partie de texte du style

For i = LBound(output) to UBound(output)
Mon code appliqué à output(i)
Next i

Bon j'ai bricolé un truc à partir de l'exemple, ça fonctionne. J'ai juste modifié pour que ça coupe pas entre les mots.

Public Function split_text(text_to_split As String, nb_car As Long)

'spliter le texte entre chaque mot
split_inter = Split(text_to_split, " ")
'initialiser une variable tableau
Dim split_text_inter() As String
j = 0
'dimensionner le tableau à 0 initialement
ReDim split_text_inter(j)
'Boucle par chaque mot
For i = LBound(split_inter) To UBound(split_inter)
'Si le mot n'est pas vide
    If split_inter(i) <> "" Then
'Incrémenter la variable tableau avec le mot séparé par un espace
        If split_text_inter(j) <> "" Then
        split_text_inter(j) = split_text_inter(j) & " " & split_inter(i)
        Else
        split_text_inter(j) = split_inter(i)
        End If
'Quand on arrive à la limite de caractère, passer à la prochaine valeur tableau
        If Len(split_text_inter(j)) > nb_car And i <> UBound(split_inter) Then
        j = j + 1
'Redimensionner la variable tableau avec la prochaine valeur
        ReDim Preserve split_text_inter(j)
        End If
    End If
Next i
'Faire correspondre la variable tableau avec la variable de la fonction
split_text = split_text_inter

End Function

Si jamais ça peut servir à quelqu'un

Rechercher des sujets similaires à "separer texte parties longueur maximale definie"