Enelver les $ d'une sélection de cellules

  • Initiateur de la discussion Initiateur de la discussion Madjon6
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Madjon6

XLDnaute Occasionnel
Bonjour,

Je souhaite enlever en 1 seule fois les $ des formules sur une sélection de cellules. Afin que je n'ai pas à le faire manuellement sur toutes les formules avec f4.

Merci pour votre aide.

Madjon6
 
Re : Enelver les $ d'une sélection de cellules

Bonjour Madjon6, le fil,

voici un exemple de macro pouvant réaliser votre besoin. Il est facilement adaptable pour l'inclure dans une boucle.
J'ai supposé que la formule se trouvait dans la cellule A1.

VB:
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

Cordialement,

Étienne
 
Re : Enelver les $ d'une sélection de cellules

Re,

pour remettre le signe $ l'on pourrait faire ceci, à voir....

Code:
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
 
Re : Enelver les $ d'une sélection de cellules

Bonjour,

2 procédures afin de boucler sur la selection, pour basculer entre les références relatives et absolues :
Code:
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

Code:
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

bonne journée
@+
 
Re : Enelver les $ d'une sélection de cellules

Bonjour,

Sympa le truc de Pierrot. J'm'étais un peu cassé la tête à me demander comment remettre les dollars dans une formule, mais je me doutais bien que y avait plus simple que mon usine à gaz.

Je la joins pour info ^^

VB:
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
 
Dernière édition:
Re : Enelver les $ d'une sélection de cellules

Bonjour à tous

Une façon toute simple (prévue par Excel)
Application.ConvertFormula
Voir ici pour les détails
Lien supprimé

EDITION: pour le vice et versa, Lien supprimé
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour