Re,
Qu'estce qui ne fonctionne pas?
Lorsque tu DblClicque dans la colonne A
le userform calcul_heure doit apparaître, si tant est
que le .Name ainsi défini respecte la casse et
que ce userform appartient bien au classeur.
Sinon mets un lien ici
après avoir posé l'exemple là http://cjoint.com
Cordialement.
lStephj'ai donc entre ce code dans mon userform:
Private Sub B_Validation_Click()
Calcul_2
ActiveCell = Format(CDate(Me.Total_heures_travaillées))
Unload Me
End Sub
et cela fonctionne
mais j'ai un soucis pour faire apparaitre mon userform
j'ai rentre ce code dans ma feuille
Private Sub Worksheet_BeforeDoubleClick(ByVal _
Target As Range, Cancel As Boolean)
If Target.Column = 1 Then calcul_heure.Show
End Sub
(calcul_heure étant le nom de mon userform)mais cela ne fonctionne pasmerci bcp pour votre implication
je vais essayer de suivre vos conseils
pour information je vous livre le code de mon userform
Private Sub UserForm_Initialize()
temps_de_repos.AddItem "0"
temps_de_repos.AddItem "1"
temps_de_repos.AddItem "2"
Me.temps_de_repos = "0"
Me.total_heure_de_repas = "0.00"
End Sub
Private Sub heure_de_repas_Click()
If Me.heure_de_repas Then
Me.total_heure_de_repas = "1.00"
End If
If Not Me.heure_de_repas Then
Me.total_heure_de_repas = "0.00"
End If
End Sub
Private Sub temps_de_repos_Change()
If Me.temps_de_repos = 0 Then
Me.total_temps_de_repos = "00.00"
End If
If Me.temps_de_repos = 1 Then
Me.total_temps_de_repos = "0.10"
End If
If Me.temps_de_repos = 2 Then
Me.total_temps_de_repos = "0.20"
End If
End Sub
Private Sub total_heure_de_repas_Change()
Calcul_2
End Sub
Private Sub total_temps_de_repos_Change()
Calcul_2
End Sub
Private Sub Heure_debut_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsDate(Me.heure_debut) Then
MsgBox "Erreur saisie!"
Cancel = True
End If
End Sub
Private Sub heure_debut_Change()
Calcul
End Sub
Private Sub heure_fin_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsDate(Me.heure_fin) Then
MsgBox "Erreur saisie!"
Cancel = True
End If
End Sub
Private Sub heure_fin_Change()
Calcul
End Sub
Sub Calcul()
If IsDate(Me.heure_debut) And IsDate(Me.heure_fin) Then
Me.sous_total = Format(((CDate(Me.heure_debut)) * 24 * 60 -
CDate(Me.heure_fin) * 24 * 60) / (24 * 60), "hh:mm")
End If
End Sub
Sub Calcul_2()
If IsDate(Me.sous_total) And IsDate(Me.total_heure_de_repas) And
IsDate(Me.total_temps_de_repos) Then
Me.Total_heures_travaillées = Format(((CDate(Me.sous_total)) * 24 * 60 -
CDate(Me.total_temps_de_repos) * 24 * 60 - CDate(Me.total_heure_de_repas) *
24 * 60) / (24 * 60), "hh:mm")
End If
End Sub
....suite, précision
dans l'exemple j'ai pris un calcul quelconque et
utilisé val et n'ai pas mis de format de cellule
Il est bien évident que selon ton propre calcul et le type de données
utilisées cela restera à adapter, sachant qu'un textbox contient du
texte et que pour le calcul il faudra sans doute convertir comme le
suggère Anonymous et aussi , penser que la cellule envisage la donnée en
standard selon ce qui sort de vba. Il peut donc être nécessaire de
forcer un format de cellule après rstitution de la donnée.
Il conviendra également de s'assurer que les textbox sont remplis avant
d'autoriser la commande.
Cdlt.
lSteph
Re,
Qu'estce qui ne fonctionne pas?
Lorsque tu DblClicque dans la colonne A
le userform calcul_heure doit apparaître, si tant est
que le .Name ainsi défini respecte la casse et
que ce userform appartient bien au classeur.
Sinon mets un lien ici
après avoir posé l'exemple là http://cjoint.com
Cordialement.
lSteph
j'ai donc entre ce code dans mon userform:
Private Sub B_Validation_Click()
Calcul_2
ActiveCell = Format(CDate(Me.Total_heures_travaillées))
Unload Me
End Sub
et cela fonctionne
mais j'ai un soucis pour faire apparaitre mon userform
j'ai rentre ce code dans ma feuille
Private Sub Worksheet_BeforeDoubleClick(ByVal _
Target As Range, Cancel As Boolean)
If Target.Column = 1 Then calcul_heure.Show
End Sub
(calcul_heure étant le nom de mon userform)mais cela ne fonctionne pas
merci bcp pour votre implication
je vais essayer de suivre vos conseils
pour information je vous livre le code de mon userform
Private Sub UserForm_Initialize()
temps_de_repos.AddItem "0"
temps_de_repos.AddItem "1"
temps_de_repos.AddItem "2"
Me.temps_de_repos = "0"
Me.total_heure_de_repas = "0.00"
End Sub
Private Sub heure_de_repas_Click()
If Me.heure_de_repas Then
Me.total_heure_de_repas = "1.00"
End If
If Not Me.heure_de_repas Then
Me.total_heure_de_repas = "0.00"
End If
End Sub
Private Sub temps_de_repos_Change()
If Me.temps_de_repos = 0 Then
Me.total_temps_de_repos = "00.00"
End If
If Me.temps_de_repos = 1 Then
Me.total_temps_de_repos = "0.10"
End If
If Me.temps_de_repos = 2 Then
Me.total_temps_de_repos = "0.20"
End If
End Sub
Private Sub total_heure_de_repas_Change()
Calcul_2
End Sub
Private Sub total_temps_de_repos_Change()
Calcul_2
End Sub
Private Sub Heure_debut_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsDate(Me.heure_debut) Then
MsgBox "Erreur saisie!"
Cancel = True
End If
End Sub
Private Sub heure_debut_Change()
Calcul
End Sub
Private Sub heure_fin_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsDate(Me.heure_fin) Then
MsgBox "Erreur saisie!"
Cancel = True
End If
End Sub
Private Sub heure_fin_Change()
Calcul
End Sub
Sub Calcul()
If IsDate(Me.heure_debut) And IsDate(Me.heure_fin) Then
Me.sous_total = Format(((CDate(Me.heure_debut)) * 24 * 60 -
CDate(Me.heure_fin) * 24 * 60) / (24 * 60), "hh:mm")
End If
End Sub
Sub Calcul_2()
If IsDate(Me.sous_total) And IsDate(Me.total_heure_de_repas) And
IsDate(Me.total_temps_de_repos) Then
Me.Total_heures_travaillées = Format(((CDate(Me.sous_total)) * 24 * 60 -
CDate(Me.total_temps_de_repos) * 24 * 60 - CDate(Me.total_heure_de_repas) *
24 * 60) / (24 * 60), "hh:mm")
End If
End Sub
....suite, précision
dans l'exemple j'ai pris un calcul quelconque et
utilisé val et n'ai pas mis de format de cellule
Il est bien évident que selon ton propre calcul et le type de données
utilisées cela restera à adapter, sachant qu'un textbox contient du
texte et que pour le calcul il faudra sans doute convertir comme le
suggère Anonymous et aussi , penser que la cellule envisage la donnée en
standard selon ce qui sort de vba. Il peut donc être nécessaire de
forcer un format de cellule après rstitution de la donnée.
Il conviendra également de s'assurer que les textbox sont remplis avant
d'autoriser la commande.
Cdlt.
lSteph
Re,
Qu'estce qui ne fonctionne pas?
Lorsque tu DblClicque dans la colonne A
le userform calcul_heure doit apparaître, si tant est
que le .Name ainsi défini respecte la casse et
que ce userform appartient bien au classeur.
Sinon mets un lien ici
après avoir posé l'exemple là http://cjoint.com
Cordialement.
lStephj'ai donc entre ce code dans mon userform:
Private Sub B_Validation_Click()
Calcul_2
ActiveCell = Format(CDate(Me.Total_heures_travaillées))
Unload Me
End Sub
et cela fonctionne
mais j'ai un soucis pour faire apparaitre mon userform
j'ai rentre ce code dans ma feuille
Private Sub Worksheet_BeforeDoubleClick(ByVal _
Target As Range, Cancel As Boolean)
If Target.Column = 1 Then calcul_heure.Show
End Sub
(calcul_heure étant le nom de mon userform)mais cela ne fonctionne pasmerci bcp pour votre implication
je vais essayer de suivre vos conseils
pour information je vous livre le code de mon userform
Private Sub UserForm_Initialize()
temps_de_repos.AddItem "0"
temps_de_repos.AddItem "1"
temps_de_repos.AddItem "2"
Me.temps_de_repos = "0"
Me.total_heure_de_repas = "0.00"
End Sub
Private Sub heure_de_repas_Click()
If Me.heure_de_repas Then
Me.total_heure_de_repas = "1.00"
End If
If Not Me.heure_de_repas Then
Me.total_heure_de_repas = "0.00"
End If
End Sub
Private Sub temps_de_repos_Change()
If Me.temps_de_repos = 0 Then
Me.total_temps_de_repos = "00.00"
End If
If Me.temps_de_repos = 1 Then
Me.total_temps_de_repos = "0.10"
End If
If Me.temps_de_repos = 2 Then
Me.total_temps_de_repos = "0.20"
End If
End Sub
Private Sub total_heure_de_repas_Change()
Calcul_2
End Sub
Private Sub total_temps_de_repos_Change()
Calcul_2
End Sub
Private Sub Heure_debut_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsDate(Me.heure_debut) Then
MsgBox "Erreur saisie!"
Cancel = True
End If
End Sub
Private Sub heure_debut_Change()
Calcul
End Sub
Private Sub heure_fin_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsDate(Me.heure_fin) Then
MsgBox "Erreur saisie!"
Cancel = True
End If
End Sub
Private Sub heure_fin_Change()
Calcul
End Sub
Sub Calcul()
If IsDate(Me.heure_debut) And IsDate(Me.heure_fin) Then
Me.sous_total = Format(((CDate(Me.heure_debut)) * 24 * 60 -
CDate(Me.heure_fin) * 24 * 60) / (24 * 60), "hh:mm")
End If
End Sub
Sub Calcul_2()
If IsDate(Me.sous_total) And IsDate(Me.total_heure_de_repas) And
IsDate(Me.total_temps_de_repos) Then
Me.Total_heures_travaillées = Format(((CDate(Me.sous_total)) * 24 * 60 -
CDate(Me.total_temps_de_repos) * 24 * 60 - CDate(Me.total_heure_de_repas) *
24 * 60) / (24 * 60), "hh:mm")
End If
End Sub
....suite, précision
dans l'exemple j'ai pris un calcul quelconque et
utilisé val et n'ai pas mis de format de cellule
Il est bien évident que selon ton propre calcul et le type de données
utilisées cela restera à adapter, sachant qu'un textbox contient du
texte et que pour le calcul il faudra sans doute convertir comme le
suggère Anonymous et aussi , penser que la cellule envisage la donnée en
standard selon ce qui sort de vba. Il peut donc être nécessaire de
forcer un format de cellule après rstitution de la donnée.
Il conviendra également de s'assurer que les textbox sont remplis avant
d'autoriser la commande.
Cdlt.
lSteph
en effet cela fonctionne tres bien mais , oui il y a un ...!j'ai plusieurs
colonnes ou je voudrais que l'userform apparaisse. 4 exactement .en AE / AT
/ BO et CK
comment modifier le code
encore un grand merci à vousRe,
Qu'estce qui ne fonctionne pas?
Lorsque tu DblClicque dans la colonne A
le userform calcul_heure doit apparaître, si tant est
que le .Name ainsi défini respecte la casse et
que ce userform appartient bien au classeur.
Sinon mets un lien ici
après avoir posé l'exemple là http://cjoint.com
Cordialement.
lStephj'ai donc entre ce code dans mon userform:
Private Sub B_Validation_Click()
Calcul_2
ActiveCell = Format(CDate(Me.Total_heures_travaillées))
Unload Me
End Sub
et cela fonctionne
mais j'ai un soucis pour faire apparaitre mon userform
j'ai rentre ce code dans ma feuille
Private Sub Worksheet_BeforeDoubleClick(ByVal _
Target As Range, Cancel As Boolean)
If Target.Column = 1 Then calcul_heure.Show
End Sub
(calcul_heure étant le nom de mon userform)mais cela ne fonctionne pasmerci bcp pour votre implication
je vais essayer de suivre vos conseils
pour information je vous livre le code de mon userform
Private Sub UserForm_Initialize()
temps_de_repos.AddItem "0"
temps_de_repos.AddItem "1"
temps_de_repos.AddItem "2"
Me.temps_de_repos = "0"
Me.total_heure_de_repas = "0.00"
End Sub
Private Sub heure_de_repas_Click()
If Me.heure_de_repas Then
Me.total_heure_de_repas = "1.00"
End If
If Not Me.heure_de_repas Then
Me.total_heure_de_repas = "0.00"
End If
End Sub
Private Sub temps_de_repos_Change()
If Me.temps_de_repos = 0 Then
Me.total_temps_de_repos = "00.00"
End If
If Me.temps_de_repos = 1 Then
Me.total_temps_de_repos = "0.10"
End If
If Me.temps_de_repos = 2 Then
Me.total_temps_de_repos = "0.20"
End If
End Sub
Private Sub total_heure_de_repas_Change()
Calcul_2
End Sub
Private Sub total_temps_de_repos_Change()
Calcul_2
End Sub
Private Sub Heure_debut_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsDate(Me.heure_debut) Then
MsgBox "Erreur saisie!"
Cancel = True
End If
End Sub
Private Sub heure_debut_Change()
Calcul
End Sub
Private Sub heure_fin_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsDate(Me.heure_fin) Then
MsgBox "Erreur saisie!"
Cancel = True
End If
End Sub
Private Sub heure_fin_Change()
Calcul
End Sub
Sub Calcul()
If IsDate(Me.heure_debut) And IsDate(Me.heure_fin) Then
Me.sous_total = Format(((CDate(Me.heure_debut)) * 24 * 60 -
CDate(Me.heure_fin) * 24 * 60) / (24 * 60), "hh:mm")
End If
End Sub
Sub Calcul_2()
If IsDate(Me.sous_total) And IsDate(Me.total_heure_de_repas) And
IsDate(Me.total_temps_de_repos) Then
Me.Total_heures_travaillées = Format(((CDate(Me.sous_total)) * 24 * 60 -
CDate(Me.total_temps_de_repos) * 24 * 60 - CDate(Me.total_heure_de_repas) *
24 * 60) / (24 * 60), "hh:mm")
End If
End Sub....suite, précision
dans l'exemple j'ai pris un calcul quelconque et
utilisé val et n'ai pas mis de format de cellule
Il est bien évident que selon ton propre calcul et le type de données
utilisées cela restera à adapter, sachant qu'un textbox contient du
texte et que pour le calcul il faudra sans doute convertir comme le
suggère Anonymous et aussi , penser que la cellule envisage la donnée en
standard selon ce qui sort de vba. Il peut donc être nécessaire de
forcer un format de cellule après rstitution de la donnée.
Il conviendra également de s'assurer que les textbox sont remplis avant
d'autoriser la commande.
Cdlt.
lSteph
en effet cela fonctionne tres bien mais , oui il y a un ...!j'ai plusieurs
colonnes ou je voudrais que l'userform apparaisse. 4 exactement .en AE / AT
/ BO et CK
comment modifier le code
encore un grand merci à vous
Re,
Qu'estce qui ne fonctionne pas?
Lorsque tu DblClicque dans la colonne A
le userform calcul_heure doit apparaître, si tant est
que le .Name ainsi défini respecte la casse et
que ce userform appartient bien au classeur.
Sinon mets un lien ici
après avoir posé l'exemple là http://cjoint.com
Cordialement.
lSteph
j'ai donc entre ce code dans mon userform:
Private Sub B_Validation_Click()
Calcul_2
ActiveCell = Format(CDate(Me.Total_heures_travaillées))
Unload Me
End Sub
et cela fonctionne
mais j'ai un soucis pour faire apparaitre mon userform
j'ai rentre ce code dans ma feuille
Private Sub Worksheet_BeforeDoubleClick(ByVal _
Target As Range, Cancel As Boolean)
If Target.Column = 1 Then calcul_heure.Show
End Sub
(calcul_heure étant le nom de mon userform)mais cela ne fonctionne pas
merci bcp pour votre implication
je vais essayer de suivre vos conseils
pour information je vous livre le code de mon userform
Private Sub UserForm_Initialize()
temps_de_repos.AddItem "0"
temps_de_repos.AddItem "1"
temps_de_repos.AddItem "2"
Me.temps_de_repos = "0"
Me.total_heure_de_repas = "0.00"
End Sub
Private Sub heure_de_repas_Click()
If Me.heure_de_repas Then
Me.total_heure_de_repas = "1.00"
End If
If Not Me.heure_de_repas Then
Me.total_heure_de_repas = "0.00"
End If
End Sub
Private Sub temps_de_repos_Change()
If Me.temps_de_repos = 0 Then
Me.total_temps_de_repos = "00.00"
End If
If Me.temps_de_repos = 1 Then
Me.total_temps_de_repos = "0.10"
End If
If Me.temps_de_repos = 2 Then
Me.total_temps_de_repos = "0.20"
End If
End Sub
Private Sub total_heure_de_repas_Change()
Calcul_2
End Sub
Private Sub total_temps_de_repos_Change()
Calcul_2
End Sub
Private Sub Heure_debut_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsDate(Me.heure_debut) Then
MsgBox "Erreur saisie!"
Cancel = True
End If
End Sub
Private Sub heure_debut_Change()
Calcul
End Sub
Private Sub heure_fin_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsDate(Me.heure_fin) Then
MsgBox "Erreur saisie!"
Cancel = True
End If
End Sub
Private Sub heure_fin_Change()
Calcul
End Sub
Sub Calcul()
If IsDate(Me.heure_debut) And IsDate(Me.heure_fin) Then
Me.sous_total = Format(((CDate(Me.heure_debut)) * 24 * 60 -
CDate(Me.heure_fin) * 24 * 60) / (24 * 60), "hh:mm")
End If
End Sub
Sub Calcul_2()
If IsDate(Me.sous_total) And IsDate(Me.total_heure_de_repas) And
IsDate(Me.total_temps_de_repos) Then
Me.Total_heures_travaillées = Format(((CDate(Me.sous_total)) * 24 * 60 -
CDate(Me.total_temps_de_repos) * 24 * 60 - CDate(Me.total_heure_de_repas) *
24 * 60) / (24 * 60), "hh:mm")
End If
End Sub
....suite, précision
dans l'exemple j'ai pris un calcul quelconque et
utilisé val et n'ai pas mis de format de cellule
Il est bien évident que selon ton propre calcul et le type de données
utilisées cela restera à adapter, sachant qu'un textbox contient du
texte et que pour le calcul il faudra sans doute convertir comme le
suggère Anonymous et aussi , penser que la cellule envisage la donnée en
standard selon ce qui sort de vba. Il peut donc être nécessaire de
forcer un format de cellule après rstitution de la donnée.
Il conviendra également de s'assurer que les textbox sont remplis avant
d'autoriser la commande.
Cdlt.
lSteph
en effet cela fonctionne tres bien mais , oui il y a un ...!j'ai plusieurs
colonnes ou je voudrais que l'userform apparaisse. 4 exactement .en AE / AT
/ BO et CK
comment modifier le code
encore un grand merci à vousRe,
Qu'estce qui ne fonctionne pas?
Lorsque tu DblClicque dans la colonne A
le userform calcul_heure doit apparaître, si tant est
que le .Name ainsi défini respecte la casse et
que ce userform appartient bien au classeur.
Sinon mets un lien ici
après avoir posé l'exemple là http://cjoint.com
Cordialement.
lStephj'ai donc entre ce code dans mon userform:
Private Sub B_Validation_Click()
Calcul_2
ActiveCell = Format(CDate(Me.Total_heures_travaillées))
Unload Me
End Sub
et cela fonctionne
mais j'ai un soucis pour faire apparaitre mon userform
j'ai rentre ce code dans ma feuille
Private Sub Worksheet_BeforeDoubleClick(ByVal _
Target As Range, Cancel As Boolean)
If Target.Column = 1 Then calcul_heure.Show
End Sub
(calcul_heure étant le nom de mon userform)mais cela ne fonctionne pasmerci bcp pour votre implication
je vais essayer de suivre vos conseils
pour information je vous livre le code de mon userform
Private Sub UserForm_Initialize()
temps_de_repos.AddItem "0"
temps_de_repos.AddItem "1"
temps_de_repos.AddItem "2"
Me.temps_de_repos = "0"
Me.total_heure_de_repas = "0.00"
End Sub
Private Sub heure_de_repas_Click()
If Me.heure_de_repas Then
Me.total_heure_de_repas = "1.00"
End If
If Not Me.heure_de_repas Then
Me.total_heure_de_repas = "0.00"
End If
End Sub
Private Sub temps_de_repos_Change()
If Me.temps_de_repos = 0 Then
Me.total_temps_de_repos = "00.00"
End If
If Me.temps_de_repos = 1 Then
Me.total_temps_de_repos = "0.10"
End If
If Me.temps_de_repos = 2 Then
Me.total_temps_de_repos = "0.20"
End If
End Sub
Private Sub total_heure_de_repas_Change()
Calcul_2
End Sub
Private Sub total_temps_de_repos_Change()
Calcul_2
End Sub
Private Sub Heure_debut_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsDate(Me.heure_debut) Then
MsgBox "Erreur saisie!"
Cancel = True
End If
End Sub
Private Sub heure_debut_Change()
Calcul
End Sub
Private Sub heure_fin_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsDate(Me.heure_fin) Then
MsgBox "Erreur saisie!"
Cancel = True
End If
End Sub
Private Sub heure_fin_Change()
Calcul
End Sub
Sub Calcul()
If IsDate(Me.heure_debut) And IsDate(Me.heure_fin) Then
Me.sous_total = Format(((CDate(Me.heure_debut)) * 24 * 60 -
CDate(Me.heure_fin) * 24 * 60) / (24 * 60), "hh:mm")
End If
End Sub
Sub Calcul_2()
If IsDate(Me.sous_total) And IsDate(Me.total_heure_de_repas) And
IsDate(Me.total_temps_de_repos) Then
Me.Total_heures_travaillées = Format(((CDate(Me.sous_total)) * 24 * 60 -
CDate(Me.total_temps_de_repos) * 24 * 60 - CDate(Me.total_heure_de_repas) *
24 * 60) / (24 * 60), "hh:mm")
End If
End Sub....suite, précision
dans l'exemple j'ai pris un calcul quelconque et
utilisé val et n'ai pas mis de format de cellule
Il est bien évident que selon ton propre calcul et le type de données
utilisées cela restera à adapter, sachant qu'un textbox contient du
texte et que pour le calcul il faudra sans doute convertir comme le
suggère Anonymous et aussi , penser que la cellule envisage la donnée en
standard selon ce qui sort de vba. Il peut donc être nécessaire de
forcer un format de cellule après rstitution de la donnée.
Il conviendra également de s'assurer que les textbox sont remplis avant
d'autoriser la commande.
Cdlt.
lSteph
Bonsoir,
Il faut indiquer les numéros de colonne, pour simplifier
remplacer le if target.column=1 par un select case
Private Sub Worksheet_BeforeDoubleClick(ByVal _
Target As Range, Cancel As Boolean)
Select Case Target.Column
Case 31, 46, 67, 89
UserForm1.Show
End Select
End Sub
'@bientôt.
'lStephen effet cela fonctionne tres bien mais , oui il y a un ...!j'ai plusieurs
colonnes ou je voudrais que l'userform apparaisse. 4 exactement .en AE / AT
/ BO et CK
comment modifier le code
encore un grand merci à vousRe,
Qu'estce qui ne fonctionne pas?
Lorsque tu DblClicque dans la colonne A
le userform calcul_heure doit apparaître, si tant est
que le .Name ainsi défini respecte la casse et
que ce userform appartient bien au classeur.
Sinon mets un lien ici
après avoir posé l'exemple là http://cjoint.com
Cordialement.
lStephj'ai donc entre ce code dans mon userform:
Private Sub B_Validation_Click()
Calcul_2
ActiveCell = Format(CDate(Me.Total_heures_travaillées))
Unload Me
End Sub
et cela fonctionne
mais j'ai un soucis pour faire apparaitre mon userform
j'ai rentre ce code dans ma feuille
Private Sub Worksheet_BeforeDoubleClick(ByVal _
Target As Range, Cancel As Boolean)
If Target.Column = 1 Then calcul_heure.Show
End Sub
(calcul_heure étant le nom de mon userform)mais cela ne fonctionne pasmerci bcp pour votre implication
je vais essayer de suivre vos conseils
pour information je vous livre le code de mon userform
Private Sub UserForm_Initialize()
temps_de_repos.AddItem "0"
temps_de_repos.AddItem "1"
temps_de_repos.AddItem "2"
Me.temps_de_repos = "0"
Me.total_heure_de_repas = "0.00"
End Sub
Private Sub heure_de_repas_Click()
If Me.heure_de_repas Then
Me.total_heure_de_repas = "1.00"
End If
If Not Me.heure_de_repas Then
Me.total_heure_de_repas = "0.00"
End If
End Sub
Private Sub temps_de_repos_Change()
If Me.temps_de_repos = 0 Then
Me.total_temps_de_repos = "00.00"
End If
If Me.temps_de_repos = 1 Then
Me.total_temps_de_repos = "0.10"
End If
If Me.temps_de_repos = 2 Then
Me.total_temps_de_repos = "0.20"
End If
End Sub
Private Sub total_heure_de_repas_Change()
Calcul_2
End Sub
Private Sub total_temps_de_repos_Change()
Calcul_2
End Sub
Private Sub Heure_debut_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsDate(Me.heure_debut) Then
MsgBox "Erreur saisie!"
Cancel = True
End If
End Sub
Private Sub heure_debut_Change()
Calcul
End Sub
Private Sub heure_fin_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsDate(Me.heure_fin) Then
MsgBox "Erreur saisie!"
Cancel = True
End If
End Sub
Private Sub heure_fin_Change()
Calcul
End Sub
Sub Calcul()
If IsDate(Me.heure_debut) And IsDate(Me.heure_fin) Then
Me.sous_total = Format(((CDate(Me.heure_debut)) * 24 * 60 -
CDate(Me.heure_fin) * 24 * 60) / (24 * 60), "hh:mm")
End If
End Sub
Sub Calcul_2()
If IsDate(Me.sous_total) And IsDate(Me.total_heure_de_repas) And
IsDate(Me.total_temps_de_repos) Then
Me.Total_heures_travaillées = Format(((CDate(Me.sous_total)) * 24 * 60 -
CDate(Me.total_temps_de_repos) * 24 * 60 - CDate(Me.total_heure_de_repas) *
24 * 60) / (24 * 60), "hh:mm")
End If
End Sub....suite, précision
dans l'exemple j'ai pris un calcul quelconque et
utilisé val et n'ai pas mis de format de cellule
Il est bien évident que selon ton propre calcul et le type de données
utilisées cela restera à adapter, sachant qu'un textbox contient du
texte et que pour le calcul il faudra sans doute convertir comme le
suggère Anonymous et aussi , penser que la cellule envisage la donnée en
standard selon ce qui sort de vba. Il peut donc être nécessaire de
forcer un format de cellule après rstitution de la donnée.
Il conviendra également de s'assurer que les textbox sont remplis avant
d'autoriser la commande.
Cdlt.
lSteph
Bonsoir,
Il faut indiquer les numéros de colonne, pour simplifier
remplacer le if target.column=1 par un select case
Private Sub Worksheet_BeforeDoubleClick(ByVal _
Target As Range, Cancel As Boolean)
Select Case Target.Column
Case 31, 46, 67, 89
UserForm1.Show
End Select
End Sub
'@bientôt.
'lSteph
en effet cela fonctionne tres bien mais , oui il y a un ...!j'ai plusieurs
colonnes ou je voudrais que l'userform apparaisse. 4 exactement .en AE / AT
/ BO et CK
comment modifier le code
encore un grand merci à vous
Re,
Qu'estce qui ne fonctionne pas?
Lorsque tu DblClicque dans la colonne A
le userform calcul_heure doit apparaître, si tant est
que le .Name ainsi défini respecte la casse et
que ce userform appartient bien au classeur.
Sinon mets un lien ici
après avoir posé l'exemple là http://cjoint.com
Cordialement.
lSteph
j'ai donc entre ce code dans mon userform:
Private Sub B_Validation_Click()
Calcul_2
ActiveCell = Format(CDate(Me.Total_heures_travaillées))
Unload Me
End Sub
et cela fonctionne
mais j'ai un soucis pour faire apparaitre mon userform
j'ai rentre ce code dans ma feuille
Private Sub Worksheet_BeforeDoubleClick(ByVal _
Target As Range, Cancel As Boolean)
If Target.Column = 1 Then calcul_heure.Show
End Sub
(calcul_heure étant le nom de mon userform)mais cela ne fonctionne pas
merci bcp pour votre implication
je vais essayer de suivre vos conseils
pour information je vous livre le code de mon userform
Private Sub UserForm_Initialize()
temps_de_repos.AddItem "0"
temps_de_repos.AddItem "1"
temps_de_repos.AddItem "2"
Me.temps_de_repos = "0"
Me.total_heure_de_repas = "0.00"
End Sub
Private Sub heure_de_repas_Click()
If Me.heure_de_repas Then
Me.total_heure_de_repas = "1.00"
End If
If Not Me.heure_de_repas Then
Me.total_heure_de_repas = "0.00"
End If
End Sub
Private Sub temps_de_repos_Change()
If Me.temps_de_repos = 0 Then
Me.total_temps_de_repos = "00.00"
End If
If Me.temps_de_repos = 1 Then
Me.total_temps_de_repos = "0.10"
End If
If Me.temps_de_repos = 2 Then
Me.total_temps_de_repos = "0.20"
End If
End Sub
Private Sub total_heure_de_repas_Change()
Calcul_2
End Sub
Private Sub total_temps_de_repos_Change()
Calcul_2
End Sub
Private Sub Heure_debut_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsDate(Me.heure_debut) Then
MsgBox "Erreur saisie!"
Cancel = True
End If
End Sub
Private Sub heure_debut_Change()
Calcul
End Sub
Private Sub heure_fin_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsDate(Me.heure_fin) Then
MsgBox "Erreur saisie!"
Cancel = True
End If
End Sub
Private Sub heure_fin_Change()
Calcul
End Sub
Sub Calcul()
If IsDate(Me.heure_debut) And IsDate(Me.heure_fin) Then
Me.sous_total = Format(((CDate(Me.heure_debut)) * 24 * 60 -
CDate(Me.heure_fin) * 24 * 60) / (24 * 60), "hh:mm")
End If
End Sub
Sub Calcul_2()
If IsDate(Me.sous_total) And IsDate(Me.total_heure_de_repas) And
IsDate(Me.total_temps_de_repos) Then
Me.Total_heures_travaillées = Format(((CDate(Me.sous_total)) * 24 * 60 -
CDate(Me.total_temps_de_repos) * 24 * 60 - CDate(Me.total_heure_de_repas) *
24 * 60) / (24 * 60), "hh:mm")
End If
End Sub
....suite, précision
dans l'exemple j'ai pris un calcul quelconque et
utilisé val et n'ai pas mis de format de cellule
Il est bien évident que selon ton propre calcul et le type de données
utilisées cela restera à adapter, sachant qu'un textbox contient du
texte et que pour le calcul il faudra sans doute convertir comme le
suggère Anonymous et aussi , penser que la cellule envisage la donnée en
standard selon ce qui sort de vba. Il peut donc être nécessaire de
forcer un format de cellule après rstitution de la donnée.
Il conviendra également de s'assurer que les textbox sont remplis avant
d'autoriser la commande.
Cdlt.
lSteph
Bonsoir,
Il faut indiquer les numéros de colonne, pour simplifier
remplacer le if target.column=1 par un select case
Private Sub Worksheet_BeforeDoubleClick(ByVal _
Target As Range, Cancel As Boolean)
Select Case Target.Column
Case 31, 46, 67, 89
UserForm1.Show
End Select
End Sub
'@bientôt.
'lStephen effet cela fonctionne tres bien mais , oui il y a un ...!j'ai plusieurs
colonnes ou je voudrais que l'userform apparaisse. 4 exactement .en AE / AT
/ BO et CK
comment modifier le code
encore un grand merci à vousRe,
Qu'estce qui ne fonctionne pas?
Lorsque tu DblClicque dans la colonne A
le userform calcul_heure doit apparaître, si tant est
que le .Name ainsi défini respecte la casse et
que ce userform appartient bien au classeur.
Sinon mets un lien ici
après avoir posé l'exemple là http://cjoint.com
Cordialement.
lStephj'ai donc entre ce code dans mon userform:
Private Sub B_Validation_Click()
Calcul_2
ActiveCell = Format(CDate(Me.Total_heures_travaillées))
Unload Me
End Sub
et cela fonctionne
mais j'ai un soucis pour faire apparaitre mon userform
j'ai rentre ce code dans ma feuille
Private Sub Worksheet_BeforeDoubleClick(ByVal _
Target As Range, Cancel As Boolean)
If Target.Column = 1 Then calcul_heure.Show
End Sub
(calcul_heure étant le nom de mon userform)mais cela ne fonctionne pasmerci bcp pour votre implication
je vais essayer de suivre vos conseils
pour information je vous livre le code de mon userform
Private Sub UserForm_Initialize()
temps_de_repos.AddItem "0"
temps_de_repos.AddItem "1"
temps_de_repos.AddItem "2"
Me.temps_de_repos = "0"
Me.total_heure_de_repas = "0.00"
End Sub
Private Sub heure_de_repas_Click()
If Me.heure_de_repas Then
Me.total_heure_de_repas = "1.00"
End If
If Not Me.heure_de_repas Then
Me.total_heure_de_repas = "0.00"
End If
End Sub
Private Sub temps_de_repos_Change()
If Me.temps_de_repos = 0 Then
Me.total_temps_de_repos = "00.00"
End If
If Me.temps_de_repos = 1 Then
Me.total_temps_de_repos = "0.10"
End If
If Me.temps_de_repos = 2 Then
Me.total_temps_de_repos = "0.20"
End If
End Sub
Private Sub total_heure_de_repas_Change()
Calcul_2
End Sub
Private Sub total_temps_de_repos_Change()
Calcul_2
End Sub
Private Sub Heure_debut_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsDate(Me.heure_debut) Then
MsgBox "Erreur saisie!"
Cancel = True
End If
End Sub
Private Sub heure_debut_Change()
Calcul
End Sub
Private Sub heure_fin_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsDate(Me.heure_fin) Then
MsgBox "Erreur saisie!"
Cancel = True
End If
End Sub
Private Sub heure_fin_Change()
Calcul
End Sub
Sub Calcul()
If IsDate(Me.heure_debut) And IsDate(Me.heure_fin) Then
Me.sous_total = Format(((CDate(Me.heure_debut)) * 24 * 60 -
CDate(Me.heure_fin) * 24 * 60) / (24 * 60), "hh:mm")
End If
End Sub
Sub Calcul_2()
If IsDate(Me.sous_total) And IsDate(Me.total_heure_de_repas) And
IsDate(Me.total_temps_de_repos) Then
Me.Total_heures_travaillées = Format(((CDate(Me.sous_total)) * 24 * 60 -
CDate(Me.total_temps_de_repos) * 24 * 60 - CDate(Me.total_heure_de_repas) *
24 * 60) / (24 * 60), "hh:mm")
End If
End Sub....suite, précision
dans l'exemple j'ai pris un calcul quelconque et
utilisé val et n'ai pas mis de format de cellule
Il est bien évident que selon ton propre calcul et le type de données
utilisées cela restera à adapter, sachant qu'un textbox contient du
texte et que pour le calcul il faudra sans doute convertir comme le
suggère Anonymous et aussi , penser que la cellule envisage la donnée en
standard selon ce qui sort de vba. Il peut donc être nécessaire de
forcer un format de cellule après rstitution de la donnée.
Il conviendra également de s'assurer que les textbox sont remplis avant
d'autoriser la commande.
Cdlt.
lSteph