tibss
Messages postés21Date d'inscriptionmercredi 26 avril 2006StatutMembreDernière intervention12 septembre 2006
-
11 sept. 2006 à 15:12
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 2018
-
12 sept. 2006 à 11:37
Bonjour,
Je travaille avec une feuille Excelle qui contient plusieurs lignes.
certaines contiennet leprénom,
"julien"...et d'autres : contiennent "ex-julien"...
Je voudrais créer une macro qui permette de supprimer "ex-" dans toutes les cellules de la première colonne.
Il faudrait don un petit programme qui permette de trouver les cellules qui contiennent "ex-" dans le cas où ces trois caractères sont présents on les supprime, dans l'autre cas, si la cellule en possède pas ces trois caractères, on va à la ligne suivante.
Il y a 2000 lignes dans le tableau, voici le type de code auquel j'ai pensé au travers des précédents conseils que j'ai recu sur vbfrance :
Dim pos As Integer
Dim chaine As String
For j = 1 To 2000
' permet de compter les caractère qui sont avant le "-"
pos = InStr(Cells(j, 1).Value, "-")
' s'il y a des caractère avant le tiret
If pos > 0 Then
'On supprime el tiret et les caractères qui se trouvent à sa gauche
chaine = right(Cells(j, 1).Value, pos - 1)
Cells(j, 1).Value = chaine
else
Next
Dans le cas où "-" n'est trouvé, on passe à la ligne suivante.
Quelqu'un pourrait-il me débloker?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 11 sept. 2006 à 15:28
For j = 1 To 2000
' permet de compter les caractère qui sont avant le "-"
pos = InStr(Cells(j, 1).Value, "-")
' s'il y a des caractère avant le tiret
If pos > 0 Then
'On supprime el tiret et les caractères qui se trouvent à sa gauche
chaine = Mid(Cells(j, 1).Value, pos + 1)
Cells(j, 1).Value = chaine
End If
Next
sinon si tu veux utiliser Right :
chaine = Right(Cells(j, 1).Value, Len(Cells(j, 1).Value) - pos)
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 11 sept. 2006 à 15:30
Salut,
Essaie ceci pour voir ci cela te convient.
Dim UnCell As Range
'Selectionne la colonne A
ActiveWorkbook.ActiveSheet.Columns("A:A").Select
'Pour chaque cellule de la colonne A
For Each UnCell In Selection
'Appelle de la fonction REplace qui ici remplace si il y a
' ex- par rien du tout
UnCell.Value = Replace(UnCell.Value, "ex-", "", 1, 1)
Next
tibss
Messages postés21Date d'inscriptionmercredi 26 avril 2006StatutMembreDernière intervention12 septembre 2006 12 sept. 2006 à 10:18
La solution de Julien n'est pas mal c'est clair (même très bien), d'autant plus qu'il y a peu de lignes de code. Mais je te remercie casy, car tu as repris la même structure que le programme sur lequel je butais, ce qui m'a permis de mieux comprendre mon erreur.