Découper un texte en phrase

B

Babe

Guest
Bonsoir le forum,

Je voudrais pouvoir insérer un texte dans la cellule A1 et à l'aide d'une macro, "désintégrer" ce texte en fonction de la présence de ':' ou de '.' dans le texte. Le format final serait d'avoir une phrase (si '.') ou bout de phrase (si ':') par ligne dans la colonne A.

J'espère arriver de me faire comprendre.

Merci d'avance.

BABE
 
R

Rénato

Guest
Bonsoir Babe,

Je pense que tu peux tout à fait te dispenser d'une macro dans le cas présent.
En fait le sous menu "convertir " du menu "données", doit tout à fait satisfaire à ta demande.
Petite précision , sur le premier masque de l'assistant, choisir l'option "délimité" afin de renseigner sur le second masque ce que sera ton séparateur de texte :) ou , ou ; ou autres...)

Principe : selectionner tout le texte à désintégrer (c'est ton terme), activer le menu précité, puis suivre les instructions de l'assistant.

Bonne continuation

A+

Rénato
 
B

Babe

Guest
Bonjour Renato, bonjour le forum,

Je te remercie de ta réponse. J'ai essayé mais le texte se retrouve à être "désintégrer" sur une même ligne.
Or je souhaiterais que mon texte contenu dans la cellule A1 se retrouve divisé dans les cellules A2 jusqu'à A .... et de sorte à ce que dans chaque cellule, je n'ai qu'une phrase.

Peut être n'y a t il pas de solution.

Babe
 
M

michel

Guest
bonjour Babe , bonjour Rénato

tu peux tester cette macro qui extrait les phrases en fonction de la ponctuation "." et ":" .
le texte initial est dans la Cellule A1 et les phrases s'affichent dans la premiere colonne , à partir de la Cellule A2


Sub extractionPhrases()
Dim j As Integer
Dim i As Long, Valeur1 As Long, Valeur2 As Long
Dim Cible As Long
Dim Texte As String

j = 1
Texte = Range("A1")

For i = 1 To Len(Texte)
Valeur1 = InStr(i, Texte, ".")
Valeur2 = InStr(i, Texte, ":")

If Valeur1 < Valeur2 Then Cible = Valeur1 Else Cible = Valeur2
If Valeur2 = 0 And InStr(1, Texte, ":") > 0 Then Cible = Valeur1

j = j + 1
Cells(j, 1) = Mid(Texte, i, Cible - i + 1)
i = Cible
Next i

End Sub


il existe sans doute d'autres solutions mieux adaptées


bon après midi
MichelXld
 
R

Rénato

Guest
bonjour Babe, Salut Michel,

En fait je persiste qu'avec l'assistant on arrive au bout, il est vrai que je n'avais pas saisi dans ton premier topic que tu souhaitais un saut de ligne Babe.

Une fois l'opération réalisée avec l'assistant, tes données se trouveront "désintégrées" (j'adore) sur la ligne ou elles ont été traitées.
Si tu selectionnes l'ensemble des cellules en question, puis que tu fais un copier, puis collage spécial "transposé" à partir de la première cellule adjacente en dessous, tu dois obtenir ton résultat.

Ceci sans VBA, cependant coup de chapeau à Michel pour son script.

cordialement

Rénato
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 196
Messages
2 086 098
Membres
103 116
dernier inscrit
kutobi87