VBA Exception non gérée String vs Double

Résolu/Fermé
arscy - 30 sept. 2020 à 17:32
 arscy - 30 sept. 2020 à 19:47
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!
A voir également:

1 réponse

f894009 Messages postés 17184 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 12 avril 2024 1 701
30 sept. 2020 à 18:06
Bonjour,

Dim euros As Double

 If EurosBox.Text = "" Then
        DollarsBox.Text = ""
    Else
        euros = EurosBox.Text
        DollarsBox.Text = euros * 1.207
    End If
1
Définir la variable en différé... bien vu! Merci
0
Whismeril Messages postés 19020 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 14 avril 2024 927 > arscy
30 sept. 2020 à 19:28
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
0
arscy > Whismeril Messages postés 19020 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 14 avril 2024
30 sept. 2020 à 19:47
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
0