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 :

[TEXTBOX] Mise à jour automatique d'une Valeur numérique


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 38
    Par défaut [TEXTBOX] Mise à jour automatique d'une Valeur numérique
    Bonjour,

    j'ai créé un UserForm contenant 7 TextBox et une ComBoxBox. Le principe du code est le suivant:
    TextBox3 = TextBox1 + TextBox2
    TextBox4 = entrer une valeur manuellement
    TextBox5 = TextBox3 x TextBox4
    TextComboBox = valeur change en fonction de du ComboxBox.

    et enfin le calcul final: TextBox6 = TextBox5 x TextComboBox.

    Le code actuel est fonctionnel mais n'est pas optimisé en fonction des changements de valeurs de certaines TextBox. Si je rentre les valeurs dans l'ordre suivant tout est fonctionnel:
    TextBox1 => TextBox2 => TextBox4 => Choix Valeur de ComBoxBox. TextBox6 est updaté automatiquement.

    cependant, Si je rentre des valeurs dans un autre ordre, par exemple en commençant par ComBox et ensuite TextBox1 et TextBox2, TextBox6 ne sera pas mise à jour automatiquement.

    Ma question est la suivante: comment puis-je optimiser le code suivant de façon a mettre automatiquement à jour TextBox6 quelque soit l'ordre de saisie des autres TextBox ou Combo ?

    Je coince un peu, à part mettre une condition de type Private TextBox .... Change(), je ne vois pas et ça ne couvre pas tous les cas.

    Je vous remercie pour votre aide
    Fichiers attachés Fichiers attachés

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Bonjour.

    Je ferai du code qui fait les modifications pour tous les champs calculés en gérant les valeurs nulls et je l'appellerai à la modification de chacun des champs.

    Quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    private sub TextBox4_Change()
        call Calculer
    end sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    private sub TextComboBox_Change()
        call Calculer
    end sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private sub Calculer()
       TextBox3 = iif(isnull(TextBox1,0,TextBox1)) + iif(isnull(TextBox2,0,TextBox2))
       TextBox5 = TextBox3 x iif(isnull(TextBox4,0,TextBox4))
       TextBox6 = TextBox5 x iif(isnull(TextComboBox,0,TextComboBox))
    end if
    Pour les codes _Change je ne suis pas sur de la signature de la procédure mais l'idée est là, tu recalcules tout à chaque fois si ou l'autre des champs est modifié.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 38
    Par défaut
    Merci pour les infos, Je vais tester ça.

    j'ai fait en attendant autrement. Mais je ne sais pas si c'est propre. Je refais l'ensemble des calculs lorsque la souris bouge dans la UserForm Ci-dessous, le code pour seulement textbox6. J'ai ensuite fait pareil pour Textbox3 et TextBox5 et textBox7,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
      If Not ((TextBox5.Text = "") Or (TextBoxCombo.Text = "")) Then
                TextBox6 = (CDbl(TextBox5.Value) * CDbl(TextBoxCombo.Value))
                Me.TextBox6 = Format(Me.TextBox6, "# ##0.00 ")
     
      End If

  4. #4
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 38
    Par défaut
    Citation Envoyé par marot_r Voir le message
    Bonjour.

    Je ferai du code qui fait les modifications pour tous les champs calculés en gérant les valeurs nulls et je l'appellerai à la modification de chacun des champs.

    Quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    private sub TextBox4_Change()
        call Calculer
    end sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    private sub TextComboBox_Change()
        call Calculer
    end sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private sub Calculer()
       TextBox3 = iif(isnull(TextBox1,0,TextBox1)) + iif(isnull(TextBox2,0,TextBox2))
       TextBox5 = TextBox3 x iif(isnull(TextBox4,0,TextBox4))
       TextBox6 = TextBox5 x iif(isnull(TextComboBox,0,TextComboBox))
    end if
    Pour les codes _Change je ne suis pas sur de la signature de la procédure mais l'idée est là, tu recalcules tout à chaque fois si ou l'autre des champs est modifié.

    A+
    Je viens de tester cette méthode sans succès. Comment fonctionne l'argument "isnull"?
    Quand je rentre des valeurs dans Textbox1 et Textbox2 j'ai une erreur: wrong arguments ISNULL qui s'affiche.

Discussions similaires

  1. Réponses: 15
    Dernier message: 02/05/2007, 18h04
  2. Mise à jour automatique d'une page Web
    Par mydev dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/04/2007, 10h58
  3. Réponses: 4
    Dernier message: 09/03/2007, 19h19
  4. [Conception] mise à jour automatique d'une base de donné distante
    Par bipbip2006 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/06/2006, 16h45
  5. Mise à jour automatique d'une table access via un .xls
    Par infratunes dans le forum Access
    Réponses: 4
    Dernier message: 05/04/2006, 18h33

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