Private Sub UserForm_Initialize()
Dim Target As Range, Cel As Range, Lvh As ColumnHeader, Ncom
Txt_Dates = Date
Get_Fields ComboBox1, "Select Distinct Catégorie from " & Get_Table([Tbl_Liste_Fleurs]) & " order by Catégorie"
'**************Récupère les données du tableau "Tbl_Fournisseurs" dans la ComboBox "Cbx_Fournisseur"****************************
Get_Fields Cbx_Fournisseur, "Select Distinct `Nom Fournisseurs` from " & Get_Table([Tbl_Fournisseurs]) & " order by `Nom Fournisseurs`"
Cbx_Fournisseur.AddItem Empty, 0: Cbx_Fournisseur.ListIndex = 0
'************** préparation de la listvew avec les nom de colonnes
With Me.ListView_List_Fleurs
.Gridlines = True: .View = lvwReport
.FullRowSelect = True: .Font.Size = 10
.Sorted = True
With .ColumnHeaders
.Clear
For Each Cel In [Tbl_Liste_Fleurs[#Headers]].Cells
' on nomme la colonne de la listview comme l'entête de la table
Set Lvh = .Add(Text:=Cel.Text, Width:=Cel.Width)
' on définit l'alignement de la colonne comme celle de la colonne de la table
Select Case Cel.Offset(1).HorizontalAlignment
Case xlHAlignCenter: Lvh.Alignment = lvwColumnCenter
Case xlHAlignLeft: Lvh.Alignment = lvwColumnLeft
Case xlHAlignRight: Lvh.Alignment = lvwColumnRight
End Select
' on a défini la largeur des colonnes comme celles des colonnes de la table
' on va spécifier des largeurs particulières
Select Case Lvh.Text
Case "Type Bouton": Lvh.Width = Lvh.Width / 2 ' Colonne réduite de moitié
Case "Catalogue": Lvh.Width = 0 ' Colonne masquée
End Select
Next
End With
End With
'*****************************Attribue un nouveau N° de commande automatiquement****************************
' Je suppose que la règle de ce N° est encore en gestation
' faire référence au nombre de lignes existantes n'est pas judicieux
' ( si une commande est annulée et de ce fait détruite, la dernière ligne est partie dans les choux )
'
' On va chercher si une commande existe pour l'année en cours
Set Target = Range("Tbl_Detail_Commande[N°" & vbLf & " Commande]")
Set Cel = Target.Find("C-" & Year(Date), Target(1), xlValues, xlPart, , xlPrevious)
If Cel Is Nothing Then Ncom = 1 Else Ncom = Split(Cel, "- ")(1) + 1
Me.Txt_NumCommande = "C-" & Year(Date) & "- " & Format(Ncom, "# 000")
End Sub