Excel VBA - CDBL

Anonyme
2023-06-16T16:30:04+00:00

Bonjour,

J'ai un souci avec un code que je maîtrise très bien à l'habitude. Mais là je suis dépassé.

Si j'inscrit un montant dans Montant réel pas de souci. Si je n'écrispas de montant, j'ai le code d'erreur ci-dessous.

Ce code a toujours fonctionné.

Merci

'Montantr

Private Sub montantr_AfterUpdate()

Me.montantr = Replace(Me.montantr, ".", ",")

Me.montantr = Format(Me.montantr, "currency")

End Sub

'Sortie

Private Sub enregistrer_Click()

If Me.txtdate = "" Or Me.souscat.ListIndex < 0 Or Me.montant = "" Then

    MsgBox ("Il manque des informations")

Else

    'Contrôler si la base de données est vide oui ou non

    If Sheets("Base de données").Range("d8") <> "" Then

        Sheets("Base de données").ListObjects(1).ListRows.Add

    End If

    'Trouver la dernière ligne

    dlt = Sheets("Base de données").Range("b100000").End(xlUp).Row

    'Ajouter les infos

    Sheets("Base de données").Range("c" & dlt) = txtdate

    Sheets("Base de données").Range("d" & dlt) = "Sortie"

    Sheets("Base de données").Range("e" & dlt) = CDbl(Me.montant)

    Sheets("Base de données").Range("f" & dlt) = Me.compte.Column(1)

    Sheets("Base de données").Range("g" & dlt) = Me.catégorie

    Sheets("Base de données").Range("i" & dlt) = Me.souscat

    Sheets("Base de données").Range("k" & dlt) = Me.créancier

    Sheets("Base de données").Range("p" & dlt) = Me.commentaires

    Sheets("Base de données").Range("q" & dlt) = CDbl(Me.montantr)

    Sheets("Base de données").Range("r" & dlt) = CDbl(Me.kwh)

    'Vider le formulaire

    Me.txtdate = ""

    Me.montant = ""

    Me.compte = ""

    Me.catégorie = ""

    Me.souscat = ""

    Me.créancier = ""

    Me.montantr = ""

    Me.kwh = ""

    Me.commentaires = ""

    'ThisWorkbook.RefreshAll

    ThisWorkbook.Save

    Me.ListBox1.RowSource = "Compte"

    Me.ListBox2.RowSource = "Investissementscumulésdenis"

    Me.ListBox3.RowSource = "Dettesolde"

    Me.ListBox4.RowSource = "Surplusdéficite"

End If

End Sub

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

2 réponses

  1. DanielCo 107.7K Points de réputation
    2023-06-16T16:43:25+00:00

    Bonjour Denis,

    C'est parce que le textbox est vide. Mets :

    If isnumeric(Me.montantr) Then
    Sheets("Base de données").Range("q" & dlt) = CDbl(Me.montantr)
    End If

    Daniel

    Cette réponse a-t-elle été utile ?

    1 personne a trouvé cette réponse utile.
    0 commentaires Aucun commentaire
  2. Anonyme
    2023-06-16T17:24:41+00:00

    Merci Daniel. La honte.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire