Transfert formulaire de saisie horaire en heures
Bonjour a tous,
étant débutant je me permets d'en appeler a votre aide concernant un formulaire de saisie de données
dans un formulaire j'ai besoin de saisir des heures
Par exemple des arrêts (exemple ci dessous de deux arrêts, un de 4h00 a 4h10 et l'autre de 4h15 a 4h20)
ils doivent êtres saisis dans une liste et ensuite en cliquant sur un bouton valider, je dois transférer ces horaires en valeur 1 (pour une mise en forme conditionnelle dans des cellules correspondant déjà a des créneaux horaires).
je dois donc recuper dans la feuille excel une coloration bleue dans les cellulles de 4h00 a 4h10 , de 4h10 a 4h15 elle est blanche et ensuite de 4h15 a 4h20 elle est de nouveau bleue
4:00 4:10
4:15 4:20
si quelqu'un peut m'aider ce serait super.
merci par avance
bonne journée a vous
Bonjour,
Ton système d'heures n'est vraiment pas en adéquation avec le système qu'utilise Excel mais bon, comme je n'en connais pas la finalité, je te propose d'utiliser plutôt deux ComboBox, un pour l'heure de début et l'autre pour l'heure de fin dont voici le code et ton classeur en retour, reviens si ce n'est pas ce que tu veux :
Private Sub UserForm_Initialize()
Dim I As Integer
For I = 0 To 55 Step 5
ComboBox1.AddItem "4h" & Format(I, "00")
ComboBox2.AddItem "4h" & Format(I, "00")
Next I
ComboBox1.AddItem "5h00"
ComboBox2.AddItem "5h00"
End Sub
Private Sub CommandButton2_Click()
Dim Plage As Range
Dim Cel As Range
Dim Cel1 As Range
Dim Cel2 As Range
Set Plage = Range("A6:A18")
If ComboBox1.Text = "" And ComboBox2.Text = "" Then Exit Sub
Set Cel1 = Plage.Find(ComboBox1.Text, , xlValues, xlWhole)
If Not Cel1 Is Nothing Then Cel1.Offset(, 1).Value = 1
Set Cel2 = Plage.Find(ComboBox2.Text, , xlValues, xlWhole)
If Not Cel2 Is Nothing Then
For Each Cel In Range(Cel1, Cel2): Cel.Offset(, 1).Value = 1: Next Cel
End If
End Sub
Private Sub CommandButton1_Click()
Unload Me
End Sub
bonjour,
merci pour ta reponse,
dans un premier temps ce n'etais pas trop ce que je cherchais mais au final ton idée s'est revelée etre plus pertinente que mon idée du coup tu as resolu mon probleme mieux que ce que j'aurais pu faire.
je te remercie, mon probleme est resolu.
reste a tout adapter
bonne journée
j'aurais encore besoin d'aide si possible.
maintenant je souhaite faire cela mais en agrandissant la zone horaire , mais apparement je ne m'y prends pas bien !
Option Explicit
Private Sub UserForm_Initialize()
Dim I As Integer
Dim J As Integer
For I = 0 To 55 Step 5
For J = 0 To 55 Step 5
ComboBox1.AddItem "4h" & Format(I, "00")
ComboBox1.AddItem "5h" & Format(J, "00")
ComboBox2.AddItem "4h" & Format(I, "00")
Next I
ComboBox1.AddItem "5h00"
ComboBox1.AddItem "6h00"
ComboBox1.AddItem "7h00"
ComboBox2.AddItem "5h00"
ComboBox2.AddItem "6h00"
ComboBox2.AddItem "7h00"
End Sub
Private Sub CommandButton2_Click()
Dim Plage As Range
Dim Cel As Range
Dim Cel1 As Range
Dim Cel2 As Range
Set Plage = Range("A6:A41")
If ComboBox1.Text = "" And ComboBox2.Text = "" Then Exit Sub
Set Cel1 = Plage.Find(ComboBox1.Text, , xlValues, xlWhole)
If Not Cel1 Is Nothing Then Cel1.Offset(, 1).Value = 1
Set Cel2 = Plage.Find(ComboBox2.Text, , xlValues, xlWhole)
If Not Cel2 Is Nothing Then
For Each Cel In Range(Cel1, Cel2): Cel.Offset(, 1).Value = 1: Next Cel
End If
End Sub
Private Sub CommandButton1_Click()
Unload Me
End Sub