Suppression chaine de caractères spéciale

sylv@in

XLDnaute Junior
bonjour,

j'ai une base de pièce avec dans une colonne des données du genre :

1 | 5501325-BB
2 | 5501543-BB
3 | 5501543-BG
4 | 5502416-00-BB
6 | 55502416-AA-BFD
7 | 5504381-BG
8 | 5504381-CA-ARG
9 | 5505124-BG
10| 497300001R-BR
11| 497300001R-BR
12| 497300001R-CA
13| 497300002R-BR


j'aurais voulu savoir s'il était possible d'écrire une macro qui en parcourant chaque cellule dès que l'on retrouve la chaine de caractère "-BB", "-BG", "-BR"...on efface la chaine de caractère et ce qu'il y a après de façon a garder seulement ce qu'il y a devant?

j'ai essayé en écrivant ce genre de code mais j'arrive pas a trouver une solution :

Dim cellule As Range, valeur As String
On Error Resume Next

For Each cellule In Range("d2", Range("d65000").End(xlUp))

valeur = "": valeur = Application.WorksheetFunction.Find("-BB", cellule, 1)
If valeur <> "" Then cellule.Offset(0, 0) = "???"

merci d'avance
 

Staple1600

XLDnaute Barbatruc
Re : Suppression chaine de caractères spéciale

Bonjour


Essaye

Edition/Remplacer
-*
par


Ce qui donne VBA
Code:
Sub Macro5()
'
' Macro5 Macro
' Macro enregistrée le 16/06/2008
'
    Selection.Replace What:="-*", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False
End Sub
 

pierrejean

XLDnaute Barbatruc
Re : Suppression chaine de caractères spéciale

bonjour sylv@in

A tester:

Code:
For Each cellule In Range("d2", Range("d65000").End(xlUp))
x = InStr(cellule, "-")
cellule.Value = Left(cellule, x - 1)
Next cellule

basée sur le seul signe - mais facilement adaptable a plus complet

Edit Salut Staple :)
 

sylv@in

XLDnaute Junior
Re : Suppression chaine de caractères spéciale

merci pierre jean ca a l'air de marcher nikel t'as solution merci beaucoup

juste par curiosité et au cas ou jdevrais la réutiliser plus tard, pourrait tu me donnais des explications sur les lignes de codes suivantes

x = InStr(cellule, "-")
cellule.Value = Left(cellule, x - 1)

la première ligne doit surement scruter chaque case pour voir si la chaine de caractères demandée est présente mais jvoudrais comprendre le " left(cellule, x-1)"
merci
 

pierrejean

XLDnaute Barbatruc
Re : Suppression chaine de caractères spéciale

Re

x est le numero du signe - dans le contenu de la cellule
on enleve 1 et l'on obtient la longueur du nouveau mot
on remplace le contenu de la cellule par ses x-1 premiers caracteres a gauche
ceci pour chaque cellule de la plage D2 jusqu'a la derniere ligne non vide de la colonne D
 

Discussions similaires

Statistiques des forums

Discussions
312 836
Messages
2 092 656
Membres
105 480
dernier inscrit
Galbius