Comment ne pas les enlever ne serait-il pas mieux ?Effectivement cela fonctionne. mais pour les remettre cela sera autre chose.
Si vous avez des idées sur comment on peut mettre je suis preneur.
Sub test()
'Si vous voulez remplacer directement dans la formule
'À modifier en fonction de vos besoins
Ma_formule$ = Range("A1").Formula
'*********************************************************************************************
'Si vous souhaitez modifier directement dans la valeur
'Ma_Valeur = Cells(1,1).Value
'*********************************************************************************************
'Signe à supprimer
a$ = "$"
'Procède au remplacement
For i = 1 To Len(Ma_formule)
If Mid(Ma_formule, i, 1) = a Then
Ma_formule = Mid(Ma_formule, 1, i - 1) & Mid(Ma_formule, i + 1, Len(Ma_formule) - 1)
i = i - 1
End If
Next i
'Applique les modifications dans la formule
Cells(1, 1).Formula = Ma_formule
End Sub
ActiveCell.Formula = Replace(ActiveCell.Formula, "$", "")
Dim c As Range, x As Range
Set c = ActiveCell
For Each x In c.Precedents
c.Formula = Replace(c.Formula, x.Address(0, 0), x.Address)
Next x
Sub RefRelativeVsAbsolue()
Dim c As Range, x As Range
For Each c In Selection
If c.HasArray Or c.HasFormula Then
On Error Resume Next
For Each x In c.Precedents
If Err.Number = 0 Then c.Formula = Replace(c.Formula, x.Address(0, 0), x.Address)
Next x
End If
Next c
End Sub
Sub RefAbsolueVsRelative()
Dim c As Range, x As Range
For Each c In Selection
If c.HasArray Or c.HasFormula Then
On Error Resume Next
For Each x In c.Precedents
If Err.Number = 0 Then c.Formula = Replace(c.Formula, x.Address, x.Address(0, 0))
Next x
End If
Next c
End Sub
Sub dollars()
Dim nb As Byte
strrow = "0123456789"
strCol = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
StrOp = ":;(+-*/^="
c = Replace([A1].Formula, "$", "")
Formula2 = ""
For t = 1 To Len(c)
X = "?"
If InStr(strrow, Mid(c, t, 1)) <> 0 Then
X = "0"
ElseIf InStr(strCol, Mid(c, t, 1)) <> 0 Then
X = "A"
ElseIf InStr(StrOp, Mid(c, t, 1)) <> 0 Then
X = "+"
End If
Formula2 = Formula2 & X
Next
st = 1: nb = 0
Do While st <> 0
st = InStr(st + 1, Formula2, "A0")
If st <> 0 And st > 1 Then
If Mid(Formula2, st - 1, 1) = "A" Then
If Mid(Formula2, st - 2, 1) <> "A" Then
c = Left$(c, st + nb - 2) & "$" & Mid$(c, st + nb - 1)
nb = nb + 1
c = Left$(c, st + nb) & "$" & Mid$(c, st + nb + 1)
nb = nb + 1
MsgBox c
End If
Else
c = Left$(c, st + nb - 1) & "$" & Mid$(c, st + nb)
nb = nb + 1
c = Left$(c, st + nb) & "$" & Mid$(c, st + nb + 1)
nb = nb + 1
MsgBox c
End If
End If
Loop
Range("A2").Formula = c
End Sub