Cours VBA : UserForm

Pour ajouter un UserForm, procédez de la même manière que pour un nouveau module :

inserer userform png


La fenêtre de l'UserForm ainsi que celle de la Boîte à outils apparaissent :

usf2 userform

Si la fenêtre des propriétés n'est pas présente, affichez-la (F4) et commencez par modifier le nom de l'UserForm (pour mieux s'y retrouver par la suite) :

proprietes userform

Titre de l'UserForm

Pour modifier le titre de l'UserForm, modifiez sa propriété Caption :

modifier titre userform

Dimensions de l'UserForm

Pour modifier les dimensions de l'UserForm, modifiez ses propriétés Width et Height ou redimensionnez l'UserForm à la main :

redimensionner userform
Les propriétés d'un UserForm peuvent également être modifiées à partir d'un code VBA.

Les événements de l'UserForm

Tout comme le classeur ou ses feuilles, l'UserForm a ses propres événements.

Commencez par afficher le code de l'UserForm :

vba userform code

Cliquez ensuite sur UserForm :

evenements userform

Et sélectionnez l'événement UserForm_Initialize qui se déclenche au lancement de l'UserForm :

Private Sub UserForm_Initialize()

End Sub

Pour prendre un exemple, nous allons créer deux événements. Le premier pour définir les dimensions initiales de l'UserForm et le second pour augmenter ses dimensions de 50 par clic.

Entrez le nom de l'UserForm suivi d'un . :

height userform

La propriété Height est la hauteur et Width la largeur :

Private Sub UserForm_Initialize()

    UserForm_Exemple.Height = 250
    UserForm_Exemple.Width = 250

End Sub

Pour simplifier le code, nous pouvons remplacer le nom de l'UserForm par Me (puisque ce code est placé dans l'UserForm sur lequel on souhaite agir) :

Private Sub UserForm_Initialize()

    Me.Height = 250
    Me.Width = 250

End Sub

Le second événement est déclenché au clic sur l'UserForm :

Private Sub UserForm_Initialize()

    Me.Height = 250
    Me.Width = 250

End Sub

Private Sub UserForm_Click()

    Me.Height = Me.Height + 50
    Me.Width = Me.Width + 50

End Sub

Aperçu de l'UserForm (F5) :

fenetre userform

Lancer un UserForm

Pour lancer un UserForm à partir d'une procédure, utilisez Show :

Sub lancerUserform()

    UserForm_Exemple.Show

End Sub