Option Explicit
Private Sub Ajouter_Click()
Dim Z, cc&, ligne&
Z = Split("A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.w", ".")
ligne = Feuil2.Cells(Rows.Count, "A").End(xlUp).Row + 1
If control_And_Message Then
For cc = 0 To UBound(Z)
Select Case True
Case IsDate(Me.Controls(Z(cc)).Value): Feuil2.Range(Z(cc) & ligne) = CDate(Me.Controls(Z(cc)).Value)
Case IsNumeric(Me.Controls(Z(cc)).Value): Feuil2.Range(Z(cc) & ligne) = Val(Me.Controls(Z(cc)).Value)
Case Else: Feuil2.Range(Z(cc) & ligne) = Me.Controls(Z(cc)).Text
End Select
Next
clearAll
End If
End Sub
Private Sub modifier_Click() 'bouton Modifier
Dim ligne&, x, cc&
ligne = B.ListIndex + 2
If MsgBox("Confirmez-vous la modification de cette Intervention ?", vbYesNo, "Demande de confirmation de modification") = vbYes Then
If control_And_Message Then
x = Split("A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.w", ".")
For cc = 0 To UBound(x)
Select Case True
Case IsDate(Me.Controls(x(cc)).Value): Feuil2.Range(x(cc) & ligne) = CDate(Me.Controls(x(cc)).Value)
Case IsNumeric(Me.Controls(x(cc)).Value): Feuil2.Range(x(cc) & ligne) = Val(Me.Controls(x(cc)).Value)
Case Else: Feuil2.Range(x(cc) & ligne) = Me.Controls(x(cc)).Text
End Select
Next
End If
clearAll
End If
End Sub
Private Function control_And_Message() 'controle si c'est dument rempli (les 10 d'un coup)
Dim x, T$, cc
x = Split("C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V", ".")
For cc = 0 To UBound(x) - 1 Step 2
If Me.Controls(x(cc + 1)) = "" And Me.Controls(x(cc)) <> "" Then T = T & "la quantité pour " & Me.Controls(x(cc)).Tag & " n'est pas renseignée" & vbCrLf
Next
If T <> "" Then MsgBox T
control_And_Message = T = ""
End Function
Private Sub B_Change()
Dim Ctrl As Object
With B
For Each Ctrl In Me.Controls
If .ListIndex > -1 Then
modifier.Enabled = True
If Ctrl.Tag <> "" And Ctrl.Name <> "B" Then Ctrl.Value = Feuil2.Range(Ctrl.Name & .ListIndex + 2)
Else: If Ctrl.Tag <> "" Then If Ctrl.Name <> "B" Then Ctrl.Value = ""
End If
Next
modifier.Enabled = .ListIndex > -1
Ajouter.Enabled = .ListIndex = -1 And .Value <> ""
End With
If A = "" Then A = Date
End Sub
Private Sub clearAll()
Dim x, cc&
B.Value = ""
x = Split("C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V", ".")
For cc = 0 To UBound(x): Me.Controls(x(cc)).Value = "": Next
modifier.Enabled = B.ListIndex > -1
Ajouter.Enabled = B.ListIndex = -1 And B.Value <> ""
End Sub
Private Sub UserForm_Initialize()
Me.A.Value = Date
Me.B.List = Feuil2.Range("B2", Cells(Rows.Count, "B").End(xlUp)).Value
End Sub
Private Sub CommandButton3_Click(): Unload Me: End Sub