VBA comment supprimer les 2premiers caratères d'une cellule?

Bonjour,

J'ai un tableau sous Excel avec quelques centaines de références dedans.

Ces références commencent toutes par "01" et je voudrais le supprimer d'un coup avec une macro.

J'ai écris cette macro :

Sub Enlever_01_aux_references_brutes()
    For i = 1 To 5
        Sheets("F").Columns(i).Replace "01", ""
    Next i
End Sub

Le problème est que certaines références contiennent "01" à l'intérieur, exemple : 01550177

Le résultat de ma macro donne : 5577

alors que je voudrais obtenir : 550177

J'ai pensais à un principe différent :

Je voudrais supprimer les deux premiers caractères de chaque cellules du tableau.

Comment l'écrire en VBA?

Merci de votre attention,

cordialement,

Chyps.

22liv-sam-08-06.xlsm (87.54 Ko)

Bonsoir,

essaye avec

Sub Enlever01()
Dim Cel As Range, x
    For Each Cel In Range("b4:d10") 'plage à régler
        x = Mid(Cel, 1, 1)
        If x = 0 Then Cel = Mid(Cel, 3, 10)
    Next Cel
End Sub

Amicalement

Claude

Bonjour,

Sans macro, la formule à recopier est la suivante :

=stxt(cellule;3;nbcar(cellule)-2)

cellule = cellule a traiter

3 correspond au 3ème caractère de la chaine, où démarre l'extraction

nb de caractères à extraire =(nbcar)= nb total de caractères du contenu de la cellule - 2 caractères à supprimer

si tu veux conserver un nombre à tous les coups :

=cnum(stxt(cellule;3;nbcar(cellule)-2))

Cordialement

FINDRH

Merci à vous 2 pour vos réponses,

J'ai essayé la solution de Claude et ça a marché mais j'ai pas trop compris pourquoi...

Je vais me le méditer tranquillement avec la solution de FINDRH.

Merci bien.

Bonsoir,

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

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 et bienvenue,

Ouvre un poste à ton nom, celui-ci étant soldé par l'auteur,

ce sera + facile pour suivre le fil

avec un bout de fichier et ta requête

Amicalement

Claude

Rechercher des sujets similaires à "vba comment supprimer 2premiers carateres"