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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
| Option Explicit
Private L As Worksheet 'déclare la variable L (onglet Listes)
Private Sub UserForm_Initialize() 'à l'initialisation de l'UserForm
Set L = Worksheets("Listes") 'définit l'onglet L
If L.Range("A2") = "" Then GoTo suite 'si A2 est vide (aucun "Type de Matériel" dans la liste), va à l'étiquette "suite"
If L.Range("A3") = "" Then Me.ComboBox1.AddItem L.Range("A2").Value: GoTo suite 'si A3 est vide (un seul "Type de Matériel"), alimente la ComboBox1, va à l'étiquette "suite"
Me.ComboBox1.List = L.Range("A2:A" & L.Range("A" & Application.Rows.Count).End(xlUp).Row).Value 'alimente la ComboBox1
suite: 'étiquette
If L.Range("B2") = "" Then Exit Sub 'si B2 est vide (aucune "Localisation" dans la liste), sort de la procédure
If L.Range("B3") = "" Then Me.ComboBox2.AddItem L.Range("B2").Value: Exit Sub 'si B3 est vide (une seule "Localisation"), alimente la ComboBox2, sort de la procédure
Me.ComboBox2.List = L.Range("B2:B" & L.Range("B" & Application.Rows.Count).End(xlUp).Row).Value 'alimente la ComboBox2
End Sub
Private Sub CommandButton1_Click()
Dim DL As Integer 'décalre la varaible DL (Dernière Ligne)
With Me.ComboBox1 'prend en compte la ComboBox1
If .ListIndex = -1 Then 'condition : si la valeur de la ComboBox1 ne fait pas partie de la liste de ses éléments
DL = L.Range("A" & Application.Rows.Count).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A de l'onglet L
L.Range("A" & DL + 1).Value = .Value 'renvoie la valeur de la ComboBox1 dans la première ligne vide de la colonne A de l'onglet L
L.Columns(1).Sort , key1:=L.Columns(1), Order1:=xlAscending, Header:=xlYes 'tri ascendant de la colonne A
Call UserForm_Initialize 'lance la procédure d'initialisation
End If 'fin d la condition
If Me.ListBox1.ListCount < 1000 Then Me.ListBox1.AddItem Me.ComboBox1.Value 'ajoute le valeur de la ComboBox1 à la ListBox1
End With 'fin de la prise en compte de la ComboBox1
With Me.ComboBox2 'prend en compte la ComboBox2
If .ListIndex = -1 Then 'condition : si la valeur de la ComboBox2 ne fait pas partie de la liste de ses éléments
DL = L.Range("B" & Application.Rows.Count).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne B de l'onglet L
L.Range("B" & DL + 1).Value = .Value 'renvoie la valeur de la ComboBox2 dans la première ligne vide de la colonne B de l'onglet L
L.Columns(2).Sort , key1:=L.Columns(2), Order1:=xlAscending, Header:=xlYes 'tri ascendant de la colonne B
Call UserForm_Initialize 'lance la procédure d'initialisation
End If 'fin d la condition
If Me.ListBox3.ListCount < 1000 Then Me.ListBox3.AddItem Me.ComboBox2.Value 'ajoute le valeur de la ComboBox2 à la ListBox3
End With 'fin de la prise en compte de la ComboBox1
If TextBox2 <> "" Then
If ListBox2.ListCount < 1000 Then
ListBox2.AddItem TextBox2
Else
ListBox2.List(999) = TextBox2
End If
TextBox2 = ""
End If
If TextBox4 <> "" Then
If ListBox4.ListCount < 1000 Then
ListBox4.AddItem TextBox4
Else
ListBox4.List(999) = TextBox4
End If
TextBox4 = ""
End If
End Sub
Private Sub CommandButton2_Click()
Dim PLV As Integer 'décalre la varaible DL (Dernière Ligne)
Dim O As Worksheet 'déclare la variable O (Onglet)
Set O = Worksheets("Feuil2") 'définit l'onglet O
'définit la première ligne vide PLV (6 si B6 est vide, sinon la première cellule vide de la colonne B)
PLV = IIf(O.Range("B6") = "", 6, O.Range("B" & Application.Rows.Count).End(xlUp).Row + 1)
O.Unprotect "bibouden" 'déprotège l'onglet O
If ListBox1.ListCount > 0 Then
O.Range("B" & PLV).Resize(ListBox1.ListCount, 1) = ListBox1.List
End If
If ListBox2.ListCount > 0 Then
O.Range("C" & PLV).Resize(ListBox2.ListCount, 1) = ListBox2.List
End If
If ListBox3.ListCount > 0 Then
O.Range("D" & PLV).Resize(ListBox3.ListCount, 1) = ListBox3.List
End If
If ListBox4.ListCount > 0 Then
O.Range("E" & PLV).Resize(ListBox4.ListCount, 1) = ListBox4.List
End If
O.Protect "bibouden"
Unload Me
O.Select
End Sub |
Partager