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 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
| Option Compare Text
Dim nomtableau
'Initialisation du formulaire
Private Sub UserForm_Initialize()
nomtableau = "produit"
Me.enreg = Range(nomtableau).Rows.Count + 1
Me.Id = Application.Max(Range(nomtableau).Columns(1)) + 1
Tbl = Range(nomtableau).Value
Tri Tbl, LBound(Tbl), UBound(Tbl), 1
Me.Recherche.List = Tbl
With Me
.Criticité.List = [Tableau3].Value
End With
' déprotection de la feuille "Produits" à éditer
Sheets("Produits").Unprotect Password:="iknowvba"
End Sub
Private Sub Recherche_Change()
Me.enreg = Application.Match(Val(Me.Recherche), Range(nomtableau).Columns(1), 0)
Me.Id = Me.Recherche
For i = 2 To 3
Me("TextBox" & i) = Range(nomtableau).Item(enreg, i)
Next i
Me.Textbox4 = Range(nomtableau).Item(enreg, 5)
Me.Textbox5 = Range(nomtableau).Item(enreg, 6)
Me.Textbox6 = Range(nomtableau).Item(enreg, 7)
Me.Textbox7 = Range(nomtableau).Item(enreg, 8)
Me.TextBox8 = Range(nomtableau).Item(enreg, 9)
Me.TextBox9 = Range(nomtableau).Item(enreg, 10)
Me.TextBox10 = Range(nomtableau).Item(enreg, 11)
Me.TextBox11 = Range(nomtableau).Item(enreg, 4)
End Sub
Private Sub B_valid_Click()
enreg = Me.enreg
Range(nomtableau).Item(enreg, 1) = Val(Me.Id)
For i = 2 To 3
Range(nomtableau).Item(enreg, i) = Me("TextBox" & i)
Next i
Range(nomtableau).Item(enreg, 4) = Me.TextBox11
Range(nomtableau).Item(enreg, 5) = Me.Textbox4
Range(nomtableau).Item(enreg, 6) = Me.Textbox5
Range(nomtableau).Item(enreg, 7) = Me.Textbox6
Range(nomtableau).Item(enreg, 8) = Me.Textbox7
Range(nomtableau).Item(enreg, 9) = Me.TextBox8
Range(nomtableau).Item(enreg, 10) = Me.TextBox9
Range(nomtableau).Item(enreg, 11) = Me.TextBox10
Range(nomtableau).Item(enreg, 12) = Me("criticité" & s)
raz
UserForm_Initialize
End Sub
Private Sub B_sup_Click()
If MsgBox("Etes vous sûr de supprimer " & Me.enreg & "?", vbYesNo) = vbYes Then
Range(nomtableau).Rows(Me.enreg).Delete
Me.Recherche.List = Range(nomtableau).Value
End If
End Sub
Private Sub B_ajout_Click()
raz
Me.Id = Application.Max(Range(nomtableau).Columns(1)) + 1
Me.enreg = Range(nomtableau).Rows.Count + 1
End Sub
'remise à zéro du formulaire
Sub raz()
For i = 2 To 8
Me("TextBox" & i) = ""
Next i
End Sub
Private Sub B_suivant_Click()
If Me.Recherche.ListIndex < Me.Recherche.ListCount - 1 Then
Me.Recherche.ListIndex = Me.Recherche.ListIndex + 1
End If
End Sub
Private Sub b_précédent_Click()
If Me.Recherche.ListIndex > 0 Then
Me.Recherche.ListIndex = Me.Recherche.ListIndex - 1
End If
End Sub
Private Sub bouton_quitter_Click()
Unload Me
' Reprotection de la feuille "Produits" à éditer
Sheets("Produits").Protect Password:="iknowvba"
End Sub
Sub Tri(a, gauc, droi, colTri) ' Quick sort
ref = a((gauc + droi) \ 2, colTri)
g = gauc: d = droi
Do
Do While a(g, colTri) < ref: g = g + 1: Loop
Do While ref < a(d, colTri): d = d - 1: Loop
If g <= d Then
For c = LBound(a, 2) To UBound(a, 2)
temp = a(g, c): a(g, c) = a(d, c): a(d, c) = temp
Next
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call Tri(a, g, droi, colTri)
If gauc < d Then Call Tri(a, gauc, d, colTri)
End Sub |
Partager