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,