VBA Exception non gérée String vs Double [Résolu]

Signaler
-
 arscy -
Bonjour la communauté-des-héros-de-l'ombre,

Je débarque sur Visual Basic aka VB (inutile de préciser que c'est dans un cadre universitaire ;-) )
Je fais actuellement face à une problématique de l'ordre d'Exception non gérée

→ J'ai créé un convertisseur monétaire qui convertit de façon bidirectionnelle
(monnaie a vers monnaie b et vice versa)
L'algorithme est fonctionnel SAUF que...
lorsque j'efface le contenu d'une de mes deux TextBox j'ai instantanément un message d'erreur : Forcément, mes variables assignées aux deux TextBox étant typées en Double, lorsque la cellule est vide c'est le conflit String versus Double.

Ci-dessous mon code pour une des deux TextBox (pour l'autre c'est l'exact inverse)

Dim euros As Double
        euros = EurosBox.Text
        If EurosBox.Text = "" Then
            DollarsBox.Text = ""
        Else
            DollarsBox.Text = euros * 1.207
        End If


Etant donné que j'ai réglé dans le code la problématique de la case vide, je présume que je dois lever l'exception quelque part ailleurs pour que le tout fonctionne sans encombre.
Pourriez-vous m'éclairer sur la méthodologie de la manipulation en question?
Merci d'avance!

1 réponse

Messages postés
15372
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 octobre 2020
1 377
Bonjour,

Dim euros As Double

 If EurosBox.Text = "" Then
        DollarsBox.Text = ""
    Else
        euros = EurosBox.Text
        DollarsBox.Text = euros * 1.207
    End If
Définir la variable en différé... bien vu! Merci
Messages postés
14858
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 octobre 2020
591 > arscy
Non, pas la définir, l'affecter

ton code
Dim euros As Double 'là tu définis
        euros = EurosBox.Text 'là tu affectes, si ton textBox est vide ça plante
        If EurosBox.Text = "" Then
            DollarsBox.Text = ""
        Else
            DollarsBox.Text = euros * 1.207
        End If


le code de f894009
Dim euros As Double 'là il défini
        If EurosBox.Text = "" Then
            DollarsBox.Text = ""
        Else
            euros = EurosBox.Text 'là il affecte, si ton textBox est vide ça ne vient pas ici, ça ne plante pas
            DollarsBox.Text = euros * 1.207
        End If
>
Messages postés
14858
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 octobre 2020

argh
Je ne suis pas au point sur le jargon... :-( mais c'est bien ce que j'avais compris ^^
→ correctif: "affecter/assigner la variable en différé, bien vu!"
Encore merci