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 :

2 boutons avec la meme commande


Sujet :

IHM

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2010
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 240
    Points : 178
    Points
    178
    Par défaut 2 boutons avec la meme commande
    Bonjour,

    J'aimerai réaliser une commande générale afin de l'affecter sur plusieurs boutons.

    Le soucis est que je ne connais pas le moyen de le faire.
    Car si j'utilise l'onglet evenement et je prend sur click il m'ouvre Private sub.

    J'imagine que je pourrais utiliser le Private sub pour le renvoyer sur ma commande mais ce n'est pas ce que je recherche ^^

    Sur Excel c'est facile avec la commande d'attribution de macro.
    mais je ne sais pas le faire sur access

    Merci pour votre aide.

  2. #2
    Membre éprouvé

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Novembre 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 904
    Points : 1 229
    Points
    1 229
    Par défaut
    Bonjour

    Si tes boutons sont sur le même formulaire, tu peux créer un Public Sub Toto() sous ce formulaire, que tu appelles dans la procédure événementielle (Private Sub) par un Call Toto.

    Si tes boutons sont dans des formulaires différents, ou si tu as besoin d'une Function (avec des arguments), il faut créer dans un module.

    titi95
    Un problème bien posé est à moitié résolu

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2010
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 240
    Points : 178
    Points
    178
    Par défaut
    Bonjour,

    Ce que je cherche a faire ressemble a la solution de créer une fonction.

    Comment fait on pour affecter un bouton d'un formulaire à une commande d'un module?

  4. #4
    Membre éprouvé

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Novembre 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 904
    Points : 1 229
    Points
    1 229
    Par défaut
    1) Crée la Function dans un module

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Function Toto(Argument1 As xxx, Argument2 As xxx) As xxx
    'xxx = Type à déclarer (String, Long...)
    ...
    End Function
    2) appelle la Function à partir de l'événement Sur clic du bouton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub NomBouton_Click()
       Call Toto(argument1, argument2)
    End Sub
    titi95
    Un problème bien posé est à moitié résolu

  5. #5
    Membre habitué
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2010
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 240
    Points : 178
    Points
    178
    Par défaut
    je comprend ton idée mais c'est exactement ce que je voulais éviter.

    Ma commande est déjà généralisée mais je ne sais pas affecter les boutons à celle la sans faire appel a la fonction Call

    Voici ma fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Sub AjoutUn()
    If Nz(Me.bpCorriger, 0) = 0 Then
        Me.ActiveControl = Me.ActiveControl + 1
    Else
        If Me.ActiveControl > 0 Then
            Me.ActiveControl = Me.ActiveControl - 1
        End If
    End If
    End Sub
    et j'aimerais que pour chaque bouton y affecter ca.

  6. #6
    Membre éprouvé

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Novembre 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 904
    Points : 1 229
    Points
    1 229
    Par défaut
    Ce que je cherche a faire ressemble a la solution de créer une fonction.
    Donc ce n'est plus une Function ?

    sans faire appel a la fonction Call
    Il faut bien que tu appelles ton Sub si tu veux qu'il s'exécute !
    Mais si vraiment tu ne veux pas de Call tu peux l'enlever, puisque cette instruction est en fait facultative... Mais il te faudra tout de même appeler par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub NomBouton_Click()
       AjoutUn
    End Sub
    Ou alors je n'ai pas compris qqchose que tu n'as pas assez précisé...

    titi95
    Un problème bien posé est à moitié résolu

  7. #7
    Membre habitué
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2010
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 240
    Points : 178
    Points
    178
    Par défaut
    c'est moi qui doit mal s'exprimer.
    je cherche a faire un truc possible sur excel sur Access donc je ne sais pas si c'est possible ^^

    Pour illustrer voici ce que je cherche.
    c'est une fonction de Excel

    grace à ca, on fait des macro dans un module et on peux les affecter aux boutons que l'on souhaite
    Images attachées Images attachées  

  8. #8
    Membre éprouvé

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Novembre 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 904
    Points : 1 229
    Points
    1 229
    Par défaut
    C'est exactement ce que je te propose : un Sub en VBA appelé par l'Evenement "Sur clic" du bouton.
    A part que ton exemple lance sur le Clic du bouton une Macro au lieu d'une Procédure événementielle.

    Dans Propriétés Evénement Sur clic du bouton tu as le choix entre :
    - Procédure événementielle : comme proposée
    - Macro : comme ton exemple Xls, que tu peux écrire
    A toi de choisir.

    Remarque : les macros permettent de "programmer" facilement mais leur usage reste limité (recommandées pour débuter)
    Conseil : convertir les macros en code pour "apprivoiser le VBA" et pouvoir aller beaucoup plus loin quand nécessaire

    titi95
    Un problème bien posé est à moitié résolu

  9. #9
    Membre habitué
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2010
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 240
    Points : 178
    Points
    178
    Par défaut
    Bonjour,

    Je dois mal me faire comprendre lol ^^

    si je comprend bien ce que tu me dis:

    Je fais un Sub AjoutUn

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Sub AjoutUn()
    bla bla bla
    End Sub
    et pour chaque bouton je fais le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub BP1_Click()
    AjoutUn
    End Sub
     
    Private Sub BP2_Click()
    AjoutUn
    End Sub
     
    Etc
    Si j'ai bien compris c'est ca que tu veux que je fasse.

    Mais se n'est pas du tout ce que je veux faire ^^
    Je ne devrais pas comparer mais sur Excel on sait faire ce que je veux ^^
    j'ai remis une photo pour reillustrer ^^

    Ce que j'ai fait sur un Bouton peux se faire sur plusieurs.
    Ce qui faut voir sur la photo est que je ne passe pas par un fonction par Click() pour lancer la commande.
    Images attachées Images attachées  

  10. #10
    Membre éprouvé

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Novembre 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 904
    Points : 1 229
    Points
    1 229
    Par défaut
    Bonjour

    Je suis vraiment désolé, mais je ne comprends pas ce que tu cherches de plus, alors que ce que tu montres, sauf erreur, est complètement équivalent à ce que je t'explique.

    Ton exemple :
    - le clic du bouton exécute une macro (Classer1!test)
    - cette macro exécute un Sub (test)
    - ces macro et code pouvant être appelés par d'autres boutons

    Mon explication (sur Access)
    Dans Propriétés Evénement Sur clic du bouton tu as le choix entre :
    - Procédure événementielle : comme proposée
    - Macro : comme ton exemple Xls, que tu peux écrire
    A toi de choisir.
    Avec la 2ème solution "macro", tu peux exécuter ton Sub test

    C'est exactement pareil !

    Tu as fait l'essai ?

    titi95
    Un problème bien posé est à moitié résolu

  11. #11
    Membre habitué
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2010
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 240
    Points : 178
    Points
    178
    Par défaut
    A mon avis c'est parce que je n'arrive pas à le faire...

    Peux tu me dire, stp, comment je dois faire?

    En gros en me disant étape par étape stp ^^

  12. #12
    Membre éprouvé

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Novembre 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 904
    Points : 1 229
    Points
    1 229
    Par défaut
    Configuration de départ : un formulaire contenant un bouton que je l'appellerai Bouton1 dans mon explication (tu mettras le nom que tu voudras dans Propriétés/Autres/Nom)

    En mode Création du formulaire :
    1) tu sélectionnes Bouton1
    2) dans Propriétés/Evenement/Sur clic, tu choisis (avec la flèche) "Procédure événementielle"
    3) tu cliques sur les trois points à droite (...) ; ceci ouvre la page VBA sur laquelle tu dois trouver maintenant le code suivant qui vient d'être créé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Bouton1_Click()
     
    End Sub
    4) entre ces deux lignes tu ajoutes ton appel de Sub
    5) après le End Sub, tu ajoutes le Sub que tu avais écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Sub AjoutUn()
    If Nz(Me.bpCorriger, 0) = 0 Then
        Me.ActiveControl = Me.ActiveControl + 1
    Else
        If Me.ActiveControl > 0 Then
            Me.ActiveControl = Me.ActiveControl - 1
        End If
    End If
    End Sub
    6) tu enregistres (icône avec disquette en haut et à gauche)
    7) tu repasses sous Access (icône en haut et gauche)
    8) tu passes ton formulaire en mode Affichage et tu cliques sur le Bouton1 pour essayer.

    titi95
    Un problème bien posé est à moitié résolu

  13. #13
    Membre habitué
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2010
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 240
    Points : 178
    Points
    178
    Par défaut
    ok et donc si j'ai un autre bouton "bouton2"
    je dois faire de la sorte:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Bouton2_Click()
     AjoutUn
    End Sub
    ce qui dans mon code me donnera

    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
    Private Sub Bouton1_Click()
     AjoutUn
    End Sub
     
    Private Sub Bouton2_Click()
     AjoutUn
    End Sub
     
    Public Sub AjoutUn()
    If Nz(Me.bpCorriger, 0) = 0 Then
        Me.ActiveControl = Me.ActiveControl + 1
    Else
        If Me.ActiveControl > 0 Then
            Me.ActiveControl = Me.ActiveControl - 1
        End If
    End If
    End Sub
    C'est bien ca?

  14. #14
    Membre éprouvé

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Novembre 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 904
    Points : 1 229
    Points
    1 229
    Par défaut
    Et voila ; c'est bien ça !

    Si ton Sub est "passe-partout", tu peux l'appeler de n'importe quel événement (du même formulaire).

    Par contre, si des contrôles sont différents ou si tu veux appeler ton Sub de plusieurs formulaires, il faut passer par une Function. (voir plus haut)

    Bonne continuation !

    titi95
    Un problème bien posé est à moitié résolu

  15. #15
    Membre habitué
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2010
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 240
    Points : 178
    Points
    178
    Par défaut
    ^^ j'avais bien compris mais c'est juste que sur Excel tu sais avoir le même résultat sans faire d'appel de commande. ^^

    Enfin enfin ^^ Je vais faire comme ca ^^

    En tout cas merci pour le temps passé à m'expliquer ^^

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

Discussions similaires

  1. [PB]Cacher/Rendre visible un block avec un meme bouton
    Par Dje33510 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/03/2009, 16h19
  2. Pb Perl TK avec l'objet Bouton et l'option -command
    Par developpeur99 dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 30/10/2008, 14h45
  3. Deux boutons avec la meme ID
    Par Katachana dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 03/09/2008, 17h22
  4. Bouton avec autre commande que gotoandstop
    Par cepillo dans le forum Flash
    Réponses: 4
    Dernier message: 26/08/2008, 21h01
  5. [DW8] création bouton pour mail avec bon de commande
    Par isa51 dans le forum Dreamweaver
    Réponses: 6
    Dernier message: 12/06/2008, 11h28

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