Couper une chaîne de caractères...?

Bonjours à tous,

Je cherche à supprimer une partie de chaîne de caractères dans la même cellule.

J'y arrive au coup par coup en changeant la cellule (A17) avec le code suivant :

Sub Test()
Dim Valeur As String
Dim Position As Long
Dim Texte1 As String, Texte2 As String
    Valeur = InputBox("Quel est le caractere a rechercher ?")
    Position = InStr(Range("A17"), Valeur)
    If Position > 0 Then
'        Texte1 = Mid(Range("A14"), Position, 9 ^ 9)
'        MsgBox "Apres avoir supprime tout ce qui est avant le " & Valeur & " : " & Chr(10) & Texte1

        Texte2 = Mid(Range("A17"), 1, Position - 2)

'        Texte2 = Mid(Range("A14"), 1, Position)
     Range("A17") = Texte2
        MsgBox "Apres avoir supprime tout ce qui est apres le " & Valeur & " : " & Chr(10) & Texte2
    ActiveCell.Offset(0, 9) = Mid(Range("A17"), 1, Position)
'    Else
'        MsgBox "Le caractere " & Valeur & " n'est pas present dans la chaine de caracteres."
'    End If
End Sub

Je voudrais pouvoir le faire dans toute la colonne A sans avoir a changer la cellule manuellement.

Je cherche depuis midi et n'y arrive pas...

Pouvez-vous m'aider SVP...!

Bonjour,

Si j'ai bien compris ...

Un essai ...

Sub Test()
Dim Valeur As String
Dim Position As Long
Dim Texte1 As String, Texte2 As String
Dim DerLig As Long
Dim X As Long

   Valeur = InputBox("Quel est le caractere a rechercher ?")
   DerLig = Cells(Rows.Count, "A").End(xlUp).Row

   For X = 1 To DerLig  ' << adapter la première ligne au besoin
      Position = InStr(Range("A" & X), Valeur)
      If Position > 0 Then
         '        Texte1 = Mid(Range("A14"), Position, 9 ^ 9)
         '        MsgBox "Apres avoir supprime tout ce qui est avant le " & Valeur & " : " & Chr(10) & Texte1

         Texte2 = Mid(Range("A" & X), 1, Position - 2)

         '        Texte2 = Mid(Range("A14"), 1, Position)
         Range("A" & X) = Texte2
         MsgBox "Apres avoir supprime tout ce qui est apres le " & Valeur & " : " & Chr(10) & Texte2
         ActiveCell.Offset(0, 9) = Mid(Range("A" & X), 1, Position)
         '    Else
         '        MsgBox "Le caractere " & Valeur & " n'est pas present dans la chaine de caracteres."
      End If
   Next X
End Sub

ric

Bonjour

Bonjour à tous

Une variante.

Bye !

37text-v1.xlsm (20.81 Ko)

Bonsoir ric et gmb,

Merci de vous être intéressé à mon problème...

Merci gmb pour ta version, mais elle ne supprime qu'un seul caractère, alors que je voulais supprimer tout ce qui est après le caractère.

Mais je la garde en réserve pour une autre utilisation.

ric, c'est parfait, a force de m'acharner a vouloir adapter la ligne InStr, J'en avais oublié la boucle, J'y ai pensé dans l'après-midi au volant de ma voiture et je me suis traité d'âne...

Ta version fonctionne parfaitement...

Merci encore a tous les deux pour votre aide...

Rechercher des sujets similaires à "couper chaine caracteres"