Académique Documents
Professionnel Documents
Culture Documents
Lancer Excel et ouvrer un nouveau classeur et enregistrer le dans votre dossier de travail en
choisissant l’extension .xlsm
Vers la fin nous vous expliquerons a quoi sert le button100 et comment insérer des images sur
les différents buttons
Ajouter dans l’userform Client 2 contrôles Frame avec les caractéristiques suivantes :
Contrôles Name Caption Width Height Left Top
Frame1 Frame1 372 570 6 36
Frame2 Frame2 330 372 576 36
Ajouter dans l’userform Client 1 contrôle Label avec les caractéristiques suivantes :
Contrôles Name Caption TextAlign Width Height Left Top
Label Label1 LabelTitre fmTextAlignLeft 570 24 6 12
Ajouter dans l’userform Client 2 contrôles CommandButton avec les caractéristiques suivantes
:
Contrôles Name Caption PicturePosition Visible Width Height Left Top
CommandButton Button5 Fermer True 70 24 810 330
CommandButton Button100 100 -- False 70 24 702 330
Ajouter dans le frame1 2 contrôles Listbox avec les caractéristiques suivantes :
Contrôles Name IntegralHeight TextAlign Visible Width Height Left Top
Listbox Listbox1 False fmTextAlignLeft True 560 18 4 6
Listbox Listbox2 False fmTextAlignLeft False 560 333 4 24
Ajouter dans le frame2 7 contrôles Label avec les caractéristiques suivantes :
Contrôles Name Caption TextAlign Visible Width Height Left Top
Label Label1 Reference fmTextAlignLeft True 91 20 6 6
Label Label2 Type de tiers fmTextAlignLeft True 91 20 6 36
Label Label3 Désignation fmTextAlignLeft True 91 20 6 66
Label Label4 N° téléphone fmTextAlignLeft True 91 20 6 96
Label Label5 Adresse Mail fmTextAlignLeft True 91 20 6 126
Label Label6 Adresse Physique fmTextAlignLeft True 91 20 6 156
Label Label7 Taux de TVA fmTextAlignLeft True 91 20 6 186
Ajouter dans le frame2 6 contrôles TextBox avec les caractéristiques suivantes :
Contrôles Name Locked TextAlign Visible Width Height Left Top
TextBox TextBox1 True fmTextAlignLeft True 120 20 97 6
TextBox TextBox3 False fmTextAlignLeft True 120 20 97 66
TextBox TextBox4 False fmTextAlignLeft True 120 20 97 96
TextBox TextBox5 False fmTextAlignLeft True 120 20 97 126
TextBox TextBox6 False fmTextAlignLeft True 120 20 97 156
Ajouter dans le frame2 1 contrôle Combobox avec les caractéristiques suivantes :
Contrôles Name Locked TextAlign Visible Width Height Left Top
Combobox TextBox2 False fmTextAlignLeft True 222 20 97 36
Combobox TextBox7 False fmTextAlignLeft True 120 20 97 186
Ajouter dans le frame2 4 contrôles CommandButton avec les caractéristiques suivants :
Contrôles Name Caption PicturePosition Visible Width Height Left Top
CommandButton Button1 Ajouter True 70 24 6 330
CommandButton Button2 Modifier … True 70 24 84 330
CommandButton Button3 Supprimer True 70 24 168 330
CommandButton Button4 Actualiser True 70 24 252 330
Ajouter dans l’userform Client 2 contrôles Frame avec les caractéristiques suivantes :
Contrôles Name Caption Width Height Left Top
Frame1 Frame1 372 570 6 36
Frame2 Frame2 330 372 576 36
Ajouter dans l’userform Client 1 contrôle Label avec les caractéristiques suivantes :
Contrôles Name Caption TextAlign Width Height Left Top
Label Label1 LabelTitre fmTextAlignLeft 570 24 6 12
Ajouter dans l’userform Client 2 contrôles CommandButton avec les caractéristiques suivantes
:
Contrôles Name Caption PicturePosition Visible Width Height Left Top
CommandButton Button5 Fermer True 70 24 810 330
CommandButton Button100 100 -- False 70 24 702 330
Ajouter dans le frame1 2 contrôles Listbox avec les caractéristiques suivantes :
Contrôles Name IntegralHeight TextAlign Visible Width Height Left Top
Listbox Listbox1 False fmTextAlignLeft True 560 18 4 6
Listbox Listbox2 False fmTextAlignLeft False 560 333 4 24
Ajouter dans le frame2 7 contrôles Label avec les caractéristiques suivantes :
Contrôles Name Caption TextAlign Visible Width Height Left Top
Label Label1 Reference fmTextAlignLeft True 91 20 6 6
Label Label2 Type de tiers fmTextAlignLeft True 91 20 6 36
Label Label3 Désignation fmTextAlignLeft True 91 20 6 66
Label Label4 N° téléphone fmTextAlignLeft True 91 20 6 96
Label Label5 Adresse Mail fmTextAlignLeft True 91 20 6 126
Label Label6 Adresse Physique fmTextAlignLeft True 91 20 6 156
Label Label7 Taux de TVA fmTextAlignLeft True 91 20 6 186
Ajouter dans le frame2 6 contrôles TextBox avec les caractéristiques suivantes :
Contrôles Name Locked TextAlign Visible Width Height Left Top
TextBox TextBox1 True fmTextAlignLeft True 120 20 97 6
TextBox TextBox3 False fmTextAlignLeft True 120 20 97 66
TextBox TextBox4 False fmTextAlignLeft True 120 20 97 96
TextBox TextBox5 False fmTextAlignLeft True 120 20 97 126
TextBox TextBox6 False fmTextAlignLeft True 120 20 97 156
Ajouter dans le frame2 1 contrôle Combobox avec les caractéristiques suivantes :
Contrôles Name Locked TextAlign Visible Width Height Left Top
Combobox TextBox2 False fmTextAlignLeft True 222 20 97 36
Combobox TextBox7 False fmTextAlignLeft True 120 20 97 186
Ajouter dans le frame2 4 contrôles CommandButton avec les caractéristiques suivants :
Contrôles Name Caption PicturePosition Visible Width Height Left Top
CommandButton Button1 Ajouter True 70 24 6 330
CommandButton Button2 Modifier … True 70 24 84 330
CommandButton Button3 Supprimer True 70 24 168 330
CommandButton Button4 Actualiser True 70 24 252 330
Ajouter dans l’userform client 4 contrôles CommandButton avec les caractéristiques suivants :
Ajouter dans les Frame1 2 contrôles Listbox avec les caractéristiques suivants :
Contrôles Name Caption IntegralHeight Width Height Left Top
CommandButton Button1 Ajouter
CommandButton Button2 Modifier
CommandButton Button3 Supprimer
CommandButton Button4 Fermer
CommandButton Button1 Ajouter
Ajouter dans les Frame1 2 contrôles Listbox avec les caractéristiques suivants :
4. Création de la Base
Créer 4 feuilles dans votre Classeur
La première Feuille vous la nommer Client
La deuxième Feuille vous la nommer Fournisseur
La troisième Feuille vous la nommer Produit
La Quatrième Feuille vous la nommer Accueil
La feuille Client
La feuille Fournisseur
La feuille Produit
Option Explicit
Explication
L’instruction Option explicit place au début du code de l’userform permet lors de la compilation
du programme de vérifier que toutes les variables ont étés déclarées
Pour déclarer une variable on utilise le mot clé Dim suivi du nom de la variable et suivi de As et
du type de variable.
Exemple :
Dim i as Long Variable déclarée de Type nombre réel
Dim Sh As Worksheet Variable Sh déclarée de type Feuille
Dim C as Range Variable C déclarée de type Plage
Dim j as int Variable j déclarée de type nombre entier
Option Base 1
C’est une instruction qui concerne les tableaux, nous l’expliquerons plus tard
Me.LabelTitre.Caption = Sh.Range("P1").Value2
Me.Caption = Sh.Range("P1").Value2
For i = 1 To 7
Me.Controls("TextBox" & i).Text = ""
Next i
Me.TextBox7.AddItem "0"
Me.TextBox7.AddItem "19.25"
For i = 1 To 2
Me.Controls("ListBox" & i).Clear
Me.Controls("ListBox" & i).RowSource = ""
Me.Controls("ListBox" & i).ColumnCount = 7
Me.Controls("ListBox" & i).ColumnWidths = "65;150;55;55;55;95;60"
Next i
Me.Listbox1.List() = Sh.Range("A1:G1").Value
Me.TextBox1.Text = Sh.Range("O1").Value
If Ligne = 1 Then
Else
Me.Listbox2.List() = Sh.Range("A2:G" & Ligne).Value
End If
Me.Button1.Enabled = True
Me.Button2.Enabled = False
Me.Button3.Enabled = False
Me.TextBox2.SetFocus
Set Sh = Nothing
End Sub
Explication
Ligne = Sh.Cells(Sh.Rows.Count, 1).End(xlUp).Row
Je recherche la dernier cellule non vide de la colonne 1 commençant par le bas pour monter je la stocke
dans la variable Ligne
Me.TextBox7.AddItem "0"
Me.TextBox7.AddItem "19.25"
Ici le Textbox7 est un combobox donc une liste déroulante, j’insère les données à l’intérieur de ma liste
avec la méthode .Additem
Me.Listbox1.List() = Sh.Range("A1:G1").Value
Je charge dans le contrôle Listbox 1 les données de la plage A1 à G1
For i = 1 To 7
Me.Controls("TextBox" & i).Text = ""
Next i
Me.TextBox1.Text = Sh.Range("O1").Value
Me.TextBox2.SetFocus
End If
Set Sh = Nothing
End Sub
For i = 1 To 7
If Me.Controls("TextBox" & i).Text = "" Then
Beep
MsgBox Me.Controls("Label" & i).Caption & " ne peut etre vide", vbCritical
Me.Controls("TextBox" & i).SetFocus
Exit Sub
End If
Next i
For i = 1 To 7
Sh.Cells(Ligne, i).Value = Me.Controls("TextBox" & i).Text
Next i
For i = 1 To 7
Me.Controls("TextBox" & i).Text = ""
Next i
Me.TextBox1.Text = Sh.Range("O1").Value
Me.Button1.Enabled = True
Me.Button2.Enabled = False
Me.Button3.Enabled = False
Me.TextBox2.SetFocus
End If
Set Sh = Nothing
End Sub
Beep
If MsgBox("Confirmer la suppression?", vbYesNo, "Confirmation") = vbYes Then
Sh.Range(Sh.Cells(Ligne, 1), Sh.Cells(Ligne, 7)).Delete (xlUp)
For i = 1 To 7
Me.Controls("TextBox" & i).Text = ""
Next i
Me.TextBox1.Text = Sh.Range("O1").Value
Me.Listbox2.Clear
Me.Listbox2.RowSource = ""
If Ligne = 1 Then
Else
Me.Listbox2.List() = Sh.Range("A2:G" & Ligne).Value
End If
Me.Listbox2.ListIndex = -1
Me.Button1.Enabled = True
Me.Button2.Enabled = False
Me.Button3.Enabled = False
Me.TextBox2.SetFocus
End If
Set Sh = Nothing
End Sub
Set Sh = ThisWorkbook.Sheets("Produit")
Let Ligne = Sh.Cells(Sh.Rows.Count, 1).End(xlUp).Row
For i = 1 To 7
Me.Controls("TextBox" & i).Text = ""
Next i
Me.TextBox1.Text = Sh.Range("O1").Value
Me.Button1.Enabled = True
Me.Button2.Enabled = False
Me.Button3.Enabled = False
Me.Listbox2.ListIndex = -1
Me.TextBox2.SetFocus
Set Sh = Nothing
End Sub
Explication :
Set Sh = ThisWorkbook.Sheets("Produit")
Let Ligne = Sh.Cells(Sh.Rows.Count, 1).End(xlUp).Row
Me.TextBox1.Text = Me.Listbox2.List(Me.Listbox2.ListIndex, 0)
For j = 1 To 7
Me.Controls("TextBox" & j).Text = Sh.Cells(Cellule.Row, j).Value
Next j
Me.Button1.Enabled = False
Me.Button2.Enabled = True
Me.Button3.Enabled = True
End If
End If
Set Sh = Nothing
End Sub