Microsoft 365 Erreur 13 avec fonction Find

ODB

XLDnaute Nouveau
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,
 

Discussions similaires

Réponses
11
Affichages
347
Réponses
6
Affichages
169
Réponses
7
Affichages
360

Statistiques des forums

Discussions
312 495
Messages
2 088 966
Membres
103 993
dernier inscrit
Essens