Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Autres résultats differents entre formule et macro (excel 2007)

  • Initiateur de la discussion Initiateur de la discussion gh4
  • 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 !

gh4

XLDnaute Occasionnel
excel 2007
bonjour,
j'ai une différence de résultat quand je compare 2 cellules soit en macro soit en formule depuis la cellule et je ne sait pas pourquoi

par formule =SI(E2+F2-H2=B2;"OK";"ERREUR") tous les résultats sont bons
en macro certains résultats sont faux

Sub Macro3()
derniereligne = Cells(Rows.Count, 3).End(xlUp).Row
lign = derniereligne
colon = 3
27
'lign = 26
If lign = 1 Then GoTo 30


x = Cells(lign, colon + 2) + Cells(lign, colon + 3) - Cells(lign, colon + 5)
y = Cells(lign, colon - 1)
If x <> y Then
Cells(lign, colon + 4) = "ERREUR"
lign = lign - 1
GoTo 27
End If
If x = y Then
Cells(lign, colon + 4) = "OK"
lign = lign - 1
GoTo 27
End If
30
End Sub

si quelqu'un avait une idée.

par avance merci

Cordialement
 

Pièces jointes

Hello,

@laurent950 oui, mais si on veut faire un calcul avec, il faut bien la convertir à un moment ou à un autre non ?
Code:
Sub TestMultiplication()
    ' Une valeur très précise
    Dim texte As String
    texte = "0,123456789012345678901234567890"
    
    ' --- CAS 1 : LE VARIANT ---
    Dim v As Variant
    v = texte ' v contient le texte, "0,123456789012345678901234567890".
    
    ' On fait une opération mathématique neutre (x 1).
    ' VBA est FORCÉ de convertir le texte en nombre.
    ' Comme c'est un Variant "libre", il choisit le format standard : Double.
    v = v * 1
    
    ' --- CAS 2 : LE STRING + CDEC ---
    Dim d As Variant
    ' On force explicitement le meilleur format de nombre avant de calculer
    d = CDec(texte) * 1
    
    ' --- RÉSULTAT ---
    MsgBox "Variant (Auto Double) : " & v & vbCrLf & _
           "String (CDec forcé)   : " & d
          
    ' Ce que l'on vois :
    ' Variant : 0,123456789012346  (Arrêt brutal à la 15ème décimale)
    ' String  : 0,1234567890123456789012345679 (Précision conservée jusqu'à 28)
End Sub
 
- 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

Réponses
4
Affichages
676
Réponses
8
Affichages
735
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
424
Réponses
1
Affichages
637
Réponses
0
Affichages
632
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…