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
286
Réponses
6
Affichages
132
Réponses
7
Affichages
321

Statistiques des forums

Discussions
312 198
Messages
2 086 119
Membres
103 124
dernier inscrit
Antoine Vdm