notice bibliographique pour les doctorants chercheurs en vba sous excel
Post on 23-Jan-2018
109 Views
Preview:
TRANSCRIPT
Université d’Oum El Bouaghi, AlgérieFaculté 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
Notice bibliographique
Elle est destinée pour sauvegarder et repérer lesréférences bibliographiques d’une recherche (thèse ouarticle). Il est ainsi possible d’accéder à ces données quiont servi à développer la problématique d’une manièretrès rapide, sans risquer de les perdre.
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
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
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 lesdonnéessaisie dans leformulaire
Une fois lesdonnées saisies,il est possible deles voir dans labase qui n’estautre que lafeuille excel
Une fois lesdonnées saisies, ilest possible de lesvoir dans leformulaire.
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
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
TextBox1
TextBox2TextBox3
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
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 0End Sub
Aussi……..
' 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 thenderligne = 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énomif worksheets ("données_revue").cells(derligne, 1) = "" then
msgbox " svp, veuillez saisir le nom et prénom de l'auteur", vbok + vbcritical: exit subelse
Worksheets ("données_revue").cells(derligne, 2) = textbox2.value ‘ titreWorksheets ("données_revue").cells(derligne, 3) = textbox3.value ‘ titre de la revueWorksheets ("données_revue").cells(derligne, 4) = textbox4.value ‘ annéeWorksheets ("données_revue").cells(derligne, 5) = textbox5.value ‘ pageWorksheets ("données_revue").cells(derligne, 6) = textbox6.value ‘ mots clefsWorksheets ("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 ifEnd if
'effacer les données après appuyer commandbutton2Textbox1.value = "" 'nom et prénomTextbox2.value = "" 'titreTextbox3.value = "" 'titre de la revueTextbox4.value = "" 'année"Textbox5.value = "" 'pagesTextbox6.value = "" 'mots clefsTextbox7.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 »
'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 Integerno_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énomTextBox2.Value = Worksheets("données_revue").Cells(no_ligne, 2).Value 'TitreTextBox3.Value = Worksheets("données_revue").Cells(no_ligne, 3).Value 'Titre de la revueTextBox4.Value = Worksheets("données_revue").Cells(no_ligne, 4).Value 'AnnéeTextBox5.Value = Worksheets("données_revue").Cells(no_ligne, 5).Value 'PagesTextBox6.Value = Worksheets("données_revue").Cells(no_ligne, 6).Value 'Mots clefsTextBox7.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énomWorksheets("revue_impr").Cells(10, 3) = Worksheets("données_revue").Cells(no_ligne, 2).Value 'TitreWorksheets("revue_impr").Cells(11, 3) = Worksheets("données_revue").Cells(no_ligne, 3).Value 'Titre de la revueWorksheets("revue_impr").Cells(12, 3) = Worksheets("données_revue").Cells(no_ligne, 4).Value 'AnnéeWorksheets("revue_impr").Cells(13, 3) = Worksheets("données_revue").Cells(no_ligne, 5).Value 'PagesWorksheets("revue_impr").Cells(14, 3) = Worksheets("données_revue").Cells(no_ligne, 6).Value 'Mots clefsWorksheets("revue_impr").Cells(15, 3) = Worksheets("données_revue").Cells(no_ligne, 7).Value 'Cote de rangement
End IfEnd Sub
'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 nomsno_ligne = ComboBox1.ListIndex + 1 'compteur, la 1ère entrée commence par l'index 1 qui est le n° de ligne2
If ComboBox1.Value = "" ThenMsgBox ("Veuillez remplir le champs de la recherche!")Else
Worksheets("données_revue").Cells(no_ligne, 1) = TextBox1.Value 'nom et prénomWorksheets("données_revue").Cells(no_ligne, 2) = TextBox2.Value 'TitreWorksheets("données_revue").Cells(no_ligne, 3) = TextBox3.Value 'Titre de la revueWorksheets("données_revue").Cells(no_ligne, 4) = TextBox4.Value 'AnnéeWorksheets("données_revue").Cells(no_ligne, 5) = TextBox5.Value 'PageWorksheets("données_revue").Cells(no_ligne, 6) = TextBox6.Value 'Mots clefsWorksheets("données_revue").Cells(no_ligne, 7) = TextBox7.Value 'Cote d'arrangement
End If
‘Effacer les données après avoir appuyé sur commandButton2TextBox1.Value = "" 'nom et prénomTextBox2.Value = "" 'TitreTextBox3.Value = "" 'Titre de la revueTextBox4.Value = "" 'Année TextBox5.Value = "" 'PagesTextBox6.Value = "" 'Mots clefsTextBox7.Value = "" 'Cote d'arrangement
End Sub
‘ 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 IntegerIf MsgBox("voulez-vous effacer toutes les références?", vbYesNo, "Confirmation") = vbYes Then
dr = Sheets("données_revue").Range("A1000").End(xlUp).Row + 1For i = 2 To dr
For j = 1 To 7 ‘ 7 est le nombre de colonneWorksheets("données_revue").Cells(i, j).Value = ""
Next j
Next i
End IfEnd Sub
'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 casFor j = 1 To 7
Worksheets("données").Cells(dr, j).Value = ""Next j
End Sub
' 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
Procédures communes
Les procédures qui suivent sont communes pour tout le code de cette application.
‘ 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.SaveApplication.Quit ‘Quitter complétement Excel
End Sub
Le compteur des références
top related