Détecter le changement de page dans un contrôle Onglet

Je voudrais du code VB qui réagirait lorsque l’utilisateur change de page, dans un contrôle Onglet. Pour ça, j’ai programmé l’événement Sur clic du contrôle Onglet. Mais ça ne marche pas, pourquoi ?

Le contrôle Onglet et ses pages

L’événement Sur clic est un événement associé à une page, pas à la zone d’onglets complète. Il ne se produit que si on clique à l’intérieur de la page, et pas lorsqu’on change d’onglet. Ceci est normal 🙂

Ce qu’il vous faut en réalité est l’événement Sur changement du contrôle Onglet complet. Vous l’obtenez en cliquant sur le contrôle Onglet et en vérifiant que c’est bien le pourtour de l’objet qui est sélectionné, pas l’intérieur d’une page. D’ailleurs, la fenêtre des propriétés doit mentionner « Contrôle Onglet » et non pas « Page« .

Identifier la page cliquée

Mais si l’événement Sur changement n’est plus associé à une page, comment savoir quelle page a été cliquée ?

L’objet Onglet a une propriété Value qui donne tout simplement le numéro de la page active (la 1ère page étant numérotée 0, histoire de…). Essayez donc l’événement qui suit :

A chaque changement de page, une boîte vous donne maintenant le numéro de la page active. A vous d’ajouter le code nécessaire pour réagir à ce changement de page…

Vous aimerez aussi...

4 réponses

  1. Hervé Inisan dit :

    Griffouiris > Le sous-formulaire est lui-même affiché de quelle manière ? Mode Formulaire (ou Colonne simple), Mode tabulaire, Mode Feuille de données ?

    Parce que dans les cas 2 et 3, il y a aussi le problème de la ligne où il faut se positionner…

  2. Griffouiris dit :

    Bonjour, Comment on fait par VBA pour atteindre une zone texte d’un sous-formulaire qui est lui même dans une page d’un onglet? (j’ai access 2007)

  3. Hervé Inisan dit :

    Tu veux dire que tu as un formulaire, avec à l’intérieur un sous-formulaire, lequel contient un contrôle Onglets ?

  4. bsalim dit :

    Bonjour
    Pourrais-tu stp m’expliquer comment référencier en VBA un champs se trouvant dans un Onglet d’un sous formulaire ?
    Merci

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *