Supprimer chaine caractere VBA

Bonjour,

je souhaite en VBA supprimer la chaine de caracteres "-TSxx" en fin de colonne S.

Exemple:

"450/750V-2x2.5mm2-CU-XLPE-UA-TS67"

Resultat que je souhaite obtenir => 450/750V-2x2.5mm2-CU-XLPE-UA

-TSxx se trouvera toujours en fin de chaine de caractere et sera toujours d'une longueur de 5 caracteres.

J'ai essayé de faire un VBA mais j'ai du raté quelque chose (voir module4).

Merci de votre aide !

Bonjour,

Votre syntaxe n'est pas correcte et ne peut donc pas fonctionner...

Un essai (non testé) :

Sub deleteTSxx()

Dim i As Long

With Sheets("Sheet 1")
    For i = 13 To .Cells(Rows.Count, "E").End(xlUp).Row
        If .Cells(i, 19) Like "*-TS##" Then
            .Cells(i, 19) = Left(.Cells(i, 19), Len(.Cells(i, 19)) - 5) 'Renvoie le contenu moins les 5 caractères de droite
        End If
    Next
End With

End Sub

Si besoin : https://docs.microsoft.com/fr-fr/dotnet/visual-basic/language-reference/operators/like-operator

Merci Pedro22.

J'avais ce message d'erreur:

Compile error: Can't find project library.

J'ai ajouté un "." deavnt fonction .left et .Len mais j'obtiens un autre message au moment d'exécuter la fonction après le IF:

Run-time error '438':

Object doesn't support this property or method.

Sub deleteTSxx()
Dim i As Long

With Sheets("Sheet1")
    For i = 13 To Cells(Rows.Count, "E").End(xlUp).Row
        If .Cells(i, 19) Like "*-TS##" Then
            .Cells(i, 19) = .Left(.Cells(i, 19), .Len(.Cells(i, 19)) - 5) 'Renvoie le contenu moins les 5 caractères de droite
        End If
    Next
End With
End Sub

Il n'y a pourtant pas de fonction spécifique là-dedans... Ca ressemble plutôt à un soucis avec ton fichier voire ton Excel.

Il n'y a pourtant pas de fonction spécifique là-dedans... Ca ressemble plutôt à un soucis avec ton fichier voire ton Excel.

Merci Pedro22,

j'avais oublié de retirer le "." devant Cells

Sub deleteTSxx()
Dim i As Long

With Sheets("Sheet1")
    For i = 13 To Cells(Rows.Count, "E").End(xlUp).Row
        If .Cells(i, 19) Like "*-TS##" Then
            .Cells(i, 19) = Left(Cells(i, 19), Len(Cells(i, 19)) - 5) 'Renvoie le contenu moins les 5 caractères de droite
        End If
    Next
End With
End Sub

Tout fonctionne merci !

Bonjour à tous,

la correction que tu as faites ne fonctionnera bien que si la feuille "sheet 1" est la feuille active

voici la correction qui devrait fonctionner même si sheet 1 n'est pas la feuille active

Sub deleteTSxx()
Dim i As Long

With Sheets("Sheet1")
    For i = 13 To .Cells(Rows.Count, "E").End(xlUp).Row
        If .Cells(i, 19) Like "*-TS##" Then
            .Cells(i, 19) = Left(.Cells(i, 19), Len(.Cells(i, 19)) - 5) 'Renvoie le contenu moins les 5 caractères de droite
        End If
    Next
End With
End Sub
Rechercher des sujets similaires à "supprimer chaine caractere vba"