Suppression de mots spécifique

Bonjour,

Je suis entrain de faire une nouvelle fonction VBA qui me fera gagner énormément de temps mais je me casse les dents.

J'ai actuellement un fichier que je réarrange en VBA pour cela pas de soucis mais à la dernière étape je bloque.

J'ai des informations dans la colonne A, je dois garder les 2 premiers caractères et supprimer les caractères 6 caractères d'après.

J'avoue être totalement perdu sur comment m'y prendre. Si quelqu'un a une solution, ça serait vraiment cool.

Bonjour,

Votre fichier ne s'ouvre pas.

Bout de macro pour faire ce que vous souhaitez:

    For i = 2 To DerLig ' de la ligne 2 jusqu'à la dernière
        Cells(i, "A") = Left(Cells(i, "A"), 2) 'on ne récupère que les 2 premiers caractères de gauche
    Next i

Cdlt

Bonjour,

Le code ne fonctionne malheureusement pas. J'ai essayé, mais il ne semble pas supprimer les caractère, pour exemple dans toute la colonne A j'ai une structure :

56__CL|0997462693

Pour être plus claire, je voudrais supprimer les 6 caractères après le 56, ce qui donnerai :

56997462693

J'ai reussi à ajouter un plus au début via un truc tout simple, mais faire que dans toute la colonne A, cela efface comme décrit, je sèche :'(

Bonjour à tous,

Un essai....attention, ça pique les yeux....il y a certainement plus simple à faire....

For i = 2 To derlig ' de la ligne 2 jusqu'à la dernière
 If Cells(i, "A") <> "" Then
  Cells(i, "A") = Trim(Mid(Cells(i, "A"), 1, InStr(1, Cells(i, "A"), "_") - 1)) & Right(Trim(Split(Cells(i, "A"), "|")(1)), Len(Trim(Split(Cells(i, "A"), "|")(1))) - 1)
 End If
Next i

[EDIT] si le nombre de caractères est toujours constant...

For i = 2 To derlig ' de la ligne 2 jusqu'à la dernière
  If Cells(i, "A") <> "" Then
   Cells(i, "A") = Trim(Mid(Cells(i, "A"), 1, 2)) & Trim(Mid(Cells(i, "A"), 9, 17))
  End If
 Next i
1warget78.xlsm (29.79 Ko)

Cordialement,

Bonjour le fil, bonjour le forum,

Impossible d'ouvrir ton fichier. Cela nous permettrait d'avoir un plus large aperçu de ta requête et pas seulement 1 misérable exemple.
Une proposition :

Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim I As Integer 'déclare la variable I (Incrément)
Dim D As String 'déclare la variable D (Début)
Dim F As String 'déclare la variable F (Fin)

Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
DL = O.Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A de l'onglet O (colonne à adapter)
For I = 1 To DL 'boucle de 1 à DL
    D = Left(O.Cells(I, "A").Value, 2) 'définit le début D
    F = Mid(O.Cells(I, "A").Value, 9) 'définit la fin F
    O.Cells(I, "A").Value = D & F 'renvoie D & F dans la cellule de la boucle
Next I 'prochaine ligne de la boucle
End Sub

Je vais regarder vos réponses et essayer de creuser. C'est vraiment sympa de votre par que d'essayer de m'aider.

Je remet le fichier, il devrait fonctionner à présent.

Au plaisir,

Warget

Bonsoir tout le monde,

Un essai....

Sub test_tb()
 Dim tablo, tabloR(), k%, i%
  With Sheets("fichier_client (9)")
   tablo = .Range("A1").CurrentRegion
    k = 0
     For i = 2 To UBound(tablo, 1)
      If tablo(i, 1) <> "" Then
       ReDim Preserve tabloR(1 To 3, 1 To k + 1)
        If Not IsNumeric(tablo(i, 1)) Then
         'tabloR(1, 1 + k) = val(Trim(Mid(tablo(i, 1), 1, 2)) & Trim(Mid(tablo(i, 1), 9, 17)))
         tabloR(1, 1 + k) = Val(Trim(Mid(tablo(i, 1), 1, InStr(1, tablo(i, 1), "_") - 1)) & Right(Trim(Split(tablo(i, 1), "|")(1)), Len(Trim(Split(tablo(i, 1), "|")(1))) - 1))
        Else
         tabloR(1, 1 + k) = Val(tablo(i, 1))
        End If
         tabloR(2, 1 + k) = tablo(i, 2)
         tabloR(3, 1 + k) = tablo(i, 3)
         k = 1 + k
        End If
     Next i
     .Range("A1").CurrentRegion.Offset(1, 0).ClearContents
     On Error Resume Next
     .Range("A2").Resize(UBound(tabloR, 2), 3) = Application.Transpose(tabloR)
     .Columns("A:A").NumberFormat = "0#"" ""##"" ""##"" ""##"" ""##"
 End With
End Sub
4warget78.xlsm (28.84 Ko)

Cordialement,

Bonsoir Warget78, Le Forum,

Avec la fonction personnalisée ci-dessous.

Function TR(X)
If InStr(1, X, "_") = 0 Then GoTo Fin
TX = X: X = ""
For T = 1 To Len(TX)
If Mid(TX, T, 1) < "A" And T <> 8 Then X = X & Mid(TX, T, 1)
Next T
Fin:
TR = X
End Function

Tapez =TR(A2) en cellule D2 puis tirez cette fonction vers le bas

Bonjour,

en A1: 56__CL|0997462693

Formule en B1: =GAUCHE(A1;2)&STXT(A1;9;NBCAR(A1)-7)

Cdlt

Rechercher des sujets similaires à "suppression mots specifique"