Pas de problème ! Non, ce n'est pas comme ça qu'il faut utiliser la fonction puisqu'elle retourne une valeur en fonction de l'argument qui lui est rentré. Le code de la fonction est donc une sorte de modèle générique qui deviendra effectif en fonction de son argument. Elle est à utiliser au sein de votre boucle (ou comme une formule sur excel directement).
Exemple avec un code sorti de mon imagination (plus ou moins) :
Sub test()
with activesheet
dl = .Cells(.rows.count, "B").end(xlup).row
For i = 2 To dl '2143
.Cells(i, "C").value = FormatTVA(.cells(i, "B").value)
Next i
end with
End sub
Function FormatTVA(chaine$) As String
FormatTVA = Right(Format(NVal(chaine) + 10 ^ 10, "#\.###\.##0"), 12)
End Function
private Function NVal(chaine$) As String
For i = 1 To Len(chaine)
If Not Mid(chaine, i, 1) Like "#" Then Mid(chaine, i, 1) = " "
Next i
NVal = Replace(chaine, " ", "")
End Function
Pour l'instant, il vaut mieux avoir les résultats dans une autre colonne, c'est plus sûr.
Cdlt,