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 :

Aller au 1°onglet par bouton de commande


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 134
    Points : 53
    Points
    53
    Par défaut Aller au 1°onglet par bouton de commande
    Bonjour à Tous,

    Je dispose d'un méta-formulaire appuyé sur 8 formulaires et autant d'onglets (le 8° ne fonctionne pas).
    Comment faire pour qu'en cliquant sur un Bouton commande en Onglet 2, je puisse revenir à l'Onglet 1 ?

    J'ai essayé cela, en vain :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub RetourGestionnaire_Click()
        Me.Zonedonglets.nomOnglet1.Enabled = True
        Me.Zonedonglets.nomOnglet1.SetFocus
        Me.Zonedonglets.nomOnglet2.Enabled = False
    Ni cela (j'imagine qu'il faut un compte) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Zonedonglets.Value = 4
    Quid ?
    Bk

  2. #2
    Membre éprouvé
    Avatar de keita
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2002
    Messages : 881
    Points : 1 121
    Points
    1 121
    Par défaut
    bonjour
    Je dispose d'un méta-formulaire appuyé sur 8 formulaires et autant d'onglets........
    Pas facile de te comprendre.
    cliquer sur un btn de commande pour activer un autre onglet d'un même contrôle à onglets? c'est ça?
    mais pourquoi ne pas faire le click directement sur l'onglet en question?
    peut être que je ne comprends pas.
    Essaie ceci:
    @+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 134
    Points : 53
    Points
    53
    Par défaut
    Bonjour Keita,

    Je viens d'essayer avec ta proposition en adaptant le "nomOnglet1". Mais cela ne fonctionne pas.

    En vérité, les onglets sont faits à la façon proposée ici : http://access.developpez.com/faq/?pa...t#Color_Onglet
    Ce sont donc déjà des boutons de commande (peut-être j'aurais du le préciser, pardon !)

    Ma démarche est plus motivée par praticité qu'autre chose...
    Bk

  4. #4
    Membre éprouvé
    Avatar de keita
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2002
    Messages : 881
    Points : 1 121
    Points
    1 121
    Par défaut
    Ouaih, brankorri, c'est plus simple de comprendre avec le lien.
    Le lien que tu m'as donné m'a permit de telecharger l'exemple de bd de la FAQ (Philippe JOCHMANS)
    Adapte ce bout de code à ton contexte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Commande27_Click()
        cmdOnglet0_Click
        mstTest_Change
    End Sub
    1/Le bouton Commande27 se trouve sur la page2 du contrôle à onglet
    2/il va activer le 1er onglet (celui en vert)
    ça devrait marcher.
    Attention c'est plutot comme ceci, le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Commande27_Click()
        cmdOnglet0_Click
    End Sub
    @+

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 134
    Points : 53
    Points
    53
    Par défaut
    Bonjour Keita,

    Merci pour le code. Mais cela ne fonctionne pas encore. J'ai essayé d'adapter des deux façons suivantes (dans le doute) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandeRetour_Click()
        cmdNomduPremierOnglet_Click
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandeRetour_Click()
        NomduPremierOnglet_Click
    End Sub
    Les deux fois, VBA me renvoie une erreur de compilation : "Sub ou Function non définis" (je suis sur Access 2003 fichier 2000).
    Qu'en penses-tu ?
    Quelle est la construction-type (formule) de la ligne, stp ?
    Bk

  6. #6
    Membre éprouvé
    Avatar de keita
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2002
    Messages : 881
    Points : 1 121
    Points
    1 121
    Par défaut
    bonjour à tous
    Les deux fois, VBA me renvoie une erreur de compilation : "Sub ou Function non définis" ....
    ..
    Cela signifie tout simplement que tu n'as pas pris le nom correct de ton onglet. La preuve tu me dis j'ai essayer avec ça cmdNomduPremierOnglet et avec ça NomduPremierOnglet.
    je t'envoie ce que j'ai fait;le bouton est sur la page 2 (page jaune)

    @+
    Fichiers attachés Fichiers attachés

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 134
    Points : 53
    Points
    53
    Par défaut
    Keita,

    Le NomduPremierOnglet était une illustration. J'avais bien compris tes lignes : en l'occurrence, l'onglet s'appelle Gestion donc je plaçais bien et la commande Retour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Retour_Click()
        cmdGestion_Click
    End Sub
    (et j'avais une faute à Private...).
    J'ai ouvert ton exemple et je t'avoue que ça ne fonctionne pas mieux chez moi.

    Surtout qu'en vérité, je viens de rencontrer un doute :
    lorsque je crée la commande et sa proc. évènementielle, je fais cela dans le formulaire "Onglet 2" appelé par l'Onglet 2 (du Méta-formulaire "Logiciel").
    Et lorsque je développe la proc. évènementielle, je tombe sur la page VB correspondant à ce formulaire "Onglet2" et non sur la page du Méta-formulaire "Logiciel".

    Est-ce compréhensible ? Si oui, alors mon travail est-il logique ?

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 134
    Points : 53
    Points
    53
    Par défaut
    Bonjour Keita,

    J'ai pu télécharger ta base, et il s'avère que nous ne parlions pas de la même base données en exemple. J'ai repris la méthode de la base téléchargeable tout en bas de la page, et non de l'exemple présenté au cours de la page elle-même.
    Mes onglets sont des boutons de commande et non de véritables onglets d'un seul et même formulaire (si je ne m'abuse).

    Et j'ai longtemps chercher, mais je n'aboutis toujours pas.
    Dois-je placer la chose ainsi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Retour_Click()
        Logiciel.Onglet1_Click
    End Sub

  9. #9
    Membre éprouvé
    Avatar de keita
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2002
    Messages : 881
    Points : 1 121
    Points
    1 121
    Par défaut
    bonjour
    ok;tu l'as dit, on ne parlait pas de la même chose.
    Tu peux me donner le lien me permettant de télécharger la bonne base?
    car j'avoue ne pas comprendre grand-chose à ça:
    Mes onglets sont des boutons de commande et non de véritables onglets d'un seul et même formulaire (si je ne m'abuse).


    @+

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 134
    Points : 53
    Points
    53
    Par défaut
    Merci Keita pour ton suivi !

    Sur cette page, il faut aller tout en bas, et télécharger le lien bleu (table de l'auteur, qui ne correspond pas exactement à l'exemple qu'il présente - en espérant que le téléchargement fonctionne toujours).

    Cordialement,
    Bk

  11. #11
    Membre éprouvé
    Avatar de keita
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2002
    Messages : 881
    Points : 1 121
    Points
    1 121
    Par défaut
    bonjour à tous
    J'ai bien peur qu'on tourne en rond (toi et moi) à ne pas se comprendre. c'est bien de ce travail que tu parles:
    auteur : Philippe JOCHMANS
    et à la fin du tuto, il y a bien ce qui suit; j'espere que tu en as tenu compte.
    3 ? Remarque :

    Ce code ne fonctionne que si le style d'onglet de votre contrôle n'est pas en Multi-Ligne.
    Si vous rajoutez des contrôles sur vos pages, n'oubliez pas de remettre le rectangle en arrière plan.
    Cet exemple est fait avec plusieurs couleurs, vous pouvez bien sûr n'en prendre qu'une.

    Attention : Si vous utilisez Access 2003, il faut que l'option "Utilisez les styles Windows" soit décoché dans l'onglet Formulaire des options pour cette astuce fonctionne.
    Ce code fonctionne sur les versions Access 2000, 2002 et 2003, il n'a pas été testé sur les versions 97 et 2007.

    téléchargement : Télécharger la base exemple
    Si oui, alors c'est bien la base sur laquelle j'ai travaillé et que je t'ai ramenée:
    tu l'ouvres, tu actives l'onglet jaune et sur la page se trouve le bouton que j'ai ajouté; un click la dessus, active l'onglet vert (l'onglet1) et donc la page verte.Tu me dis que ça ne marche pas chez toi; je suis tenté de te demander si tu as bien suivi les recommandations de l'auteur (en rouge et gras çi-dessus).
    ça t'ennuierait de ne m'envoyer que ton form à toi? cela pourrait faciliter les choses.
    bon week end à toi.
    @+

  12. #12
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Le problème vient certainement de ça :
    Citation Envoyé par brankorri Voir le message
    Surtout qu'en vérité, je viens de rencontrer un doute :
    lorsque je crée la commande et sa proc. évènementielle, je fais cela dans le formulaire "Onglet 2" appelé par l'Onglet 2 (du Méta-formulaire "Logiciel").
    Et lorsque je développe la proc. évènementielle, je tombe sur la page VB correspondant à ce formulaire "Onglet2" et non sur la page du Méta-formulaire "Logiciel".
    Le bouton n'est pas dans le formulaire principal (Logiciel), mais dans le sous-formulaire Onglet 2.
    Le contrôle à onglets du formulaire principal est inconnu du sous-formulaire.

    Essaie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Retour_Click()
        Forms("Logiciel").Zonedonglets.Value = 0
    End Sub
    Logiciel étant le nom du formulaire principal et Zonedonglets le nom du contrôle à onglets.
    0 est le numéro d'index de la première page.

    A+

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 134
    Points : 53
    Points
    53
    Par défaut
    Bonjour à tous les deux,

    Merci LedzeppII : je pensais effectivement à une telle chose (durant nos incompréhensions avec Keita )

    Cependant, cela ne passe pas (avec valeur de 0 comme de 1, pour le doute testé) : Erreur d'exécution '438'

    Est-ce qu'un rapport de SourceObjet serait une solution ?

    Merci,
    Bk

  14. #14
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    L'erreur 438 (Propriété ou méthode non gérée par cet objet) peut vouloir dire ...
    - que Zonedonglets n'est pas un contrôle du formulaire
    ou
    - que Zonedonglets n'a pas de propriété Value (comme une étiquette ou un rectangle par exemple)

    Est-ce que le contrôle à onglets est directement dans le formulaire principal Logiciel, ou bien est imbriqué dans quelque chose d'autre ?

    A+

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 134
    Points : 53
    Points
    53
    Par défaut
    LedzeppII,

    J'avais évidemment adapté ta ligne avec les justes corrections nécessaires
    C'est bien ce système de Value dont je ne vois pas la logique dans mon cas, car rappelons-le, il s'agit de boutons :

    * pourquoi alors une Valeur (plutôt cmd ou SourceObject ?)
    * pourquoi la 'zonedonglet' (qui est pour moi la zone Détail entière du formulaire principal Logiciel)


    Se comprend-on ?

    * Vous avez le savoir, j'ai le problème*

  16. #16
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Re,
    Citation Envoyé par brankorri Voir le message
    C'est bien ce système de Value dont je ne vois pas la logique dans mon cas, car rappelons-le, il s'agit de boutons :

    * pourquoi alors une Valeur (plutôt cmd ou SourceObject ?)
    Parce que la propriété Value d'un contrôle à onglet permet de changer de page.
    Peu importe que le style soit réglé sur Onglets, Boutons ou Aucun.

    Citation Envoyé par brankorri Voir le message
    * pourquoi la 'zonedonglet' (qui est pour moi la zone Détail entière du formulaire principal Logiciel)

    Se comprend-on ?
    Non, je crois que je ne suis largué.
    Je ne sais plus si tu as un contrôle à onglets avec 8 pages et 8 sous-formulaires,
    ou bien un seul contrôle sous-formulaire dont tu changes la source (objet source).

    Est-ce que tu peux nous faire voir le code d'un de tes boutons pour changer d'onglet ?
    Peut-être que ça sera plus clair.

    A+

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 134
    Points : 53
    Points
    53
    Par défaut
    Bonjour LedZeppII,

    Voici la commande de mon premier onglet, sur lequel je veux pouvoir revenir depuis les sous-formulaires (respectifs de chacun des autres onglets) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub Onglet1_Click()
        Me.cadreOnglet.SourceObject = "Gestion"
        Call OngletSelect(Me.Onglet1)
    End Sub


    Peut-être est-ce plus simple ainsi, effectivement !
    Ce code est celui qui permet en cliquant sur le 1° "Onglet" - comme sur un autre (en adaptant) - d'appeler le 1° Formulaire (lié) - ou un autre lié à tel autre "Onglet".

    ex pour l'Onglet 2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub Onglet2_Click()
        Me.cadreOnglet.SourceObject = "Origine"
        Call OngletSelect(Me.Onglet2)
    End Sub
    [/CODE]

    J'ai augmenté le nombre de formulaires de 8 à 11 (afin de ne pas perdre de temps dans mon labeur : je poursuis le développement du logiciel !)

    Il y a donc un contrôle par bouton-commande pour chaque "Onglet" qui appelle chacun un formulaire. On peut voir chaque formulaire comme un sous-formulaire du donc méta-formulaire dans lequel sont situées les 8-11 "Onglets", et dans lequel je développe les codes pour chacun de ces "Onglets".
    Est-ce plus clair ?
    Je reprends exactement le modèle de la (seconde) base du tutoriel de la page multi-citée plus haut.

    Bk

  18. #18
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Je comprends mieux.
    cadreOnglet n'est pas un contrôle à onglets mais un contrôle sous-formulaire.

    Si, comme j'ai crû le comprendre, ton bouton «Retour» n'est pas dans le formulaire principal, il faut remplacer Me par Forms("Logiciel").
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Retour_Click()
        Forms("Logiciel").cadreOnglet.SourceObject = "Gestion"
    End Sub
    Ensuite, concernant la procédure OngletSelect.
    Si elle est dans un module de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call OngletSelect(Forms("Logiciel").Onglet1)
    Si elle est dans le module de code du formulaire principal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call Forms("Logiciel").OngletSelect(Forms("Logiciel").Onglet1)
    Et OngletSelect doit être déclarée avec la portée Public.

    Citation Envoyé par brankorri Voir le message
    Je reprends exactement le modèle de la (seconde) base du tutoriel de la page multi-citée plus haut.
    Je ne dirait pas exactement.
    Tu n'as gardé que le principe des boutons de commande MS-Forms 2.0.

    A+

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 134
    Points : 53
    Points
    53
    Par défaut
    LedZeppII,

    C'est toi le patron !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Retour_Click()
        Forms("Logiciel").cadreOnglet.SourceObject = "Gestion"
        Call Forms("Logiciel").OngletSelect(Forms("Logiciel").Onglet1)
    End Sub
    Merci beaucoup !

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

Discussions similaires

  1. [XL-2007] Macro activée par bouton de commande
    Par XceSs dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 05/11/2010, 14h19
  2. Réponses: 10
    Dernier message: 18/02/2008, 09h37
  3. ouvrir lien hypertexte par bouton de commande
    Par tomas dans le forum IHM
    Réponses: 4
    Dernier message: 18/06/2007, 08h58
  4. Réponses: 12
    Dernier message: 23/06/2006, 17h07
  5. Bouton de commande - Aller à un onglet défini
    Par JF.Stachera dans le forum Access
    Réponses: 2
    Dernier message: 16/09/2005, 17h58

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