Notice bibliographique pour les doctorants chercheurs en VBA sous Excel
1. Université d’Oum El Bouaghi, Algérie
Faculté des sciences de la terre et de l’architecture
Prof. Adad Mohamed ChérifDomaines d’intérêt:
Architecture, urbanisme, VBA,
SPSS et électronique pratique.
2017
2. Notice bibliographique
Elle est destinée pour sauvegarder et repérer les
références bibliographiques d’une recherche (thèse ou
article). Il est ainsi possible d’accéder à ces données qui
ont servi à développer la problématique d’une manière
très rapide, sans risquer de les perdre.
3. C’est le formulaire qui va jouer d’interface ente le chercheur et la base de données représentée
par les différents types de références . Quatre types de références :
Revues
Livres ou ouvrages
Sitologie
Thèses et mémoires
4. Pour réaliser ce formulaire, appelé en anglais userform, on fait appel au langage de
programmation le VBA (Visual Basic). Cependant, pour atteindre cet objectif, le VBA est un
prérequis nécessaire.
Comme on peut le voir sur le formulaire 4 types de références ( Revue, livre, Site
Internet, Thèse-Mémoire) dont chacune est saisie indépendamment de l’autre.
On va se concentrer sur l’explication d’un seul type de référence, la revue. Les autres sont
conçus selon le même principe .
Contrôles
pour
« revue »
Zone de
saisie
pour les
revues
Compteur
5. Passons à l’explication de la zone de saisie de la référence « revue » et ses contrôles
Zone de recherche par auteur .
L’auteur est la référence par laquelle
on obtient toutes les données
relatives à la revue concernées,
On valide les
données
saisie dans le
formulaire
Une fois les
données saisies,
il est possible de
les voir dans la
base qui n’est
autre que la
feuille excel
Une fois les
données saisies, il
est possible de les
voir dans le
formulaire.
Il est possible
d’effacer le
contenu de la
base contenue
dans les feuilles
excel
Les zones de saisie des références
de la revue en question
Le nombre
de revues
déjà dans la
base
6. Base de données dans la Feuill1 « Données_revue ». Toutes les données saisies dans
l’userform sont sauvegardées ici .
Dans la ligne 1 , sont indiquées les données de la revue (Nom de l’auteur, titre, nom de la
revue etc…..) . Aussi, dans la cellule H2 figure le nombre de références .
La feuille réservée pour
les données de la revue
Bases des données des
autres types de références
On accède directement au formulaire par le
biais de ce bouton « Ouvrir le formulaire »
Compteur
Feuille où on stocke les
données pour impression
8. TextBox1
TextBox2
TextBox3
TetBox4
TextBox5
TextBox6
TextBox7
ComBobox 1
Valider
Voir les données
TextBox28 2ème étape: confection du
formulaire- label, textbox,
combobox1,
commandbutton, la couleur.
On fait toujours référence à
la fenêtre « Propriétés »
pour le choix de la couleur
de fond du formulaire, des
labels, des textbox , de la
taille des caractères et leurs
couleurs etc…
3ème étape: apparence finale
10. A l’aide du Bouton « Ouvrir le formulaire » on accède
directement au formulaire à partir des feuilles.
Il faut mettre cette procédure dans un « module »
Private Sub ouvrir()
‘ Accéder directement au formulaire
UserForm1.Show 0 ‘Userform1 est le formulaire
End Sub
On peut accéder directement au formulaire sans passer par Excel ,
par exemple à partir du bureau. Pour se faire dans le
ThisWorkbook , on crit ce code.
Private Sub Workbook_Open()
UserForm1.Show 0
End Sub
Aussi……..
11. ' BOUTON VALIDER "DONNÉES_REVUE"
Private sub commandbutton2_click()
Dim derligne as integer
If msgbox ("confirmez-vous l'ajout des données?", vbyesno, "confirmation") = vbyes then
derligne = worksheets ("données_revue").range(« A1000").end(xlup).row + 1
‘ Derligne : dernière ligne inoccupée de la colonne dans la feuil de données...
'...ligne après une ligne en remontant de 1000 à la dernière ligne non vide et en ajoutant une ligne
' Textbox1 destiné à héberger le nom et le prénom de l’auteur .
Worksheets ("données_revue").cells(derligne, 1) = textbox1.value ‘nom et prénom
if worksheets ("données_revue").cells(derligne, 1) = "" then
msgbox " svp, veuillez saisir le nom et prénom de l'auteur", vbok + vbcritical: exit sub
else
Worksheets ("données_revue").cells(derligne, 2) = textbox2.value ‘ titre
Worksheets ("données_revue").cells(derligne, 3) = textbox3.value ‘ titre de la revue
Worksheets ("données_revue").cells(derligne, 4) = textbox4.value ‘ année
Worksheets ("données_revue").cells(derligne, 5) = textbox5.value ‘ page
Worksheets ("données_revue").cells(derligne, 6) = textbox6.value ‘ mots clefs
Worksheets ("données_revue").cells(derligne, 7) = textbox7.value ‘ cote de rangement
Textbox28.value = derligne - 1 ' indique le nombre de références dans la feuille "données_revue"
Worksheets("données_revue").cells(2, 8) = textbox28.value
End if
End if
'effacer les données après appuyer commandbutton2
Textbox1.value = "" 'nom et prénom
Textbox2.value = "" 'titre
Textbox3.value = "" 'titre de la revue
Textbox4.value = "" 'année"
Textbox5.value = "" 'pages
Textbox6.value = "" 'mots clefs
Textbox7.value = "" 'cote de rangement
End sub
Les données de l’article sont
saisies dans les textBox puis
transmises vers les cellules (Cells)
de la feuille (Worksheets)
« données_revue » après
validation. « Bouton valider »
12. 'Bouton « Voir les données" , c’est le transfert des données qui correspondent à la référence
présentée au ComboBox1, des cellules de la feuille « données_revue" vers les textbox.
Private Sub CommandButton1_Click()
' Commandbutton1 est la touche « Voir les données "
'chercher les données d'un nom saisi qui apparait dans comboBox1 des cellules de la feuille "données_revue" vers les TextBox
'chaque donnée est saisie de la cells puis apparait dans chaque Textbox
'la liste déroulante montre toutes les données de A1 à A1000
'cliquer sur combobox1 puis sélectionner les données dans la colonne A (nom et prénom)puis écrire "données!A1:A1000" dans
' "rowsource" dans la fenêtre "Propriétés" .
Dim no_ligne As Integer
no_ligne = ComboBox1.ListIndex + 1 'compte le nombre de lignes occupées dans la colonne ‘A ‘, il varie entre 1 aux nbres de noms
dns le combobox1
If ComboBox1.Value = "" Then ‘si le combobox est vide alors il faut remplir le champ
MsgBox ("Veuillez remplir le champs de la recherche!")
Else
TextBox1.Value = Worksheets("données_revue").Cells(no_ligne, 1).Value 'nom et prénom
TextBox2.Value = Worksheets("données_revue").Cells(no_ligne, 2).Value 'Titre
TextBox3.Value = Worksheets("données_revue").Cells(no_ligne, 3).Value 'Titre de la revue
TextBox4.Value = Worksheets("données_revue").Cells(no_ligne, 4).Value 'Année
TextBox5.Value = Worksheets("données_revue").Cells(no_ligne, 5).Value 'Pages
TextBox6.Value = Worksheets("données_revue").Cells(no_ligne, 6).Value 'Mots clefs
TextBox7.Value = Worksheets("données_revue").Cells(no_ligne, 7).Value 'Cote de rangement
'données envoyées de la feuille1 données_revue à la feuille2 (Revue_impr) pour impression
Worksheets("revue_impr").Cells(9, 3) = Worksheets("données_revue").Cells(no_ligne, 1).Value ' nom et prénom
Worksheets("revue_impr").Cells(10, 3) = Worksheets("données_revue").Cells(no_ligne, 2).Value 'Titre
Worksheets("revue_impr").Cells(11, 3) = Worksheets("données_revue").Cells(no_ligne, 3).Value 'Titre de la revue
Worksheets("revue_impr").Cells(12, 3) = Worksheets("données_revue").Cells(no_ligne, 4).Value 'Année
Worksheets("revue_impr").Cells(13, 3) = Worksheets("données_revue").Cells(no_ligne, 5).Value 'Pages
Worksheets("revue_impr").Cells(14, 3) = Worksheets("données_revue").Cells(no_ligne, 6).Value 'Mots clefs
Worksheets("revue_impr").Cells(15, 3) = Worksheets("données_revue").Cells(no_ligne, 7).Value 'Cote de rangement
End If
End Sub
13. 'Bouton "Modifier" les données_ dans « données_revue » en cas d’erreur de saisie
Private Sub CommandButton4_Click()
Dim no_ligne As Integer
' Combobox: la recherche effectuée sur les noms
no_ligne = ComboBox1.ListIndex + 1 'compteur, la 1ère entrée commence par l'index 1 qui est le n° de ligne2
If ComboBox1.Value = "" Then
MsgBox ("Veuillez remplir le champs de la recherche!")
Else
Worksheets("données_revue").Cells(no_ligne, 1) = TextBox1.Value 'nom et prénom
Worksheets("données_revue").Cells(no_ligne, 2) = TextBox2.Value 'Titre
Worksheets("données_revue").Cells(no_ligne, 3) = TextBox3.Value 'Titre de la revue
Worksheets("données_revue").Cells(no_ligne, 4) = TextBox4.Value 'Année
Worksheets("données_revue").Cells(no_ligne, 5) = TextBox5.Value 'Page
Worksheets("données_revue").Cells(no_ligne, 6) = TextBox6.Value 'Mots clefs
Worksheets("données_revue").Cells(no_ligne, 7) = TextBox7.Value 'Cote d'arrangement
End If
‘Effacer les données après avoir appuyé sur commandButton2
TextBox1.Value = "" 'nom et prénom
TextBox2.Value = "" 'Titre
TextBox3.Value = "" 'Titre de la revue
TextBox4.Value = "" 'Année
TextBox5.Value = "" 'Pages
TextBox6.Value = "" 'Mots clefs
TextBox7.Value = "" 'Cote d'arrangement
End Sub
14. ‘ Effacer les données dans la feuille "données_revue " (Base de données)
Private Sub CommandButton32_Click()
Dim dr As Integer, i As Integer, j As Integer
If MsgBox("voulez-vous effacer toutes les références?", vbYesNo, "Confirmation") = vbYes Then
dr = Sheets("données_revue").Range("A1000").End(xlUp).Row + 1
For i = 2 To dr
For j = 1 To 7 ‘ 7 est le nombre de colonne
Worksheets("données_revue").Cells(i, j).Value = ""
Next j
Next i
End If
End Sub
15. 'Subroutine supprimant le contenu de la dernière série de
données de feuille "données_revue"
Private Sub Cmeffacer_Click()
dr = Sheets("données_revue").Range("A1000").End(xlUp).Row
‘ 7 est le nombre de colonnes dans ce cas
For j = 1 To 7
Worksheets("données").Cells(dr, j).Value = ""
Next j
End Sub
16. ' Aperçu avant impression de la « Données_revue » , le données sont
stocker provisoirement dans la feuille « Revue_impr »
Private Sub CommandButton8_Click()
Application.ScreenUpdating = False
UserForm1.Hide
Sheets("Revue_impr").PrintPreview
Application.ScreenUpdating = True
UserForm1.Show
End Sub
‘Impression des données de « Données_revue »
Private Sub CommandButton9_Click()
Sheets("Revue_impr").PrintOut ' impression directe
End Sub
18. ‘ 2-Procédure se met en fonction dès l’ouverture du code
Private Sub userform_initialize()
TextBox20.Value = Format(Date, "dd/mm/yyyy") 'date d'aujourd'hui
' Remplir comboBox5
With ComboBox5
.AddItem "Thèse"
.AddItem "Mémoire "
End With
TextBox28.Value = Worksheets("données_revue").Cells(2, 8)
TextBox29.Value = Worksheets("données_livre").Cells(2, 10)
TextBox30.Value = Worksheets("données_site_internet").Cells(2, 6)
TextBox31.Value = Worksheets("données_thèse_mémoire").Cells(2, 6)
End Sub
‘ 3- Masquer les classeurs et quitter l’application
Private Sub CommandButton3_Click()
UserForm1.Hide ‘ Cacher le formulaire
ActiveWorkbook.Save
Application.Quit ‘Quitter complétement Excel
End Sub
Le compteur
des références