Demande conseil pour élaboration code Vba
Bonjour à tous,
Avec l'aide ce forum, j'ai pu mettre en place ce code qui me permet d'alimenter un tableau se trouvant dans la feuille "Articles". Mais j'en ai 5 autres à remplir.
D'où une petite série de question afin d'optimiser mes codes et de ne pas me retrouver avec un code de 3 pages.
1 - Est-ce que je peux déclarer mes variables de cette façon ?
Code:
1 2
|
Dim MonArticle As ListRow, MesClients As ListRow, MaCommande As ListRow, MonFournisseur As ListRow, MonLivre As ListRow, MesVentes As ListRow |
Ou bien suis-je obligé de mettre un Dim devant chacune des variables ?
Le code ci-dessous va être à peu-près similaire pour le remplissage de mes tableaux,
2 - Est-il possible de faire quelque chose de plus court ou bien dois-je mettre les 6 codes bout à bout ?
3 - Est-ce que je peux mettre toutes ces déclarations les unes en-dessous des autres ?
Code:
1 2 3 4
|
Set MonArticle = Sheets("Articles").ListObjects(1).ListRows.Add
Set MesClients = Sheets("Clients").ListObjects(1).ListRows.Add
etc... |
Le même bouton de validation sert à toutes les pages.
Merci par avance pour vos conseils.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
Private Sub Bouton1_Click()
Dim MonArticle As ListRow
Application.ScreenUpdating = False
Set MonArticle = Sheets("Articles").ListObjects(1).ListRows.Add
'On ajoute les articles au tableau de la feuille "Articles"
With MonArticle
.Range(1, 1) = Me.Label_NumArticle.Caption
.Range(1, 3) = Me.Combo_Fourni
.Range(1, 4) = Me.Txt_DesignArticle
.Range(1, 5) = Me.Txt_DescripArticle
.Range(1, 6) = CDbl(Me.Txt_PriAchHT)
.Range(1, 7) = Me.Combo_TVA
.Range(1, 8) = CInt(Me.Txt_Nombre)
.Range(1, 11) = CInt(Me.Txt_StoMini)
.Range(1, 13) = "Active"
End With
Set MonArticle = Nothing
Sheets("Données").Range("C4") = Sheets("Données").Range("C4") + 1
Me.Combo_Fourni = ""
Me.Txt_DesignArticle = ""
Me.Txt_DescripArticle = ""
Me.Txt_PriAchHT = ""
Me.Combo_TVA = ""
Me.Txt_Nombre = ""
Me.Txt_StoMini = ""
Application.ScreenUpdating = True
End Sub |