Private Sub valid_Click()
'
Dim LigneSource&, ColSource%
Dim LigneDest&, ColDest%
Dim Semaine As Byte
Dim Couleur As Variant
'
' Vérifications préliminaires sur la saisie
If TextBox1 = '' Then
MsgBox 'SAISIE DES HEURES NON CONFORME. Veuillez saisir un nombre d'heures !'
TextBox1.SetFocus
Exit Sub
End If
V1 = Val(TextBox1)
V2 = Val(TextBox2)
If V2 > 60 Then
MsgBox 'SAISIE DES MINUTES NON CONFORME. Veuillez saisir un nombre de minutes inférieur ou égale à 60 !'
TextBox2 = ''
TextBox2.SetFocus
Exit Sub
End If
' CONVERSION Minutes en Centièmes
Min = (V2 * 100) / 60 ' convertit en minutes le total des saisies
' Initialisation des variables
LigneSource = ActiveCell.Row 'ligne active
ColSource = ActiveCell.Column
' Le n° de semaine est en ligne 6...
Semaine = Cells(6, ColSource)
' Allez, on fait dans le compliqué ;-)))
' Puisque tu vas de juin à mai, il y aura des semaines à vérifier
' notamment les semaines inférieures ou égales à 22 :
' Si supérieures, pas de soucis, on est dans l'année de départ
' Sinon, il faut ajouter 29 à la semaine. Ainsi on a, si la semaine = 22
' et l'année = celle en cours : LigneDest = 0 + LigneSource
' Sinon, on a LigneDest = 29 + 22 (51)* 35 + LigneSource...
LigneDest = (IIf(Semaine <= 22, IIf(Year(Cells(8, ColSource)) _
- AnneeDebut = 1, 29, -22), -22) + Semaine) * 35 + LigneSource
ColDest = (WeekDay(Cells(8, ColSource)) - 1) * 2 + 3
Couleur = ActiveCell.Font.ColorIndex
With Sheets('Feuil1')
.Cells(LigneDest, ColDest).Font.ColorIndex = Couleur
.Cells(LigneDest, ColDest).Value = ActiveCell
.Cells(LigneDest, ColDest + 1).Font.ColorIndex = Couleur
.Cells(LigneDest, ColDest + 1).Value = Format((TextBox1), '00') & ',' & Format((Min), '00')
End With
TextBox1.Value = ''
TextBox2.Value = ''
Unload Me
End Sub