Récupération des première phrase dans une limite de caractère

Sn4ke

XLDnaute Nouveau
Bonjour à vous,

N'ayant as été déçus des choses que j'ai apprise grâce à ce forum, je reviens encore une fois :)
Cette fois mon "problème" est que j'aimerais récupérer les premières phrases d'une cellule tout en restant dans une limite de caractère (200 en l’occurrence dans le document joint).
Ce qui signifie donc que si en récupérant une phrase de plus, on dépasse la limite de caractère je ne la récupère pas.

Voila, j’espère ne pas avoir été trop brouillon, sinon n'hésitez pas à me demander des éclaircissement.

Merci d'avance pour vos pistes,
Sn4ke
 

Pièces jointes

  • test.xlsx
    9.3 KB · Affichages: 31
  • test.xlsx
    9.3 KB · Affichages: 31
  • test.xlsx
    9.3 KB · Affichages: 36

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Récupération des première phrase dans une limite de caractère

Bonjour Sn4ke

une solution par macro en pièce jointe

à+
Philippe
 

Pièces jointes

  • 111.xlsm
    19.1 KB · Affichages: 43
  • 111.xlsm
    19.1 KB · Affichages: 39
  • 111.xlsm
    19.1 KB · Affichages: 38

david84

XLDnaute Barbatruc
Re : Récupération des première phrase dans une limite de caractère

Bonsoir, salut Philippe,
à tester :
Code:
Sub toto()
Dim oRegExp As Object, oMatches As Object, i&, j&, max As Byte
Set oRegExp = CreateObject("vbscript.regexp")
oRegExp.Global = True
oRegExp.Pattern = "[\.?!]"
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
    If oRegExp.test(Range("A" & i).Value) Then
        Set oMatches = oRegExp.Execute(Range("A" & i).Value)
        max = oMatches.Count - 1
        For j = max To 0 Step -1
            If oMatches.Item(j).firstindex < 200 Then _
            Range("C" & i).Value = Left(Range("A" & i).Value, oMatches.Item(j).firstindex + 1): Exit For
        Next j
    End If
Next i
End Sub
A+
 

Statistiques des forums

Discussions
312 229
Messages
2 086 424
Membres
103 206
dernier inscrit
diambote