bonjour,
Aller dans VBA, afficher le usfSAV, sélectionner le tb11 (Date Cloture)
Dans la fenêtre des propriétés (en bas à gauche) basculer la propriété Enabled à True
Changer tout le bloc WriteRecord :
Private Sub WriteRecord(ByVal RecordNumber As Long) ' Ecriture de l'enregistrement
Dim i&, iR&, YNewC As Boolean
Me.cboRech.ListIndex = -1
RecordNumber = RecordNumber + 1
With rng
.Cells(RecordNumber, 1).NumberFormat = "\S000000" ' Format
If Len(.Cells(RecordNumber, 1).Value) = 0 Then ' ID
.Cells(RecordNumber, 1) = NewNoS 'N°SAV
End If
.Cells(RecordNumber, 2).NumberFormat = "\C000000" ' Format
If tb0 = "" Then
.Cells(RecordNumber, 2) = NewNoC: YNewC = True
Else
.Cells(RecordNumber, 2) = CLng(Right(Me.tb0, 6)) 'N°C
End If
.Cells(RecordNumber, 3) = IIf(YNewC, Date, CDate(Me.tb1)) 'Date réception
.Cells(RecordNumber, 4) = UCase(Me.tb2) 'Nom
.Cells(RecordNumber, 5) = UCase(Me.tb3) 'Prénom
.Cells(RecordNumber, 6) = Me.tb4 'Tel
.Cells(RecordNumber, 7) = Me.tb5 'Machine
.Cells(RecordNumber, 8) = Me.cboType 'Type
.Cells(RecordNumber, 9) = Me.tb6 'Description
.Cells(RecordNumber, 10) = Me.tb7 'Autres infos
.Cells(RecordNumber, 11) = Me.cboStat 'Statut
.Cells(RecordNumber, 12) = Me.cboTech 'Technicien
.Cells(RecordNumber, 13) = Me.tb9 'Suivi
.Cells(RecordNumber, 14) = IIf(Me.tb10 <> "", Val(Me.tb10), "") 'Prix
.Cells(RecordNumber, 15) = IIf(YDateOk, CDate(Me.tb11), Date) 'DateCloture
i = .Cells(RecordNumber, 1)
End With
If YNewC Then
iR = [BDC].Rows.Count + 2
With WsC
.Cells(iR, 1).NumberFormat = "\C000000" ' Format
.Cells(iR, 1) = rng.Cells(RecordNumber, 2) 'N°Client
.Cells(iR, 2) = UCase(Me.tb2) 'Nom
.Cells(iR, 3) = UCase(Me.tb3) 'Prénom
.Cells(iR, 4) = Me.tb4 'Tel
.Cells(iR, 5) = Date 'Date réception
End With
TriBDC
End If
WsT.[E3] = rng.Cells(RecordNumber, 1) 'Reçu de prise en charge
Me.cboRech.ListIndex = CurrentRecord
End Sub
Rajouter tout en bas du module usfSAV (après la Private Function NewNoS&()) la fonction suivante :
Private Function YDateOk() As Boolean
If Len(Me.tb11) = 10 And IsDate(Me.tb11) Then
If CDate(Me.tb11) < Date Then MsgBox "Date antérieure !"
YDateOk = True
End If
End Function
A+