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 :

Calcul entre textbox dans un formulaire


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 19
    Par défaut Calcul entre textbox dans un formulaire
    Bonjour à tous,

    J'ai une nouvelle fois besoin de votre aide, j'espère que vous pourrai m'aider.

    Dans mon formulaire j'ai 3 textbox dans un frame.
    L'utilisateur rentrera un montant dans la première. J'ai verrouillé le format de la cellule comme suit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ' n'autorise que les nombres positifs dans la txtbox 
    Private Sub TxtCA_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If InStr("1234567890,", Chr(KeyAscii)) = 0 Or InStr(TxtCA.Value, ",") <> 0 And Chr(KeyAscii) = "," Then KeyAscii = 0: Beep
    End Sub
    L'utilisateur devra entrer le montant à chaque utilisation. Pas de problème jusqu'ici.

    La textbox 2 est aussi un montant et verrouillée comme la précédente.
    La troisième est un pourcentage (je ne sais pas comment la verrouiller au passage).

    Or il peut arriver que l'utilisateur ne connaisse que le pourcentage ou le montant de la textbox 2.
    Je souhaitais donc placer une formule pour calculer et remplir automatiquement la 3eme textbox.

    Exemple:
    textbox 1 CA: 10000
    textbox 2 réduction: 500
    Textbox 3 % réduction: ???

    Ou:
    Textbox1 CA: 10000
    Textbox2 réduction??
    textbox3 %réduction: 5%

    Faut-il pribilégier l'utilisation d'une function ()...end function?

  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
    Attention, les textbox retournent du texte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub TextBox2_Change()
     
    If Val(TextBox1) <> 0 Then TextBox3 = Format(Val(TextBox2) / Val(TextBox1), "0.0%")
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 19
    Par défaut
    Que veux tu dire? Que mes variables sont mal déclarées?

  4. #4
    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
    Je n'ai pas vu de variables.
    J'ai simplement dis que les TextBox retournent du texte (comme leur nom l'indique)

    Exemple
    On écrit un nombre dans TextBox1 et on récuppère le nombre saisi dans une feuille à l'aide du code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub TextBox1_Change()
    Range("A1") = TextBox1
    End Sub
    Si on écrit 1256 dans textbox1, on aura en A1 un texte 1256 (regarde le petit triangle en vert en A1)
    D'où l'utilisation de la fonction Val

    Essaies maintenant ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub TextBox1_Change()
    Range("A1") = Val(TextBox1)
    End Sub

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 19
    Par défaut
    Ah ok j'ai saisi, en gros il y a un risque de transférer des lettres dans des cases dédiées à des nombres.

    J'ai essayé ton code, mais le problème c'est que si je fais ça je ne peux plus rien saisir dans la textbox pourcentage.

Discussions similaires

  1. Calcul entre enregistrements dans la meme colonne
    Par midasios dans le forum VBA Access
    Réponses: 5
    Dernier message: 12/02/2008, 12h40
  2. Réponses: 4
    Dernier message: 20/12/2007, 07h58
  3. Verrouiller un textbox dans un formulaire
    Par Cheorches dans le forum IHM
    Réponses: 4
    Dernier message: 03/09/2007, 14h44
  4. Calculs d'heures dans un formulaire
    Par rossy dans le forum IHM
    Réponses: 1
    Dernier message: 27/11/2006, 16h29
  5. [Access 2002] Calcul de champ dans un formulaire !
    Par Amanck dans le forum Access
    Réponses: 6
    Dernier message: 29/05/2006, 15h22

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