Affichage des articles dont le libellé est Excel -Userform. Afficher tous les articles
Affichage des articles dont le libellé est Excel -Userform. Afficher tous les articles

mardi 12 janvier 2010

Afficher un choix dans un Userform Excel

Dans cet exemple, Deux choix sont proposés :
  1. Ouverture d'un classeur en lecteur seul
  2. Ouverture de la fenêtre Ouvrir
Etape 1 : Création du Userform
  1. Ouvrez un nouveau Classeur Excel
  2. Sélectionnez le Menu Outil Macro Visual basic Editor [ou appuyez sur les touches CTRL + F11]
  3. Sélectionnez le Menu Affichage Boîte à outils Contrôles
    [Afin d'avoir les outils nécessaires à la constitution de notre Userform]
  4. Sélectionnez le Menu Insertion Userform [Dès lors, une Userform vierge s'affiche - Cette Userform est est nommée Userform1 défaut] Création des zones de choix :
  5. Cliquez sur l'outil Bouton d'option


  6. Dessinez les zones d'options


    Création du bouton Validation de la saisie :

  7. Cliquez sur l'outil Bouton de commande


  8. Dessinez votre bouton
  9. Cliquez-droit sur le bouton sélectionnez l'option Propriétés
  10. Tapez le Libellé du bouton dans la zone Caption [Dans notre exemple : Bt_Valider]
  11. Double-cliquez sur le bouton
  12. Saisissez le code suivant :
    Private Sub CommandButton1_Click()
      If OptionButton1.Value = True Then
         Workbooks.Open "c:\ASTUCES\test.xls", , True
      Else
          If OptionButton2.Value = True Then
          Application.Dialogs(xlDialogOpen).Show
          End If
      End If
    End Sub
    
Etape 2 : Tapez le code VBA suivant sur le classeur concerné ThisWorkBook
Private Sub Workbook_Open()
 Load UserForm1
 UserForm1.Show
End Sub
Dès lors, à l'ouverture du Classeur, le Userform s'affiche

Afficher un userform lors de la sélection d'une cellule

Etape 1 : Création du Userform
  1. Ouvrez un nouveau Classeur Excel
  2. Sélectionnez le Menu Outil Macro Visual basic Editor [ou appuyez sur les touches CTRL + F11]
  3. Sélectionnez le Menu Affichage Boîte à outils [Afin d'avoir les outils nécessaires à la constitution de notre Userform]
  4. Sélectionnez le Menu Insertion Userform [Dès lors, une Userform vierge s'affiche - Cette Userform est est nommée Userform1 défaut] Création d'une zone de saisie :
  5. Cliquez sur l'outil Zone de texte


  6. Dessinez votre zone de texte


Etape 2 : Tapez le code VBA suivant sur la feuille concernée

    Dans cet exemple : le UserForm1 s'affichera dès la sélection de la cellule E15
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
       If Not Intersect(Target, Range("E15")) Is Nothing Then
          UserForm1.Show
       End If
    End Sub
    
    
Pour afficher le userform lors de la sélection de la cellule E15 ou C3 :

     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      
        If Target.Address = "$E$15" Or Target.Address = "$C$3" Then
           UserForm1.Show
        Else
           UserForm1.Hide
        End If
    End Sub
    
A SAVOIR : Afin de ne pas cliquer sur la croix pour fermer le formulaire à chaque passage, mettre la propriété Showmodal sur False

Créer une liste déroulante dans un userform

  1. Ouvrez un nouveau Classeur Excel
  2. Sélectionnez le Menu Outil Macro Visual basic Editor [ou appuyez sur les touches CTRL + F11]
  3. Sélectionnez le Menu Affichage Boîte à outils [Afin d'avoir les outils nécessaires à la constitution de notre Userform]
  4. Sélectionnez le Menu Insertion Userform [Dès lors, une Userform vierge s'affiche - Cette Userform est est nommée Userform1 défaut]
  5. Cliquez sur l'outil Zone de liste modifiable


  6. Dessinez votre zone de liste déroulante


  7. Cliquez-droit sur le bouton sélectionnez l'option Propriétés
  8. Tapez les références de la feuille et des cellules concernées [Dans notre exemple : Feuil3!A1:A10]


  9. Double-cliquez sur la liste déroulante saisissez le code suivant :
    [A1] = UserForm1.ComboBox1
    
    A NOTER : Pour attribuer un Valeur par défaut sur une liste délourante, renseignez le champ Value par la valeur par défaut souhaitée


Autre solution : Initialiser une liste de choix dès l'ouverture du Userform
  1. Cliquez-droit sur le Userform concerné Tapez le code suivant :
    Private Sub UserForm_Initialize()
    
      ComboBox1.ColumnCount = 1
      ComboBox1.List() = Array("", "Pommes", "Poires", "Bananes")
    
    End Sub
Autre solution : Initialiser une liste de choix dès l'ouverture du Userform avec une liste issue d'une feuille Excel
  1. Créez votre liste dans une Feuille Excel
  2. Sélectionnez le Menu Insertion Nom Définir
  3. Attribuez un nom à cette liste
  4. Dessinez votre zone de liste déroulante sur le Userform concerné
  5. Double-cliquez sur la liste déroulante Entrez le code suivant
    Private Sub UserForm_Initialize()
    ComboBox1.RowSource = ("NomdelaListe")
    End Sub
    
Autre solution : Inserer les cellules A1:A10 dès l'ouverture du Userform dans un combobox
  1. Créez votre liste dans une Feuille Excel dans les cellules A1 à A10
  2. Dessinez votre zone de liste déroulante sur le Userform concerné
  3. Double-cliquez sur la liste déroulante Entrez le code suivant
    Private Sub UserForm_Initialize()
    Dim i
        For i = 1 To 10
            ComboBox1.AddItem Sheets("Feuil1").Cells(i, 1)
        Next
    End Sub
    
  4. A Savoir : Pour récupérer la valeur choisie dans la cellule A1 : [A1] = ComboBox1.Value ou [A1] = ComboBox1
Autre solution : Initialiser les données de la liste déroulante directment via VBA
Private Sub UserForm_initialize()

  With ComboBox1
     .AddItem "Pommes"
     .AddItem "Poires"
     .AddItem "Bananes"
     .AddItem "Fraises"
     .AddItem "Oranges"
 End With

End Sub
Autre solution : Initialiser les données de la liste déroulante directment via VBA en prenant une colonne précise jusqu'à la dernière cellule non vide
Set FL = ThisWorkbook.Sheets("Feuil1")  'Identification de la feuille concernée
Ligne = FLRange("D65536").End(xlUp).Row  Positionnement de la dernière cellule à récupérer


For i = 7 To Ligne            'Démarre à la ligne 7 jusqu'à la ligne définit dans la variable Ligne
    With Me.ComboBox1          
         .AddItem FL.Range("H" & i) 
    End With
Next i                    

End Sub

Créer une liste via un userform sous Excel 2003

Création et paramétrage du formulaire de saisie
  1. Ouvrez un nouveau Classeur Excel
  2. Sélectionnez le Menu Outil Macro Visual basic Editor [ou appuyez sur les touches CTRL + F11]
  3. Sélectionnez le Menu Affichage Barre d'outils Boîte à outils Contrôles [Afin d'avoir les outils nécessaires à la constitution de notre Userform]
  4. Sélectionnez le Menu Insertion Userform [Dès lors, une Userform vierge s'affiche - Cette Userform est est nommée Userform1 défaut] Création d'une zone de saisie :
  5. Cliquez sur l'outil Zone de texte


  6. Dessinez votre zone de texte


    Création du bouton Validation de la saisie :

  7. Cliquez sur l'outil Bouton de commande


  8. Dessinez votre bouton
  9. Cliquez-droit sur le bouton sélectionnez l'option Propriétés
  10. Tapez le nom du bouton dans la zone (Name) [Dans notre exemple : Bt_Valider]
  11. Tapez le Libellé du bouton dans la zone Caption [Dans notre exemple : Validation]


  12. Double-cliquez sur le bouton
  13. Saissez le code suivant :
    Private Sub Bt_Valider_Click()
    InsMot = Worksheets("Feuil1").Range("A65536").End(xlUp).Row + 1
    Worksheets("Feuil1").Range("A" & InsMot).Value = UserForm1.TextBox1.Value
    UserForm1.TextBox1.Value = ""
    End Sub
    
    Afficher le formulaire sur la feuille de calcul concerné
  14. Se positionnez sur la cellule de la feuille de calcul concernée
  15. Sélectionnez le Menu Affichage Barre d'outils Formulaire
  16. Sélectionnez l'outil Bouton [Afin de créer le bouton nécessaire à l'affichage du formulaire]
  17. Dessinez le bouton Affecter lui une macro suivante :
    Sub Affiche_Formulaire()
        Load UserForm1
        UserForm1.Show
    End sub
    

jeudi 7 août 2008

Excel - Userform

Les vacances sont désormais terminées
Voici pour la reprise une astuce Excel sur les Userform

Forcer la saisie en majuscule sur un TextBox
http://mvergriete.club.fr/EXCEL/476excelvba.html