Macro supprimer bout de phrase

Bonsoir,

J'aurais besoin de votre aide sur un tableau.

Mon problème se situe exclusivement en colonne N.

Cette colonne fait apparaître des motifs concernant des anomalies.

Je voudrais, via une macro clic, faire disparaire la fin de phrase "--> anomalie de x euros" des lors qu'un début de cette phrase il n y a pas "- Vous"

Exemple de ma cellule N3 le motif indiqué est :

anomalie pour les presta du 08/03/17 :

  • fournisseur 111114554 (Dol) liasse 833 facture 55 payée le 10/04/2017 archive 11211709360010000 --> anomalie de 28,55 euros.

je voudrais qu'en cliquant sur la macro le motif devienne :

anomalie pour les presta du 08/03/17 :

  • fournisseur 111114554 (Dol) liasse 833 facture 55 payée le 10/04/2017 archive 11211709360010000.

la macro a enlèvé le "--> anomalie de 28.55 euros" et ne laisse le "--> anomalie de x euros" que pour les phrases commençant par "- Vous"

Dans mon tableau j'ai mis en colonne P le résultat attendue après avoir lancé la macro.

J'espère que quelqu'un pourra m'aider

Par avance merci

Bonne soirée

Eno

10test-ano.xlsx (11.38 Ko)

Bonjour,

Je fais remonter

En espérant une aide.

Bonne journée

Bonsoir

Une petite aide?

par avance merce

Bonjour,

Voici une piste, les commentaires sont dans le code pour compréhension :

Sub Motif()

    Dim Plage As Range
    Dim Cel As Range
    Dim T
    Dim Chaine As String
    Dim Pos As Integer
    Dim I As Integer

    'défini la plage en colonne N à partir de N2
    With ActiveSheet: Set Plage = .Range(.Cells(2, 14), .Cells(.Rows.Count, 14).End(xlUp)): End With

    parcours
    For Each Cel In Plage

        'fractionne la chaine au niveau des retours à la ligne
        T = Split(Cel.Value, Chr(10))

        For I = 0 To UBound(T)

            'si le mot "Vous" est dans la ligne, elle est évitée (quelle que soit ça position sinon, adapter)
            If InStr(T(I), "Vous") = 0 Then

                'recherche la chaine "-->"
                Pos = InStr(T(I), "-->")

                'si trouvé, la supprime avec ce qui se trouve après
                If Pos <> 0 Then

                    T(I) = Left(T(I), Pos - 2)

                End If

            End If

        Next I

        'reconstruit la chaine avec les retours à la ligne
        For I = 0 To UBound(T)

            Chaine = Chaine & T(I) & Chr(10)

        Next I

        'supprime le dernier retour
        Chaine = Left(Chaine, Len(Chaine) - 1)

        'puis change dans la cellule
        Cel.Value = Chaine

        'prépare pour la cellule suivante
        Chaine = ""

    Next Cel

End Sub

bonjour

salut Theze

avec Power Query on peut nettoyer un texte qui est un peu organisé

dasn Excel, menu Données "récupérer" puis voir des tutos

ensuite la requête est mise en mémoire, il suffit d'actualiser quand on veut.

mieux : visualiser dans Power BI Desktop gratuit

Bonjour these!

Merci pour ton aide!

J ai lancé le code et j ai eu une erreur au niveau de "parcours"

N étant pas expert, peux-tu me confirmer qu' il faut juste rajouter le ' devant parcours.

En mettant l'apostrophe ton code fonctionne parfaitement.

Un énorme merci à toi!

Bonne journée

Bonjour,

peux-tu me confirmer qu' il faut juste rajouter le ' devant parcours.

Tu as tout à fait raison, il faut mettre une apostrophe de "parcours" qui est un commentaire, désolé pour l'oubli

Coucou

Merci pour la réponse

Et encore merci pour ton aide

Bonne journée

Rechercher des sujets similaires à "macro supprimer bout phrase"