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 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
|
Option Explicit
Dim bModeSaisie As Boolean
'----------------------------------------
'Procedures de gestion du Formulaire
'----------------------------------------
'Initialisation
Private Sub UserForm_Initialize()
bModeSaisie = False
TextBox_Init Me.TxtboxDebutService
TextBox_Init Me.TxtboxFindeService
TextBox_Init Me.TextbxPauseDeduite
TextBox_Init Me.TxtboxPauseCompensee
bModeSaisie = True
End Sub
'Fleches de d?placement
Private Sub TxtboxDebutService_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
TextBox_KeyUp TxtboxDebutService, KeyCode, Shift
End Sub
Private Sub TxtboxFindeService_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
TextBox_KeyUp TxtboxFindeService, KeyCode, Shift
End Sub
Private Sub TextbxPauseDeduite_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
TextBox_KeyUp TextbxPauseDeduite, KeyCode, Shift
End Sub
Private Sub TxtboxPauseCompensee_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
TextBox_KeyUp TxtboxPauseCompensee, KeyCode, Shift
End Sub
'Verification de la saisie
Private Sub TxtboxDebutService_Change()
TextBox_Change TxtboxDebutService
TextBox_Exit TxtboxDebutService
End Sub
Private Sub TxtboxFindeService_Change()
TextBox_Change TxtboxFindeService
TextBox_Exit TxtboxFindeService
End Sub
Private Sub TextbxPauseDeduite_Change()
TextBox_Change TextbxPauseDeduite
TextBox_Exit TextbxPauseDeduite
End Sub
Private Sub TxtboxPauseCompensee_Change()
TextBox_Change TxtboxPauseCompensee
TextBox_Exit TxtboxPauseCompensee
End Sub
'----------------------------------------
'Procedures de gestion des textBox Heure
'----------------------------------------
'Init
Private Sub TextBox_Init(textBox As Control)
textBox = "00:00"
textBox.SelLength = 1 ' saisie caract?re pa cract?re
textBox.SelStart = 0
End Sub
'Fleches
Private Sub TextBox_KeyUp(textBox As Control, ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim debut As Integer
'fleche vers la gauche
If KeyCode = 37 Then
debut = textBox.SelStart - 1
If debut < 0 Then debut = 0
If debut = 2 Then debut = 1
textBox.SelStart = debut
End If
'fleche vers la droite
If KeyCode = 39 Then
debut = textBox.SelStart '+ 1
If debut > 4 Then debut = 4
If debut = 2 Then debut = 3
textBox.SelStart = debut
End If
End Sub
'Verif saisie
Private Sub TextBox_Change(textBox As Control)
Dim debut As Integer
Dim txt As String
If Not bModeSaisie Then Exit Sub
bModeSaisie = False
On Error Resume Next
txt = textBox
txt = Mid(txt, 1, textBox.SelStart) & Mid(txt, textBox.SelStart + 2, 5)
On Error GoTo 0
If txt = "" Or Not txt Like "##" & ":" & "##" Then
textBox = "00:00"
textBox.SelStart = 0
Else
debut = textBox.SelStart '+ 1
If debut > 4 Then debut = 4
If debut = 2 Then debut = 3
textBox = txt
textBox.SelStart = debut
End If
bModeSaisie = True
End Sub
'---
Private Sub TextBox_Exit(textBox As Control)
If Not IsDate(textBox) Then
MsgBox "La saisie n'est pas une heure valide"
TextBox_Init textBox
End If
End Sub
' Enregistrer les services dans le tableau
Private Sub CbenregistrerService_Click()
Dim dl As Integer
dl = Sheets("Service").Range("E1000").End(xlUp).Row + 1
Sheets("Service").Range("b" & dl) = Me.TxtbxAnn?e
Sheets("Service").Range("c" & dl) = Me.TxtbxPeriode
Sheets("Service").Range("d" & dl) = Me.TxtbxNomDuService
Sheets("Service").Range("f" & dl) = Me.TxtboxDebutService
Sheets("Service").Range("G" & dl) = Me.TxtboxFindeService
Sheets("Service").Range("I" & dl) = Me.TextbxPauseDeduite
Sheets("Service").Range("J" & dl) = Me.TxtboxPauseCompensee
End Sub |