Microsoft 365 Cdbl et nombres à virgules

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 !

youguybass

XLDnaute Junior
Bonjour à tous
par ce code je cherche à comparer "Txt257" et ".Cells(Lag, C)" afin de me renvoyer une info s'ils sont différents.

La comparaison marche si les chiffres sont entiers, par contre a partir du moment ou ce sont des nombres à virgules ,
si ces nombres sont identiques, cela me renvoi le message comme quoi ils sont différents alors que ça ne devrait pas être le cas.
J'ai essayé avec Val( Txt ... cela n'y fait rien
Est que quelqu'un aurait une solution ?
D'avance merci

VB:
With Feuil16
For K = .[a65000].End(3).Row To 6 Step -1

For Col = 26 To 314 Step 12
If .Cells(K, Col) = Txt1 Then
 
        'tx31 = 0
        
           tx31 = tx31 + CDbl(Feuil16.Cells(K, Col + 7))
          
                    TextBox257 = tx31
            
        End If
Next
Next

End With
MsgBox (CDbl(.Cells(Lag, C)))
MsgBox (CDbl(TextBox257))

If CDbl(TextBox257) <> CDbl(.Cells(Lag, C)) Then
MsgBox ("Attention Le calcul des prix d'achat a été modifier depuis le dernière enregistrement" & vbCrLf & "Veuillez enregistrer a nouveau ce dossier")
End If
 
Bonjour youguybass,
TextBox257 contient un texte. Peut être que le séparateur décimal utilisé dans TextBox n'est il pas le séparateur décimal utilisé par le VBA ?
( par exemple "," au lieu de "." )
J'ai dû faire une manip sur le change du tbx 257
VB:
Private Sub TextBox257_Change() 'Tolal Achat ---------------------Ok
D = 257
Me.Controls("TextBox" & D).Value = Format(Me.Controls("TextBox" & D), "###0.00€")
Me.Controls("TextBox" & D).Value = Replace(Me.Controls("TextBox" & D).Value, ",", ".", 1, 1)
End Sub

et jouer avec val et cdbl dans la macro !
Code:
With Feuil16
For K = .[a65000].End(3).Row To 6 Step -1

For Col = 26 To 314 Step 12
If .Cells(K, Col) = Txt1 Then
 
        'tx31 = 0
           tx31 = tx31 + CDbl(Feuil16.Cells(K, Col + 7))
                    TextBox257 = CDbl(tx31)
         End If
Next
Next
End With

If Val(TextBox257) <> CDbl(.Cells(Lag, C)) Then
MsgBox ("Attention le total des prix d'achat a été modifié depuis le dernière enregistrement" & vbCrLf & "Veuillez enregistrer a nouveau ce dossier")
End If

et cela fonctionne

Merci sylvanu
 
- 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
2
Affichages
184
Réponses
23
Affichages
159
Réponses
5
Affichages
703
Réponses
5
Affichages
477
Réponses
4
Affichages
580
Réponses
8
Affichages
269
Réponses
2
Affichages
426
Réponses
8
Affichages
646
Retour