Bonjour à Tous,
Je cherche à supprimer les retours de chariot, et à remplacer le "-" par une virgule (sauf si le tiret est en position de début de chaine) dans le texte de chaque cellule.
Voici le code que j'utilise, mais j'ai un code d'erreur 13 (type mismatch),
Je n'en trouve pas la raison. Auriez vous une piste de correction ?
Sub remplacer_caractere()
Workbooks("Catalogue_Reference.xlsm").Activate
Sheets("final").Activate
Dim zone_rech As Range
Dim cellule As Range
j = 5
derlig = Sheets("final").Range("E:E").End(xlDown).Row
Set zone_rech = Sheets("final").Range(Cells(1, j), Cells(derlig, j))
zone_rech.Select
For i = 2 To derlig
Set cellule = zone_rech.Cells(i, 1)
cellule.Select
carac_rech = "-"
Dim cellule_avec_carac As Range
cellule_avec_carac = cellule.Find(what:=carac_rech, after:=cellule, lookat:=xlWhole, MatchCase:=True)
If Not cellule_avec_carac Is Nothing Then
adr = cellule_avec_carac.Address
pos = InStr(1, cellule_avec_carac, carac_rech, vbTextCompare)
nbcarac = Len(cellule_avec_carac)
If pos = 1 Then
cellule_avec_carac = Replace(cellule_avec_carac, Find:=carac_rech, Replace:="", Start:=1, Count:=1, compare:=vbTextCompare)
Else
End If
a = cellule.Value
a = Replace(a, Chr(10), "")
cellule.Value = a
a = Replace(cellule, "-", ",")
cellule.Value = a
a = Replace(cellule, ",", "", 1, 1, vbTextCompare)
cellule.Value = a
a = Replace(cellule, " ", "", 1, 1, vbTextCompare)
cellule.Value = a
End If
Next i
End Sub
Merci
Bonne journée,
Je cherche à supprimer les retours de chariot, et à remplacer le "-" par une virgule (sauf si le tiret est en position de début de chaine) dans le texte de chaque cellule.
Voici le code que j'utilise, mais j'ai un code d'erreur 13 (type mismatch),
Je n'en trouve pas la raison. Auriez vous une piste de correction ?
Sub remplacer_caractere()
Workbooks("Catalogue_Reference.xlsm").Activate
Sheets("final").Activate
Dim zone_rech As Range
Dim cellule As Range
j = 5
derlig = Sheets("final").Range("E:E").End(xlDown).Row
Set zone_rech = Sheets("final").Range(Cells(1, j), Cells(derlig, j))
zone_rech.Select
For i = 2 To derlig
Set cellule = zone_rech.Cells(i, 1)
cellule.Select
carac_rech = "-"
Dim cellule_avec_carac As Range
cellule_avec_carac = cellule.Find(what:=carac_rech, after:=cellule, lookat:=xlWhole, MatchCase:=True)
If Not cellule_avec_carac Is Nothing Then
adr = cellule_avec_carac.Address
pos = InStr(1, cellule_avec_carac, carac_rech, vbTextCompare)
nbcarac = Len(cellule_avec_carac)
If pos = 1 Then
cellule_avec_carac = Replace(cellule_avec_carac, Find:=carac_rech, Replace:="", Start:=1, Count:=1, compare:=vbTextCompare)
Else
End If
a = cellule.Value
a = Replace(a, Chr(10), "")
cellule.Value = a
a = Replace(cellule, "-", ",")
cellule.Value = a
a = Replace(cellule, ",", "", 1, 1, vbTextCompare)
cellule.Value = a
a = Replace(cellule, " ", "", 1, 1, vbTextCompare)
cellule.Value = a
End If
Next i
End Sub
Merci
Bonne journée,