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

Microsoft 365 Somme négative dans listbox non acceptée

ERN

XLDnaute Junior
Bonjour à tous,

J'ai un problème dans ma listbox. Si je sélectionne une ligne où il y a prix négatif (car moins value), celle-ci m'indique une erreur.
Excel surligne la zone où est indiqué " Me("TxtB_" & k + 1) = Format(CDbl("0" & Me.ListBox1.Column(k)), "Currency")"

Auriez-vous une idée ?

Merci d'avance,

VB:
Private Sub ListBox1_Click()
If kit = True Then Exit Sub
    For k = 0 To Ncol - 2
        If k + 1 = 8 Or k + 1 = 9 Then
            Me("TxtB_" & k + 1) = Format(CDbl("0" & Me.ListBox1.Column(k)), "Currency")
        Else
            Me("TxtB_" & k + 1) = Me.ListBox1.Column(k)
        End If
    Next k
Label6 = Me.ListBox1.Column(11)
End Sub
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Si je me souviens bien, je vous avais donnée le truc de la concaténation du "0" avec le contenu de l'item de listbox pour éviter l'erreur de CDBL avec les items "".

Si vous réfléchissez un peu sur le truc vous verrez que "0" & un item négatif ("-2,50") donnerait "0-2,50" ce qui fait de nouveau hurler CDBL.

Le mieux alors c'est d'éviter l'excès de raccourci.

Rajoutez une variable en tête de procédure:
VB:
Dim Valeur as Double
'
'
' Puis au bon endroit
Valeur = iif(Me.ListBox1.Column(k)="",0,CDBL(Me.ListBox1.Column(k))
Me("TxtB_" & k + 1) = Format(Valeur, "Currency")

Cordialement
 

dysorthographie

XLDnaute Accro
Bonjour,
Pourquoi If k + 1 = 8 Or k + 1 = 9 Then ?
Et pas If k + 2 = 9 Or k + 2= 10 Then ?
Ou alors If k = 7 Or k = 8 Then ?
Code:
val(replace("" & Me.ListBox1.Column(k),",","."))
 
Dernière édition:

Discussions similaires

Réponses
3
Affichages
572
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…