IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Problème effacement données Userform (multiplication textbox)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    HSE
    Inscrit en
    Novembre 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : HSE

    Informations forums :
    Inscription : Novembre 2014
    Messages : 21
    Par défaut Problème effacement données Userform (multiplication textbox)
    Bonjour à tous,

    J'ai créé un Userform dans lequel il y a une multiplication entre deux Textbox sous la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UserForm3.TextBox31 = UserForm3.TextBox31.Value
    If UserForm3.TextBox32 <> "" Then
    UserForm3.TextBox35 = UserForm3.TextBox31 * UserForm3.TextBox32
    End If
    J'ai également créé un Commandbutton afin d'effacer l'ensemble des données de ma Userform, pour la remettre à zéro, sous la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    If MsgBox("Are you sure ?", vbYesNo, "Cancel") = vbYes Then
     
    Dim c As Control
    For Each c In Me.Controls
         Select Case TypeName(c)
            Case "TextBox"
             c.Value = ""
            Case "ListBox", "ComboBox"
             c.ListIndex = -1
         End Select
    Next
    End If
    Seulement voilà, lorsque je clique sur mon commandbutton, il m'affiche "erreur d'exécution 13 : incompatibilité de type", en surlignant en jaune ma ligne "UserForm3.TextBox35 = UserForm3.TextBox31 * UserForm3.TextBox32"

    Pourriez-vous m'aider à résoudre mon problème afin que je puisse remettre à zéro l'ensemble des entrées de ma Userform, y compris cette partie où un calcul entre deux Textbox est réalisé

    Merci beaucoup à tous !

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Les textbox comme leur nom l'indique donnent du texte (qu'on ne peut pas multiplier)

    Il faudra faire appel aux fonctions de conversion string/numeric

  3. #3
    Membre averti
    Femme Profil pro
    HSE
    Inscrit en
    Novembre 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : HSE

    Informations forums :
    Inscription : Novembre 2014
    Messages : 21
    Par défaut
    Bonjour,

    Pourtant, cela fonctionne, j'arrive bien à multiplier les données comme je le souhaite. Le problème étant que je n'arrive pas à les effacer alors que j'arrive à effacer les données des autres textbox et combobox.
    Mais cela provient peut-être du fait que j'ai des chiffres multipliés dans des textbox ?

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour,

    Essayez pour voir si cela fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim x#
    UserForm3.TextBox31 = UserForm3.TextBox31.Value
    If UserForm3.TextBox32 <> "" Then
      If isumeric(UserForm3.TextBox31) And IsNumeric(UserForm3.TextBox32) Then
        x# = CDbl(UserForm3.TextBox31) * CDbl((UserForm3.TextBox32))
        UserForm3.TextBox35 = CStr(x#)
      End If
    End If

  5. #5
    Membre averti
    Femme Profil pro
    HSE
    Inscrit en
    Novembre 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : HSE

    Informations forums :
    Inscription : Novembre 2014
    Messages : 21
    Par défaut
    Merci pour vos explications,

    J'ai finalement réussi en modifiant mes commandes de multiplication de la façon suivante, en transformant mes données en valeurs numériques donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    UserForm3.TextBox31 = Val(UserForm3.TextBox31)
    If UserForm3.TextBox32 <> "" Then
    UserForm3.TextBox35 = UserForm3.TextBox31 * UserForm3.TextBox32
    End If
     
    UserForm3.TextBox31.Value = Val(UserForm3.TextBox31)
    UserForm3.TextBox32.Value = Val(UserForm3.TextBox32)
    UserForm3.TextBox35.Value = Val(UserForm3.TextBox35)

    Merci et bonne journée !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] Insérer automatiquement des données dans une TextBox de mon userform
    Par Valoche37 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/01/2012, 18h18
  2. Problème effacement contenu Textbox
    Par Allspark dans le forum C#
    Réponses: 5
    Dernier message: 20/07/2010, 14h48
  3. Effacer données de plusieurs textbox
    Par Waldner11 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 08/01/2010, 15h05
  4. Réponses: 1
    Dernier message: 28/08/2007, 10h25
  5. [C#]Problème d'affichage de données dans ma textbox
    Par brazilia28 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 25/04/2007, 19h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo