Convertir valeur Débit, Crédit en valeur standard

Bonjour,

je cherche à convertir des valeurs mis en forme dans format cellule en un valeur standard avec le signe "-" pour des valeurs négatives.

Regardez le fichier ci-joint.

Cordialement

Bonjour,

Les données sont tous nombres positives. Les caractères Cr ou Dr ne sont que des formats d'affichage.

Bonjour Raja,

je veux justement enlever ce format d'affichage, en convertissant comme ceux-ci :

  • les chiffres se terminant par "0.20 Cr" = la valeur tout court 0.20
  • les chiffres se terminant par "0.20 Dr" = avec un signe négatif devant la valeur -0.20
Cdl
Siva a écrit :

Bonjour Raja,

je veux justement enlever ce format d'affichage, en convertissant comme ceux-ci :

  • les chiffres se terminant par "0.20 Cr" = la valeur tout court 0.20
  • les chiffres se terminant par "0.20 Dr" = avec un signe négatif devant la valeur -0.20
Cdl

Re,

Les données 0.20 Cr et 0.20 Dr sont équivalentes en valeurs. Par conséquent, on ne peut les différencier si ce n'est que par affichage.

Si tu insères dans une colonne le caractère D ou C, cela permettra de faire ce que tu demandes.

Bonjour,

Une proposition à étudier et à adapter.

Cdlt.

Private Sub cmdFormatCell_Click()
Dim lastRow As Long, i As Long
Dim rngData As Range

    Application.ScreenUpdating = False

    With ActiveSheet
        lastRow = .Cells(Rows.Count, 1).End(xlUp).Row
        Set rngData = .Range("A4:A" & lastRow)
        For i = 4 To lastRow
            Select Case .Cells(i, 1).NumberFormat
                Case """""0.00"" Cr"""
                    .Cells(i, 1).NumberFormat = "#,##0.00"
                Case """""0.00"" Dr"""
                    .Cells(i, 1).NumberFormat = "[Red]-#,##0.00"
                Case """""0"
                    .Cells(i, 1).NumberFormat = "General"
            End Select
        Next i
        .Cells(4, 1) = WorksheetFunction.Sum(Range("A5:A" & lastRow))
    End With

    'With ActiveWorkbook
        '.DeleteNumberFormat NumberFormat:="""""0,00"" Cr"""
        '.DeleteNumberFormat NumberFormat:="""""0,00"" Dr"""
        '.DeleteNumberFormat NumberFormat:="""""0"
    'End With

End Sub

Bonjour Jean-Eric,

l'éxécution du macro transforme les valeurs comme j'ai souhaité, mais la formule =A5+A6 donne une valeur 0.40 alors cela devrait donner 0.00 (0.20+(-0.20)=0.00

Pourra-t-on le transformer en format numerique

Cdl

Bonjour,

ou par formule :

=SI(DROITE(C8;2)="dr";"-";"")&GAUCHE(C8;NBCAR(C8)-3)+0

eric

Bonjour,

Essaie ainsi :

Private Sub cmdFormatCell_Click()
Dim lastRow As Long, i As Long

    Application.ScreenUpdating = False

    With ActiveSheet
        lastRow = .Cells(Rows.Count, 1).End(xlUp).Row
        For i = 5 To lastRow
            If .Cells(i, 1).NumberFormat = """""0.00"" Dr""" Then
                .Cells(i, 1).Value = .Cells(i, 1) * -1
            End If
        Next i
        .Cells(4, 1).Value = WorksheetFunction.Sum(Range("A5:A" & lastRow))
        .Range("A4:A" & lastRow).NumberFormat = "#,##0.00;[Red]-#,##0.00;"
    End With

    'With ActiveWorkbook
        '.DeleteNumberFormat NumberFormat:="""""0,00"" Cr"""
        '.DeleteNumberFormat NumberFormat:="""""0,00"" Dr"""
        '.DeleteNumberFormat NumberFormat:="""""0"
    'End With

End Sub

Merci Jean-Eric,

la macro fonctionne parfaitement, mais je n'arrive pas à déchiffrer la fromule :

=SI(DROITE(C8;2)="dr";"-";"")&GAUCHE(C8;NBCAR(C8)-3)+0

Cdl

Re,

La proposition d'Eriiic ne peut pas fonctionner sur la colonne A, qui comporte des données numériques.

Cdlt

Effectivement.

J'ai travaillé sur ton exemple en C8:C9 mais comme tu y as mis des valeurs sans rapport avec ton pb ça ne peut pas fonctionner.

eric

Merci à vous.

Cdl

Rechercher des sujets similaires à "convertir valeur debit credit standard"