![]() |
|
Forum
|
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
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 |
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
Guest
Messages: n/a
|
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 |
|
|
#3 (permalink) |
|
Guest
Messages: n/a
|
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 |
|
|
#4 (permalink) |
|
Guest
Messages: n/a
|
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 |
|
|
#5 (permalink) |
|
Guest
Messages: n/a
|
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 |
| Liens sociaux |
| Outils de la discussion | |
|
|