BDD_VBA

But du Tutoriel :

Construire une base de données simple sur feuille Excel.

Pour réaliser le formulaire il faudra dessiner:

1 "Userform"

2 "Label"

2 "TextBox"

1 "ComboBox"

1 "CommandButton"

Nommer des titres NOM et PRENOM dans les colonnes A et B.

 

 

Création d’une Base de donnée Nom et Prénom.

 

 

 

Dessiner un formulaire « Userform » en VBA.

Click sur -> Développeur + Visual Basic

Ou ALT + F11

 

 

Mettre les bonnes propriétés pour chaque contrôle dans éditeur VBA.

 

Insertion d’un formulaire « Userform. »

 

 

 

 

 

 

La boite à outils

 

 

 

Dessiner une étiquette de titre « Label »

 

 

 

Dessiner une boite de Texte « TextBox ».

 

 

 

Dessiner une « ComboBox » ( Pour valeur numérique )

 

 

 

Dessiner un « Bouton de commande »

 

 

 

Renommer chaque Contrôle.

 

Choisir le contrôle à renommer.

Renommer le contrôle avec la propriété « Name »

 

 

Utiliser la tabulation à l’aide de la propriété  « Tabindex ».

 

Première TextBox = 0

 

Deuxième TextBox = 1

 

 

Bouton de commande = 2

 

Pas de « TabStop » pour les autres contrôles.

 

 

 

 

Utiliser l’affichage de l’aide de remplissage du champ d’un contrôle. « ControlTipText »

Pour le texte du bouton changer Caption

 

Utiliser la propriété « TAG » afin de déterminer la bonne colonne directement pour le remplissage de la base de données.

Dans le code ci-dessous nous allons utiliser « Cells ( Ligne , Colonne) »

Le numéro de la colonne sera donc égal à notre Tag.

Notre Tag est une chaine de caractère « String »

Il faudra alors le convertir en entier.

Donc « Cint (control.Tag) »

Colonne « A » = 1, « B » = 2 etc…

 

 

Le contrôle « TextBox » peut contenir des nombres, mais il est préférable de manipuler les nombres avec une « ComboBox ».

Car une boite de texte est principalement utiliser pour du texte.

Afin d’utiliser correctement le contrôle « ComboBox ».

Changer les propriétés comme cela :

 

 

Et utiliser .Value au lieu de .Text dans votre code. (Pour valeur numérique.)

 

Sélectionner le formulaire puis F7 pour afficher le code ou :

 

 

 

 

Et maintenant le code :

 

'Mettre les variables en dehors pour la portée

'Donne la possibilité de garder la valeur en quittant la procédure.

 

Dim txt As Control

Dim derniere_ligne As Integer

 

' ******************* DEBUT DE CODE USF *********************

Private Sub UserForm_Initialize()

 

' Assignation de la variable

' Recherche de la dernière ligne vide de la colonne A

 

derniere_ligne = Range("A" & Rows.Count).End(xlUp).Row

 

' Utilisation de la Fonction IIF intéressante pour deux conditions.

IIf derniere_ligne = 1, NombreInscrit.Value = 0, NombreInscrit.Value = derniere_ligne

 

End Sub

 

' ********************** FIN DE CODE USF *********************

 

' **************** DEBUT DE CODE VALIDER ********************

 

Private Sub CmdBtnValider_Click()

 

'Déclaration de variable

Dim ajout_ok As Boolean

 

' Assignation de la valeur de la variable ligne vide

derniere_ligne = Range("A" & Rows.Count).End(xlUp).Row + 1

 

' Boucle sur le Userform (ici = Me)

 

For Each txt In Me.Controls

        If TypeName(txt) = "TextBox" Then

        'Ucase mettre en majuscule

   Cells(derniere_ligne, CInt(txt.Tag)).Value = UCase(txt.Value)

        ajout_ok = True

        End If

Next

 

If ajout_ok Then clear_txt

 

End Sub

 

' ******************** FIN DE CODE VALIDER *******************

 

'**************** Effacer les données des TextBox' ***************

 

Private Sub clear_txt()

 

' Boucle sur le userform (idem Me)

For Each txt In Me.Controls

        If TypeName(txt) = "TextBox" Then

        txt.Value = ""

        End If

Next

 

NombreInscrit.Text = derniere_ligne

 

End Sub

 

' ******************* FIN DE CODE EFFACER *******************

 

Afin de pouvoir interagir directement avec la feuille Excel , et le formulaire j’ai changé la propriété :

ShowModal = False