Liste de  cours vba

Formation générale en pdf de VBA


Télécharger


Support de Formation générale de VBA pour débutant

Comportement des UserForm : écriture du code associé

  • A partir de la définition de l'UserForm dans VBE,  on accède à une interface de définition du code via clic droit sur le UserForm - code 
  • OU BIEN : en cliquant deux fois sur l'un des widgets qui a été défini : dans ce cas, apparaît une procédure possible pour le widget.
  • La forme des procédures sur la page associée au UserForm :
      • nomObjet_evenementSurObjet(). Quelques exemples :


  • Private Sub Frame1_Click()
  • Private Sub CheckBox1_Click()
  • Private Sub Label1_Click()
  • Ces procédures sont déclarées private. Elles sont activées lors des actions de l'utilisateur sur l'interface.
      • PROGRAMMATION EVENEMENTIELLE
  • Comportement des UserForm : premiers tests

    • On définit un UserForm avec un label qui sera automatiquement nommé Label1 du UserForm et une zone de texte qui sera automatiquement définie comme textBox1_change. En double cliquant les objets, on fait apparaître des procédures liées :
        • Private Sub Label1_Click()
        • MsgBox "Label1"
        • End Sub
        • Private Sub textBox1_change()
        • MsgBox "textBox1"
        • End Sub
    • Il y a réaction et activation du code dès que l'utilisateur rentre une valeur dans le champ texte ou dès qu'il clique sur le label.

    Private Sub Label1_Click()

    MsgBox "Label1"

    End Sub

    Private Sub textBox1_change()

    MsgBox "textBox1"

    End Sub

    • On définit un UserForm avec un label qui sera automatiquement nommé Label1 du UserForm et une zone de texte qui sera automatiquement définie comme textBox1_change. En double cliquant les objets, on fait apparaître des procédures liées :
    • Il y a réaction et activation du code dès que l'utilisateur rentre une valeur dans le champ texte ou dès qu'il clique sur le label.
    • Pour chaque élément rajouté au widget : il dispose de propriétés et de procédures / fonctions associées. Les voir en cours de frappe pour Label1 dans l'exemple précédent par exemple (aide à la saisie de VBE).
    • Pour chaque clic sur le label, on peut provoquer un changement de couleur en utilisant la propriété BackColor de Label1:

    Private Sub Label1_Click()

    Randomize

    Label1.BackColor = RGB(255 * Rnd, 255 * Rnd, 255 * Rnd)

    End Sub

    Le userForm est une hiérarchie d'objets (2)

    • Conséquences pour l'accès aux variables et aux procédures/fonctions
    • Un exemple :

    Sub modifUF()

    UserForm1.Label1.BackColor = RGB(0, 0, 255)

    UserForm1.Show

    End Sub

    • Cette instruction peut être spécifiée sur la page de code associée au userForm ou sur un module autre

    Manipulation des UserForms via le code (1)

    L'exécution des codes suivants nécessite l'activation de plusieurs librairies : Outils-References et activation de :

    • Microsoft Visual Basic Édition Applications,
    • Microsoft Forms 2.0 (le numéro ou le nom des bibliothèques peut être légérement différent en fonction de la version)

    Evolution des UserForms

    • Le fait de saisir F5 lorsque le UserForm est selectionné ou de lancer une procédure du type :

    Private Sub CommandButton1_Click()

    UserForm1.Show

    End Sub

    conduisent à l'affichage du UserForm comme interface, bloquant l'accès aux menus standard ou empechant de saisir ou modifier du code dans l'interface VBE. L'userForm est dit modal.

    Support de Formation générale de VBA pour débutant

    Table des matières :                   

    1) Création et dessins des UserForms

    2) Comportement des UserForms

    • Affichage des UserForms
    • Comportement des UserForms : écriture du code associé
    • Intégration dans la hiérarchie et manipulation des widgets

    3) Boîte de dialogue : d'autres widgets mais pré-implémentés

    4) Programmation évenementielle

    • Aspects théoriques
    • Exemples d'implémentation
    • Développement de quelques éléments de la hiérarchie

    Support de Formation générale de VBA pour débutant

    <

    339