View
386
Download
0
Category
Preview:
Citation preview
Prof. Adad Mohamed Chérif
2017
Introduction Ce convertisseur sert à convertir le puce en cm et les pixels en cm et vis-versa . Ce convertisseur est conçu sur la base du langage VBA (Visual Basic ) sous Excel .
Revenons au programme proprement ditEn lançant le programme à partir du bureau, on obtient le traitement de la feuille 1 d'Excel .
Appuyons sur le bouton jaune pour accéder au
convertisseur
Affichage en plein écran
On obtient donc le formulaire suivant (userform)
Soit un exemple
- 1ère opération On veut convertir 20 pouces en cm. On doit appuyer sur le bouton « Pouce/Cm », on obtient 20 pouces=50,92 cm .Même chose pour Cm/Pouce
- 2ème opération On veut convertir 100 pouces en cmOn doit appuyer sur le bouton « Pixel/Cm », on obtient 100 pixels=2,646 cmMême chose pour Pixel/Cm
Pour faire une autre opération, on appuie sur le bouton « Une autre opération »
Pour quitter l’application, on appuie sur le bouton « Quitter l’application »
Pour mettre en œuvre ce convertisseur, il convientde réaliser deux étapes importantes :
• La conception du formulaire (Userform en anglais) dans l'éditeur de macro.
• La conception du programme VBA (visual basic)
D’abord , il faut d’abord lancer l’Excel puis sélectionner:
1. Développeur2. Visual Basic3. Affichage4. Explorateur de projets et
fenêtre de propriétés .
1- La conception de l’userform
On commence par la création du formulaire (Userform)
Ajouter l’userform:
Le formulaire apparait Boite à outils apparait automatique , sinon on
appuie sur Menu Affichage / Boîte à outils.
L’ userForm sert à créer des boîtes de dialogue personnalisées. Il permet de réaliser des interfaces utilisateurs simples pour la saisie
Nous sommes dans l’éditeur de macro
Le formulaire: userform
Boite à outils contient un certain nombre de contrôles .
Le userform1 apparait dans la fenêtre « Explorateur de projets »
Les contrôles standards : Label (Intitulé)
CheckBox (case à cocher)OptionButton (Bouton option)CommandButton (Bouton de commande )TextBox (Zone de texte)ComboBox (Zone de liste modifiable)ListBox (Zone de liste )ScrollBar (Barre de défilement)SpinButton (Toupie)MultiPage (Multiplage)Image (Image)Frame (Cadre)RefEdit (RefEdit)
NB: Il est plus pratique d’utiliser les termes en anglais car le langage VBA est aussi en anglais
Label
CommandButton
TextBox
Frame
Image
ComboBox
ListBox
ScrollBarSpinButton
MultiPage
On peut attribuer un nom précis à l’userform . Il suffit , dans la fenêtre « Propriété », écrire dans la proprité champ « Caption » Formulaire01
Caption spécifie le texte affiché dans la barre de titre. D’une
manière générale , la propriété
caption permet à l’utilisateur de
modifier le titre du formulaire,
des boutons, des labels etc.
Le userform de notre cas doit avoir cette forme. Passant maintenant à sa conception.
Agrandissant le formulaire en le glissant la souris vers le bas et à droite le sommet de l’angle B
A partir de B , il est possible d’agrandir l’userform à l’aide de la souris
Il est possible de changer la couleur de l’userform : Fenêtre de propriété ---- Backcolor –palette (Orange)
Couleur orange de l’userform
Le textBox est le champ où on saisit les donnée alphanumériques ,
Pour qu'il apparaisse, on appuie sur le contrôle TextBoxOn peut ajuster ses dimensions selon le cas .
Te terme « TextBox » apparait dans la fenêtre des propriétés.Il est possible de le modifier , il suffit de pointer le curseur sur lui champ.
Dans label1 (intitulé) , on saisie un nom qui qualifie le textBox1: ici on a écrit« Saisir un nom au dessus ». On peut changer le style, la taille et la police .Pourse faire, dans la « fenêtre de propriété » , allez à « Font » .
TextBox1Label1
On ajoute aussi sur le userform, le contrôle « Bouton » pour exécuter le programme. On va renommer le bouton , exemple: Pouce/Cm .Dans « Caption » on écrit « Pouce/Cm »
1
2
Pour mettre le titre « Convertisseur » dans le « Cadre »
Pour choisir la couleur bleue (ForColor) et police 12 (Font)
On continue à mettre des informations (Pouce en Cm/Cm en Pouce , Cm en Pixel/ Pixel en Cm) à l’intérieur du cadre.
Label1 --- Caption ( Pouce en Cm/Cm en Pouce )--- Caption ( Label2---Caption = Cm en Pixel/ Pixel en Cm) Couleur: ForeColor
Le choix de la couleur bleue
Maintenant vous serez capable de réaliser aisément tout l’userform.
Après avoir terminer la réalisation complète de l’userform sous la forme suivante,
il faut le sauvegarder sous fichier Excel « XLSM » et en prenant en charge la « MACRO »
RécapitulatifNous avons• 4 TextBox 7 Boutons 7 Labels 1 Cadre dans lequel il y a 2 autres labels.
Boutons Boutons
TextBox TextBox
Cadre
Labels Labels
Passons à la 2ème étape, le programme VBA lui même .
Principe de fonctionnement
Ce programme est constitué de 7 subroutines (Procédures):
1ère subroutine
Conversion Pouce en Cm
2ème subroutine
Conversion Cm en Pouce
3ème subroutine
Convertir Pixel en cm
4ème subroutine
Convertir cm en Pixel
5ème subroutine
Une autre opération: remise à zéro
6ème subroutine
Une autre opération: une Remise à zéro
7ème subroutine
Quitter userform
EN PLUS Une autre subroutine pour
accéder directement à l'userform.
Subroutine « Affichage en plein écran » dès l'accès au fichier.
2- Réalisation du programme VBA (Visual Basic)
Durant la réalisation du programme proprement dit , il est utile de rappeler que qu’il est nécessaire de faire un va-et-vient permanant entre l’userform et l’éditeur de des macros (programmes ou procédures) .
Appuyez sur Pouce/Cm , c’est le CommandButton6
'1ère subroutine'***************
'Conversion Pouce en Cm, agir sur le bouton CommandButton6Private Sub CommandButton6_Click()Pouce = TextBox3 'Là où on saisit les nombresIf Not IsNumeric(TextBox3.Text) Then
MsgBox " SVP, Saisissez un nombre ", vbOnly + vbInformation, "Input Error" 'vbOnly " ok ", vbInformation :un signal sonoreExit Sub
ElseIf pouce <> "" Then
cm = pouce * 2.546TextBox4 = cmElse
End IfEnd IfEnd Sub
On va expliquer uniquement la 1ère subroutine ou (procédure) car la 2ème, la3ème et la 4ème sont similaires à la 1ère.
La procédure commence parl'instruction Private Sub et seterminent par l'instruction EndSub. Le code VBA doit être écrit
entre Sub et End Sub. Lesparenthèses sont obligatoires .
On saisie le nombre en Poucedans TextBox3
SI la valeur entre parenthèses (le
nombre saisi) n’est pas numérique(donc si condition vraie) alorson exécute les instructionsplacées après THEN:
« SVP, Saisissez un nombre » apparaitdans la boite de dialogue de MsgBoxavec un signal sonore .
VbOnly = boite de dialgue avec OK etvbInformation = signal sonore
« Input Error » message apparait dans letitre de la boite de dialogue.
ExitSub fin de la procédure
Else (si la valeur entre parenthèsesest un nombre) on continue laprocédure .
'Conversion Pouce en Cm, agir sur le bouton CommandButton6Private Sub CommandButton6_Click()Pouce = TextBox3 'Là où on saisit les nombres
If Not IsNumeric(TextBox3.Text) ThenMsgBox " SVP, Saisissez un nombre ", vbOnly +
vbInformation, "Input Error" 'vbOnly " ok ", vbInformation :un signal sonore
Exit SubElse
If pouce <> "" Thencm = pouce * 2.546TextBox4 = cmElse
End IfEnd If
End Sub
Une 2ème condition (If……Then) : si un nombreest saisi , on procède à la conversion du pouceen cm et on place le résultat dans TexteBox4. sirien n’a été saisi . C’est la fin du programme EndSub
Saisie d’une chaine de caractères (string) et non un nombre (integer) dans TextBox3
Une boite dialogue précisant qu’il y a erreur de saisie
Erreurs de saisie
Si aucun nombre est saisi dans le Textbox 3 ou TextBox1 et on appuie sur le bouton Pouce /cm ou Cm/Pouce et aussi Pixel/Cmou Cm/Pixel , la boite de dialogue nous demande de saisir un nombre. Avec « Input error » dans le titre de la boite de dialogue.
TextBox1TextBox3
'5ème subroutine'***************' "Une autre opération= Bouton CommandButton4 " qui est une Remise à zéroPrivate Sub CommandButton4_Click()TextBox3 = ""TextBox4 = ""TextBox3.SetFocus 'Positionnement du curseur dans TextBox3End Sub
'6ème subroutine'***************'"Une autre opération= Bouton CommandButton5 " qui aussi une Remise à zéroPrivate Sub CommandButton5_Click()TextBox1 = ""TextBox2 = ""TextBox1.SetFocus 'Positionnement du curseur dans TextBox1End Sub
'7ème subroutine'***************' Quitter l'userformPrivate Sub CommandButton3_Click()Unload Me 'Me = userformEnd Sub
La 5ème subroutine et 6ème
subroutine sont des procédures « de remise à zéro ».Sur le userform il y a deux boutons de remise à zéro appelés « Une autre opération » En termes de VBA, ces boutons sont CommandButton4 et CommandButton5
Prenons le cas de la 5ème subroutine. En appuyant sur CommandButton4TextBox3 s et TextBox4 se vident grâce à
la présence de la chaîne ""Ensuite, le curseur est positionné dans
TextBox3 automatiquement grâce à la propriété SetFocus
Pour quitter l’userform , on appuie sur le bouton « Quitter l’application » , en vbac’est le CommandButton3 qui est validé . Unload Me signifie quitter l’userform .
Une autre subroutine pour accéder directement à l'userform , située dansl'éditeur de Code de Feuil1.
Private Sub cmdaccès_Click()UserForm1.ShowEnd Sub
Appuyez sur ce bouton dans la feuille 1 pour accéder directement à l’userform
l'éditeur de Code de Feuil1
Pour le bouton «Appuyer pour accéder à l’userform »
D’abord exécuter l’userform
Puis dans la barre de menu , sélectionnez « Développeur »
Activez « Le mode de création »
Appuyez sur « Insérer des contrôles »
on choisit le contrôle bouton Puis on crée le bouton
« commandButton1 »Renommer le
« commandbutton1 » en «Appuyer pour accéder à l’userform »
Renommer le bouton commandbutton1
Une fois le commandbutton1 est renommé, on désactive le mode de création. En appuyant sur ce bouton , appelé désormais, «Appuyer pour accéder à l’userform » , l’éditeur de codes apparait où on saisie le code correspondant . On renomme « Commandbutton1 » en cmdaccès en se référant au champ « Name »
Signifie , l’userform apparait dès qu’on appuie sur ce bouton qui se trouve dans la feuille1.
Un Code pour afficher automatiquement "en plein écran" dès l'accès à notre fichier Excel , il est dans l’éditeur de code de ThisWorkbook.
Private Sub Workbook_Activate()Application.DisplayFullScreen = TrueEnd Sub
Private Sub Workbook_Deactivate()Application.DisplayFullScreen = FalseEnd Sub
ThisWorkbook.
l’éditeur de code de ThisWorkbook où on place le code VBA « Affichage en plein écran »
Université d’Oum El BouaghiFaculté des sciences de la terre et de l’architecture
Recommended