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

IHM Discussion :

[Formulaire] créer des boutons + et -


Sujet :

IHM

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 218
    Points : 77
    Points
    77
    Par défaut [Formulaire] créer des boutons + et -
    Bonjour,
    Je cherche une commande qui puisse augmenter ou diminuer la valeur d'un champ numérique...
    un bouton [-] à gauche et un bouton [+] a droite du champ c'est érgonomique

    je trouve dans la liste des commandes UpdateTypeEnum, ou updateCriteriaEnum (et F1 ne me donne aps d'aide sur leur utilisation)

    Quelqu'un a déjà fait de tels boutons!!??

  2. #2
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 812
    Points
    812
    Par défaut
    Peut-être

    Sur évènement click de ton bouton [-]:

    TonChampNumérique - 1

    Inversement pout bouton [+]

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 218
    Points : 77
    Points
    77
    Par défaut ah!
    Tout simplement...

    Ben oui...

    j'essaye

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 218
    Points : 77
    Points
    77
    Par défaut Oui, mais...
    Ben en fait ça ne marche pas...
    mon champ quantite est bien un champ numérique, je rentre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Commande10_Click()
    quantite -1
    End Sub
     
    Private Sub Commande11_Click()
    quantite 1
    End Sub
    10 etant le bouton [-] et 11 le bouton [+] !!??

    (je met quantite + 1 en code, et en reouvrant il me le transforme toujours en quantite 1 ... ce que je ne comprend pas... moi je veux AJOUTER 1 a chaque click, pas definir la valeur a "1"...)

    meme resultat si je precise un peu mieux en mettant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Commande10_Click()
    Me.[quantite] -1
    End Sub
     
    Private Sub Commande11_Click()
    Me.[quantite] 1
    End Sub
    le debogueur me surligne .quantite , comme s'il ne trouvait pas ce que c'est...

    RE-HEEEEEEELP

  5. #5
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Bonjour,
    Tu pourrais peut-être également utiliser un autre contrôle comme "Microsoft Forms 2.0 SpinButton"

    Sur ton form, une zone de texte (Texte24) et un SpinButton (SpinButton3).
    Ensuite, il faut utiliser les événéments "SpinDown" et "SpinUp"...attention, pour cela il faut ouvrir ton éditeur de code, sélectionner le contrôle SpinButton3 et dans la liste de droite tu y trouveras tous les événements associés:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub SpinButton3_SpinDown()
    Me.Texte24.Value = Texte24 - 1
    End Sub
     
    Private Sub SpinButton3_SpinUp()
    Me.Texte24.Value = Texte24 + 1
    End Sub
    Bonne continuation.

  6. #6
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 812
    Points
    812
    Par défaut
    Salut,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Commande11_Click()
    Me.Quantité = Me.Quantité + 1
    End Sub

  7. #7
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Re,
    je met quantite + 1 en code, et en reouvrant il me le transforme toujours en quantite 1 ...
    Oui, c'est normal, ici tu lui dit que quantité doit être égale à 1
    Il ne faut pas oublier d'incrémenter ou de décrémenter la valeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Commande10_Click()
    ' Ici quantité est égale à l'ancienne valeur contenue moins 1
    me.quantite.value= quantité  -1
    End Sub

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 218
    Points : 77
    Points
    77
    Par défaut Merci
    MERCI à vous deux, cette fois ça marche!!!


    J'essai d'interdire d'aller dans les valeurs négatives, maintenant

    Je peux faire un truc du genre pour desactiver le obuton moins, si la quantité est à 0:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If quantite = 0 Then
        Me.Commande10.Enabled = False
    Else
        Me.Commande10.Enabled = True
    End If
    Par contre cela ne amrche aps quand je clic sur [-] quadn ma valeur passe de 1 à 0, le bouton [-] reste activé, et je ne click nulle par ailleur...
    Si j'active ce VBA dans l'action click du bouton, il me répond qu'il ne peut désactiver le code en cours...

    De plus, le controle reagit sur TOUTES mes lignes d'enregistrement à la fois...
    Comment faire cette vérification sur CHAQUE enregistrement et l'appliquer uniquement à 'enregistrement concérné??

    ou alors il y a une autre façon totallement différente de faire...

  9. #9
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    As-tu mis ce code à la suite de ton opération dans le code ?

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 218
    Points : 77
    Points
    77
    Par défaut test
    J'ai essayé de multiples manières, notamment en mettant mon code de desactivation sur le "mousedown" qu'il activce ou non le bouton
    et bloque ou non l'evenement d'incrementation qui est alors placé sur le "mouseUp", mais il me repond a nouveaux qu'il ne peux desactiver le controle actif...

  11. #11
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    Tu dois le mettre dan sla procédure on click mais avant, tu dois donner le focus à un autre contrôle. tu ne peut désactiver un contrôle qui a le focus.

  12. #12
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Re,
    Je vois donc que ce n'était pas

    En reprenant mon exemple avec un SpinButton, sur l'événement "SpinDown":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub SpinButton3_SpinDown()
    'Ici si la valeur = 0 alors je reste toujours sur zèro
    If Me.Texte24.Value = 0 Then
        Me.Texte24.Value = 0
    'Sinon si supérieure à zéro je peux décrémenter
    Else
    Me.Texte24.Value = Texte24 - 1
    End If
    End Sub
    A adapter à ton appli....

    [EDIT]
    Comment faire cette vérification sur CHAQUE enregistrement et l'appliquer uniquement à 'enregistrement concérné??
    Il faut vérifier la valeur de ton champ à chaque changement d'enregistrement. Sur l'événement "Sur activation" de ton Formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Form_Current()
    If Me.Texte24.Value = 0 Then
        Me.btnBAS.Enabled = False
    Else
        Me.btnBAS.Enabled = True
    End If
    End Sub

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 218
    Points : 77
    Points
    77
    Par défaut Oui
    ça marche en effet si je met le focus sur mon champ quantite...
    la case [-] se desactive alros bien en arrivant à 0 !!!

    Par contre, comment je peux faire pour désolidariser mes enregistremetn!!??
    Actuellement, si je met un seul enregistrement sur 0, il me met tous les boutons [-] inactifs... ce qui n'est aps logique...

    Je pense qu'il faudrai affiner ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Commande10.Enabled = True
    car "me" indique le formulaire global,e t donc il me desactive tout...
    Mais commetn indiquer l'enresgitrement en cours, dans le formulaire en cours??
    "me.me" ???

    MERCI

  14. #14
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Comme dit précedemment, il faut vérifier la valeur de ton champ à chaque changement d'enregistrement..
    Sur événement "Sur activation".....

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 218
    Points : 77
    Points
    77
    Par défaut oui
    Je vois a peu près ce que tu veux dire (enfin j'imagine)
    mais c'est un peu trop textuel
    et pas assez coduel
    enfin pour moi...


    sur activation... c'est mone venement "Onload" !!??
    je vois aps commetn en rensignant ce champ, il va reussir a differencier mes enregistrement...???

  16. #16
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Heu, la faut vraiment faire un peu d'effort....donc lire TOUT ce qui est marquer
    sur activation... c'est mone venement "Onload" !!??
    Je t'avais quand même mis un exemple sur mon dernier post
    Il faut vérifier la valeur de ton champ à chaque changement d'enregistrement. Sur l'événement "Sur activation" de ton Formulaire:

    Code :
    Private Sub Form_Current()
    je vois aps commetn en rensignant ce champ, il va reussir a differencier mes enregistrement...???
    Je pense que ton champ que tu veux augmenter/diminuer provient d'une table
    Donc à chaque fois que tu change d'enregistrement, ce champ affiche une valeur différente.
    Donc, ce code va vérifier à chaque fois si la valeur contenue dans ton champ est égale ou non à zéro:
    Si Oui ..........je verrouille mon bouton
    Si Non..........Je déverrouille

    Comme cela c'est plus "coduel" Allez essaie et dit nous ce qui ne va pas.

  17. #17
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    car "me" indique le formulaire global,e t donc il me desactive tout...
    Mais commetn indiquer l'enresgitrement en cours, dans le formulaire en cours??
    "me.me" ???
    Free Access te donne la solution, tu dois refaire le test lors du chnagement d'enregistrement et c'est sur On_Current()

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 218
    Points : 77
    Points
    77
    Par défaut Oui
    Bon!!

    J'ai enfin compris ce que fait ce bout de code... et il me semble donc qu'il devrait marcher.... et bien non...


    Voila ma progamramtion:

    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
    Private Sub Form_Current()
    'PERMET DE DESACTIVER LA COMMANDE10 
    If Me.quantite.Value = 0 Then
        Me.Commande10.Enabled = False
    Else
        Me.Commande10.Enabled = True
    End If
    End Sub
    Private Sub Commande11_Click()
    Me.quantite.Value = quantite + 1
    Me.Requery
    End Sub
     
    Private Sub Commande10_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If quantite = 0 Then
        Me.Commande10.Enabled = False
    Else
        Me.Commande10.Enabled = True
    End If
    End Sub
     
    Private Sub Commande10_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Me.quantite.Value = quantite - 1
    Me.Requery
    End Sub
    Le code bloque TOUJOURS toutes les commande10 de chaque ligne d'enregistrement...

    J'affiche PLUSIEURS enregistrement dans mon sous-formulaire de detail du devis...

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 218
    Points : 77
    Points
    77
    Par défaut Bon...
    En fait j'ai changé pour la méthode avec les spinbuttons, plus simple, finalement au niveau du code...
    Par contre, sur ma 1ere ligne d'enregistrement, je clique, et ça me change le total directement.
    Sur la deuxiè_me ligne, si je clique, apparement, ça "active" jsute le spinbutton, et un second clic incrémente ou décrémente...

    Comment eviter cela??

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 218
    Points : 77
    Points
    77
    Par défaut Fin
    Bon,
    J'ai enlevé ma fonction me.requery...
    il ne met plus a jour automatiquement le total du devis, mais au moins, je fais jsute 1 clic pour activer le spinButton, et ensuite autant de clic pour augmenter la valeur...
    (plus besoin de réactiver le spin button a chaque clic...)

    on va dire que ça ira comme cela...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/10/2006, 14h21
  2. [VB 2005] Créer des boutons spéciaux
    Par Legli dans le forum Windows Forms
    Réponses: 2
    Dernier message: 14/09/2006, 11h18
  3. Réponses: 2
    Dernier message: 14/07/2006, 14h24
  4. comment créer des boutons sur une feuille en utilisant eclipse
    Par ratamahatta dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 09/06/2006, 19h17
  5. J'aimerais créer des boutons de commandes dynamiquement??
    Par STRUFIELD dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 06/12/2005, 20h52

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