IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

pijaku

L'Objet DialogSheet, une alternative aux Userforms - Partie 2

Noter ce billet
par , 02/10/2018 à 09h45 (991 Affichages)
________________________________________________________

Ce billet est la suite de cette première partie.

Nous avions, dans cette première partie, fini de remplir notre liste de liste modifiable fixe.
Réglons notre zone d'édition :

Clic droit / format de contrôle sélectionner Entier :
Ceci, juste afin de tester l'une des possibilités (nombreuses) offertes par l'Objet DialogSheet et les contrôles de formulaire (cf ci-dessous).
Nom : 10 Contrôle Textbox.png
Affichages : 1454
Taille : 30,8 Ko



Voilà, nous en avons terminé avec la préparation.
Ne reste que la partie VBA et code de cette boite de dialogue.
Faisons donc réagir nos boutons...

  1. Clic droit sur le bouton OK/Affecter une macro :
    Nom : 11 Bouton OK Affecter macro.png
Affichages : 207
Taille : 13,6 Ko

  2. Changer (ou pas) le nom de la macro :
    Nom : 12 renommer macro.png
Affichages : 207
Taille : 29,1 Ko

  3. Dans l'éditeur VBA :
    Nom : 13 Macro.png
Affichages : 187
Taille : 70,2 Ko

  4. Placez ce code :
    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub Bouton_Ok_Click()
     Dim Fruit As String
     
       With Sheets("Dialogue1")
          With .Shapes("Zone combinée 4").ControlFormat
             If .ListIndex > 0 Then
                Fruit = .List(.ListIndex)
             End If
          End With
          With .Shapes("Zone d'édition 5")
             If .TextFrame.Characters.Count > 0 Then
                MsgBox "Commander d'urgence : " & .TextFrame.Characters.Text & " " & Fruit
             End If
          End With
       End With
    End Sub

Vous disposez maintenant d'une boîte de dialogue fonctionnelle.

Pour terminer, nous allons masquer un peu tout cela, juste pour l'esthétique de votre classeur.
  1. Masquer la feuille : clic droit/Masquer :
    Nom : 14 Masquer.png
Affichages : 214
Taille : 11,2 Ko
  2. Insérer un bouton dans la Feuil1 (par exemple)
  3. Affecter une macro à ce bouton :
    Nom : 15 Bouton Commande.png
Affichages : 212
Taille : 27,8 Ko
  4. Dans l'éditeur VBA placer ce code :
    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Bouton_Commande_Click()
       With DialogSheets("Dialogue1")
          .Shapes("Zone combinée 4").ControlFormat.ListIndex = 0
          .Shapes("Zone d'édition 5").TextFrame.Characters.Text = ""
          .Show
       End With
    End Sub


Ne nous reste plus qu'à tester.
  1. Clic sur le bouton :
    Nom : 16 Essai.png
Affichages : 218
Taille : 19,4 Ko

  2. Choisir une valeur dans la zone de liste et saisir n'importe quoi (sauf un entier) dans la zone d'édition :
    Nom : 17 mauvaise saisie.png
Affichages : 231
Taille : 22,6 Ko
    Notre MsgBox s'affiche bien.
  3. Mais un message d'Excel apparaît :
    Nom : 18 Message Excel Valeur incorrecte.png
Affichages : 332
Taille : 22,3 Ko

  4. Et nous empêche de quitter :
    Nom : 19 retour boite de dialogue AZERTY select.png
Affichages : 290
Taille : 14,0 Ko


Cette alternative aux Userforms n'est pas évidente à coder. Nous avons, en effet, davantage l'habitude des contrôles ActiveX.
Mais, une fois maîtrisée, cela permet de se passer de moultes lignes de code rendues inutiles...

A lire ...
A lire également.

La création de telles boîtes peut-être entièrement réalisée en VBA : exemple

A++

Envoyer le billet « L'Objet DialogSheet, une alternative aux Userforms - Partie 2 » dans le blog Viadeo Envoyer le billet « L'Objet DialogSheet, une alternative aux Userforms - Partie 2 » dans le blog Twitter Envoyer le billet « L'Objet DialogSheet, une alternative aux Userforms - Partie 2 » dans le blog Google Envoyer le billet « L'Objet DialogSheet, une alternative aux Userforms - Partie 2 » dans le blog Facebook Envoyer le billet « L'Objet DialogSheet, une alternative aux Userforms - Partie 2 » dans le blog Digg Envoyer le billet « L'Objet DialogSheet, une alternative aux Userforms - Partie 2 » dans le blog Delicious Envoyer le billet « L'Objet DialogSheet, une alternative aux Userforms - Partie 2 » dans le blog MySpace Envoyer le billet « L'Objet DialogSheet, une alternative aux Userforms - Partie 2 » dans le blog Yahoo

Mis à jour 10/11/2018 à 15h46 par LittleWhite (Coloration du code)

Tags: excel, vba excel
Catégories
Sans catégorie

Commentaires