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

VB 6 et antérieur Discussion :

Somme contenu de zone de texte


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 140
    Par défaut Somme contenu de zone de texte
    Bonjour,
    Sur une feuil, je cherche à afficher dans un label la somme du contenu de 10 zones texte lorsqu'une d'entre elle est modifiée.
    Voici le bout de pgm:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Private Sub Pht_KeyPress(Index As Integer, KeyAscii As Integer)
    Dim i As Byte
    Dim Total As String
     
    Total = 0
    For i = 0 To 9
         Total = Total + Pht(i).Text
    Next
    label(31).Caption = Total
    End Sub
    C'est dans le label(31) que je cherche à afficher le résultat mais la syntaxe n'est pas bonne car rien ne s'affiche quelqu'un aurai une idée ?

  2. #2
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    Le code parait bon, une petite amélioration serait de definir total comme un numérique

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 133
    Par défaut
    Salam,

    Je viens de tester ce code et ça marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Pht_KeyPress(Index As Integer, KeyAscii As Integer)
    Dim i As Byte
    Dim Total As String
     
    Total = 0
    For i = 0 To 1
         Total = Val(Total) + Val(pht(i).Text)
    Next
    Label.Caption = Total
    End Sub
    Néanmoins, quand on clique sur le textbox il affiche la somme précédente.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 140
    Par défaut
    Oui, c'est mieux avec Val ( ) mais truc bizarre, le dernier chiffre saisi n'est pas compter !? C.a.d que si je saisi 125, il m'affiche "12" puis je rajoute 1254, il m'affiche "124". De même quand je saisi dans une 2ieme zone par exemple "8", alors j'ai comme resultat "1254".

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 126
    Par défaut
    salut,
    essay de mettre ton code dans l'evenement change du text.!!

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 140
    Par défaut
    Yes ! ca marche Merci

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 140
    Par défaut
    Oups, j'avais oublié les virgules ...
    Je bloque pour les faire apparaitre correctement. Avec VAL, elles ne sont pas prisent en compte, en revanche le "point" oui. Mais se sont des virgules que je voudrais permettre à la saisie et là je vois pas comment passer ce pb.
    Voilà ce que le code donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub Pht_KeyPress(Index As Integer, KeyAscii As Integer)
    Dim AllowedKeys As String
     
    AllowedKeys = "0123456789,." & Chr(8)
      If KeyAscii = 46 Then  
         KeyAscii = 44       
      End If
      If InStr(AllowedKeys, Chr(KeyAscii)) = 0 Then
         KeyAscii = 0         
      End If
    End Sub
    Là je remplace donc la saisie éventuelle du point par une virgule.
    et sur l'évènement "change", je fais mon calcul puis affichage.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub Pht_KeyUp(Index As Integer, KeyCode As Integer, Shift As Integer)
    Dim i As Byte
    Dim Total As Double
     Total = 0
     For i = 0 To 9
            Total = Val(Total) + Val(Pht(i).Text)
     Next
     label(31).Caption = (Total)
    End Sub
    Mais comme écrit là, les virgules ne sont pas prisent en compte.
    J'ai essayé avec Cstr avant d'afficher Total mais ca ne change rien

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/12/2007, 17h58
  2. somme valeurs de zone de texte
    Par magictom42 dans le forum VBA Access
    Réponses: 1
    Dernier message: 25/09/2007, 16h25
  3. Réponses: 2
    Dernier message: 02/03/2007, 17h26
  4. somme dans etat (zone de texte)
    Par milielf dans le forum Access
    Réponses: 6
    Dernier message: 28/07/2006, 10h52
  5. [Etat]Somme d'une zone de texte
    Par acceso dans le forum IHM
    Réponses: 5
    Dernier message: 05/01/2006, 17h38

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