VBA - Supprimer les 4 premiers caractères d'une plage de données

Bonjour,

J'ai poncé de nombreux forums à la recherche d'une solution à mon problème. J'ai trouvé beaucoup d'informations, mais je ne parviens jamais à faire ce que je veux.

La plupart du temps, les réponses reviennent à supprimer des caractères bien définis dans une chaine de caractères.

Ce que je cherche à faire c'est supprimer les 4 premiers caractères d'une plage de données, sans tenir compte de son contenu. Cela revient à utiliser cette formule : =REMPLACER(A2;1;4;"") étendue.

J'ai essayé en précisant la plage de données :

r = Range("A" & Rows.Count).End(xlUp).Row
Range(Cells(2, 37), Cells(r, 37)).Value -Mid(Cells(2, 37), Cells(r, 37), 4)

Puis en indiquant simplement la colonne visée :

f = Range("AK2")
f.Value , Mid(f, 4)
ou
f = Left(f, Len(f) - 4)

Et différentes variantes parmi ces deux tentatives, mais rien n'y fait.

Je ne cherche pas à désigner une cellule à l'aide de ActiveCells, mais plutôt une plage de données sur laquelle appliquer cette suppression de caractères.

La solution pourrait également résider en la suppression des caractères suivants 1, 2, 3, 4, 5, 6, - et " " de toute la plage de données.

Je joins un fichier, bien qu'il n'y en ait probablement pas besoin.

Bonne journée !

A plus tard.

Bonjour

Tu as oublié de joindre le fichier annoncé

Cordialement

Ah oui en effet.

Voilà qui est fait.

bonjour,

une proposition

Sub aargh()
    r = Range("A" & Rows.Count).End(xlUp).Row 'on détermine la dernière ligne sur base de la colonne A
    Set plage = Range(Cells(2, 37), Cells(r, 37)) 'plage en colonne 37 (AK) de la ligne 2 à la ligne r
    For Each c In plage
        c.Value = Mid(c.Value, 4) 'on supprime les 4 premiers caractères
    Next c
End Sub

sur base de ton fichier, il ne s'agit pas de la colonne AK mais A avec resultat en colonne B

version adaptée.

Sub aargh()
    r = Range("A" & Rows.Count).End(xlUp).Row 'on compte le nombre de lignes sur base de la colonne A
    Set plage = Range(Cells(2, 1), Cells(r, 1)) 'plage en colonne 1 (A)
    For Each c In plage
        c.Offset(, 1).Value = Mid(c.Value, 4) 'on supprime les 4 premiers caractères et on met le résultat dans la colonne d'à coté
    Next c
End Sub

Merci, c'est exactement ça.

Je vais garder ce code sous le coude car il va m'être utile à de nombreuses reprises quand il va falloir corriger des bases de données !

Bonne fin de journée

Rechercher des sujets similaires à "vba supprimer premiers caracteres plage donnees"