Retirer certains caractères d'une chaine de texte

Hello,

Dans une base de données, je dois récupérer des données associés à des noms.

Le problème est que parfois, un nom peut être suivi d'une chaine de caractères.

Exemple:

  • Paul
    Paul BIS

sont les mêmes

=> ma macro ne devrait pas faire de distinctions entre les 2 noms.

Je souhaiterais donc que ma macro teste les 4 derniers caractères de chaque nom et les retire s'il s'agit de " BIS"

Quelqu'un saurait-il comment faire ?

NB: Je joins un fichier démo qui illustrera peut-être plus clairement mon problème.

Merci d'avance et excellent week-end

Fab

9demo.xlsm (19.62 Ko)

bonjour,

une proposition

Sub Demo()

For i = 1 To 26
    Sheets("Source").Select
    Points = Range("B" & i)
    nom = Range("A" & i)
    If Right(nom, 4) = " BIS" Then nom = Left(nom, Len(nom) - 4)
    ' ***************************************************
    ' Ici, il devrait y avaoir le traitement du nom
    ' Si le nom se termine par " BIS" enlève la fin du nom
    ' ***************************************************
    Sheets("Cible").Select
    ' Identification dernière ligne
    DerniereLigne = Range("A65536").End(xlUp).Row
    ' Test si le nom existe dejà
    Compteur = 0
    If DerniereLigne > 1 Then
        For j = 2 To DerniereLigne
            If Range("A" & j) = nom Then
                Range("B" & j) = Range("B" & j) + Points
                Compteur = 1
                j = DerniereLigne
            End If
        Next j
    End If
    ' S'il n'a pas rencontré la condition => Compteur toujours égal à zéro
    If Compteur = 0 Then
        Range("A" & DerniereLigne + 1) = nom
        Range("B" & DerniereLigne + 1) = Points
    End If
    Compteur = 0
Next i

End Sub

C'est exactement ce que je cherchais.

Merci beaucoup.

Fab

Rechercher des sujets similaires à "retirer certains caracteres chaine texte"