Supprimer les 2 premiers caractères selon certain critères

Bonjour,

je m'appelle Yohanes et je m'excuse de vous déranger. J'ai un petit problème pour savoir comment supprimer les deux premiers caractères d'une cellule dans deux colonnes selon des conditions à partir d'un Userform.

Ces conditions sont les suivantes :

Si la cellule commence par "gu", "ku", kw" alors les deux premiers caractères (c'est à dire en fait le "gu", "ku", "kw" sont supprimés)

Si la cellule commence avec n'importe quel autre lettre, aucune suppression n'est faîte.

Voici ce que j'ai commencer à écrire, mais je ne sais pas rajouter la condition. Pourriez vous m'aider svp ?

Private Sub valider_Click()

Dim i As Long, j As Long, mot As String, participe As String, iRow As Long, iCol As Long, col As Long

Dim ws As Worksheet, pas As Worksheet, espace As Long, phrase As String, mot1 As String, nom As String

i = Me.premiere

j = Me.derniere

col = Me.colonne

Set ws = Worksheets("participe")

Set pas = Worksheets("Passes")

For iRow = i To j

mot = pas.Cells(iRow, 1).Value

ws.Cells(iRow, 1).Value = mot

ws.Cells(iRow, 2).Value = mot

For iCol = 3 To col

If pas.Cells(iRow, iCol).Value = "" Then

Else

participe = pas.Cells(iRow, iCol).Value

ws.Cells(iRow, 3).Value = participe

End If

Next

Next

Set pas = Worksheets("participe")

For iCol = 2 To 3

For iRow = 2 To 10000 ' à cet endroit j'aimerais insérer la condition si et seulement si

'le mot ou la phrase commence par les termes : "gu", "kw" ou "ku" dans les colonnes B et C alors...

'supprimer les deux premières lettres sinon pour tous les autres aucune suppression

mot1 = pas.Cells(iRow, iCol).Value

phrase = Mid(mot1, 3)

espace = InStr(phrase, " ")

mot = Left(phrase, espace)

mot = Replace(mot, " ", "")

nom = Mid(phrase, espace + 1)

pas.Cells(iRow, iCol).Value = phrase

Next

Next

On Error Resume Next

With Worksheets("participe")

.Activate

.PivotTables(1).PivotCache.Refresh

End With

Unload Me

End Sub

Petite explication :

L'userform copie des données d'une autre feuille et les dispatche en 3 colonnes dans la feuille "participe" : Colonne A l'infinitif, Colonne B le radical (qui est l'infinitif sans le gu, ku, kw) et Colonne C le participe passé (qui lui aussi ne devrait pas avoir le "gu", "ku", "kw". Mon problème est que pour les colonnes B et C la marque de l'infinitif le "gu", "ku", "kw" sont toujours là et quand j'utilise le code écrit plus haut la suppression affecte toute les cellules sans regarder préalablement si elles ont le défaut que je souhaite supprimer.

Merci d'avance

Bonjour

Avec un fichier cela serait plus facile

Essayes

Private Sub valider_Click()
Dim i As Long, j As Long, mot As String, participe As String, iRow As Long, iCol As Long, col As Long
Dim ws As Worksheet, pas As Worksheet, espace As Long, phrase As String, mot1 As String, nom As String

  i = Me.premiere
  j = Me.derniere
  col = Me.colonne

  Set ws = Worksheets("participe")
  Set pas = Worksheets("Passes")

  For iRow = i To j
    mot = pas.Cells(iRow, 1).Value
    ws.Cells(iRow, 1).Value = mot
    ws.Cells(iRow, 2).Value = mot

    For iCol = 3 To col
      If pas.Cells(iRow, iCol).Value = "" Then
      Else
        participe = pas.Cells(iRow, iCol).Value
        ws.Cells(iRow, 3).Value = participe
      End If
    Next
  Next

  Set pas = Worksheets("participe")

  For iCol = 2 To 3
    For iRow = 2 To 10000
      ' à cet endroit j'aimerais insérer la condition si et seulement si
      'le mot ou la phrase commence par les termes : "gu", "kw" ou "ku" dans les colonnes B et C alors...
      'supprimer les deux premières lettres sinon pour tous les autres aucune suppression
      mot1 = pas.Cells(iRow, iCol).Value
Select Case Left(mot1, 2)
        Case "gu", "kw", "ku"                     ' Le début commence par
          phrase = Mid(mot1, 3)
          espace = InStr(phrase, " ")
          mot = Left(phrase, espace)
          mot = Replace(mot, " ", "")
          nom = Mid(phrase, espace + 1)
          pas.Cells(iRow, iCol).Value = phrase
      End Select
    Next
  Next

  On Error Resume Next
  With Worksheets("participe")
    .Activate
    PivotTables(1).PivotCache.Refresh
  End With
  Unload Me

End Sub

Si pas ça

Merci beaucoup de votre réponse rapide.

Le fichier était trop volumineux mais si ce code ne fonctionne pas, je vous ré-écris en l'attachant. En tout cas merci

Rechercher des sujets similaires à "supprimer premiers caracteres certain criteres"