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 :

[E-97]calcul dans un userform


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Par défaut [E-97]calcul dans un userform
    Bonjour,

    Je possède un usf et dedans j'ai trois textbox. Je cherche remplir ma textbox (Prix_metre) à partir des deux premières (Prix et Superficie).

    Donc ma formule est Prix_metre = Prix/superficie.

    On m'a donné ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    textbox_prix_m2.Value = CSng(TextBox_Prix.Value) / CSng(TextBox_Superficie.Value)
    mais cela n'a pas fonctionné.

    Une (autre ou pas) idée?

  2. #2
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour chicard le forum peut etre comme cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    textbox_prix_m2 = (Val(TextBox_Prix.Value) / (TextBox_Superficie.value))

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Par défaut
    Je viens de tester et cela n'a pas fonctionner mais peut-être que c'est moi qui le met pas au bon endroit.

    Voilà ou je les ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub TextBox_Prix_metre_Change()
    TextBox_Prix_metre = (Val(TextBox_Prix.Value) / (TextBox_Superficie.Value))
    'TextBox_Prix_metre.Value = CSng(TextBox_Prix.Value) / CSng(TextBox_Superficie.Value)
    End Sub
     
    'Private Sub TextBox_Prix_metre_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    '    TextBox_Prix_metre = (Val(TextBox_Prix.Value) / (TextBox_Superficie.Value))
    'TextBox_Prix_metre.Value = CSng(TextBox_Prix.Value) / CSng(TextBox_Superficie.Value)
    'End Sub

  4. #4
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    bonjour à tous, tu peux essayer aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    textbox_prix_m2 = TextBox_Prix.Value * 1  / TextBox_Superficie.value * 1
    Fais attention à ton séparateur décimal, il faut que ce soit un point.
    pour cela utilise ceci pour tes TextBox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub TextBox_Prix_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If KeyAscii = 44 Then KeyAscii = 46
    End Sub
    cordialement

  5. #5
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    rebonjour le fil fred65200 le code je l ai mise dans un bouton !! et non dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub TextBox_Prix_metre_Change()
    autrement on peut faire comme cela un ex
    textbox1=TextBox_Prix
    textbox2=TextBox_Superficie
    textbox3=textbox_prix_m2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub TextBox1_Change()
    TextBox1.Value = Replace(TextBox1.Value, ",", ".")'si pb ,
    If TextBox2 <> "" Then TextBox3 = (Val(TextBox1.Value) / (TextBox2))
    End Sub
    Private Sub TextBox2_Change()
    TextBox2.Value = Replace(TextBox2.Value, ",", ".")'si pb ,
    If TextBox1 <> "" Then TextBox3 = (Val(TextBox1.Value) / (TextBox2))
    End Sub

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Par défaut
    Ca passe pas non plus. En fait il faudrait que mon résultat s'affiche soit de suite dans ma textbox soit quand l'indicateur de saisie est dedans.

    Voici le code entier qui est dans mon user form ( Attention c'est pas du code propre à l'intérieur);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    Private Sub CommandButton1_Click()
     '       Feuil1.Cells(2, 1) = ComboBox1.Value
     '       RowSource
     
    End Sub
     
    Private Sub TextBox_COS_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    'ne peut taper que des chiffres a adapter
    If InStr("0123456789", Chr(KeyAscii)) = 0 Then KeyAscii = 0
    End Sub
     
    Private Sub TextBox_Date_Change()
      With TextBox_Date
      Select Case Len(.Text)
      Case 2, 5
       .Text = .Text & "/"
      End Select
       End With
    End Sub
     
    Private Sub TextBox_Date_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    'ne peut taper que des chiffres a adapter
    If InStr("0123456789", Chr(KeyAscii)) = 0 Then KeyAscii = 0
    End Sub
     
    Private Sub TextBox_Prix_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    'ne peut taper que des chiffres a adapter
    If InStr("0123456789", Chr(KeyAscii)) = 0 Then KeyAscii = 0
    End Sub
     
    Private Sub TextBox_Prix_metre_Change()
     
    'TextBox_Prix_metre = (Val(TextBox_Prix.Value) / (TextBox_Superficie.Value))
    'TextBox_Prix_metre.Value = CSng(TextBox_Prix.Value) / CSng(TextBox_Superficie.Value)
    End Sub
     
    Private Sub TextBox_Prix_metre_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If KeyAscii = 46 Then KeyAscii = 44
    'TextBox_Prix_metre = TextBox_Prix.Value * 1 / TextBox_Superficie.Value * 1
    'TextBox_Prix_metre = (Val(TextBox_Prix.Value) / (TextBox_Superficie.Value))
    End Sub
    'Private Sub TextBox_Prix_metre_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    '
    'TextBox_Prix_metre.Value = CSng(TextBox_Prix.Value) / CSng(TextBox_Superficie.Value)
    'End Sub
     
    Private Sub TextBox_Prixshon_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    'ne peut taper que des chiffres a adapter
    If InStr("0123456789", Chr(KeyAscii)) = 0 Then KeyAscii = 0
    End Sub
     
    Private Sub TextBox_Shon_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    'ne peut taper que des chiffres a adapter
    If InStr("0123456789", Chr(KeyAscii)) = 0 Then KeyAscii = 0
    End Sub
     
    Private Sub TextBox_Spermin_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    'ne peut taper que des chiffres a adapter
    If InStr("0123456789", Chr(KeyAscii)) = 0 Then KeyAscii = 0
    End Sub
     
    Private Sub TextBox_Superficie_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    'ne peut taper que des chiffres a adapter
    If InStr("0123456789", Chr(KeyAscii)) = 0 Then KeyAscii = 0
    End Sub
     
    Private Sub UserForm_Initialize()
    Dim Tableau As Variant
     
        Tableau = Feuil4.Range("A1:A14").Value
        ComboBox1.List() = Application.Transpose(Tableau)
     
        Tableau2 = Feuil4.Range("C1:C2").Value
        ComboBox2.List() = Application.Transpose(Tableau2)
     
    End Sub

  7. #7
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    bonjour,

    essai ça qui fonctionne pour moi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub TextBox_Prix_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    TextBox_Prix_metre = (Val(TextBox_Prix.Value) / (TextBox_Superficie.Value))
     
    End Sub
    dans le classeur reçu
    @+
    EDIT tu peux peut être remplacer le TextBox TextBox_Prix_metre par un Label

  8. #8
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    rebonjour je t ais fait un exemple je sais pas a quoi servent les combobox j ai mis le code pour les remplir tu peus ajouter autant de nom que tu veus il prendra en compte j ai renomer lles textbox plus facile "utilisation module de classe" j ai fait le calcul avec val ca marche en attendant dans savoir plus.
    les autres textbox a quoi ils servent !!!! les combox envoient les donnees dans les textbox??

  9. #9
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Par défaut
    Je vais essayer vos code, mais je me demande si il y a pas un passage de paramètres à faire comme dans d'autre langage style le C++

    Je viens te tester ton code fred et effectivement cela marche. Ja vais quand mêm voir celui de laetitia mais bon le sujet est résolu.

    Merci

  10. #10
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    non, à la sortie du TextBox TextBox_Prix_Exit, le TextBox TextBox_Prix_metre va se mettre à jour. Je n'ai pas inclus les conditions si non vide etc..
    @+

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

Discussions similaires

  1. [XL-2003] Certaines colonnes d'une feuille de calcul dans un userform
    Par Rogeure dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/08/2013, 19h36
  2. Réponses: 2
    Dernier message: 28/07/2013, 23h58
  3. [XL-2003] Calculer dans un userform et label
    Par dlight dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/01/2011, 00h48
  4. calcul dans un userform
    Par stephlinternaute dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 23/07/2007, 01h25
  5. Comment mettre a jour des calculs dans un userform
    Par alex.a dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 18/06/2007, 18h59

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