• Initiateur de la discussion Initiateur de la discussion GClaire
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

GClaire

Guest
Re, a toutes et tous

Je remet un post, qui est plus ou moins lié a ce post.

<http://www.excel-downloads.com/html/French/forum/messages/1_127146_127146.htm>

J'envois la valeur minimun d'heures dans la cellule (AX31) avec le code suivant, en partie donné par @Thierry, merci a lui :

Private Sub ValiderHeuresMiniMumJours_Click()
Dim TheNum As Byte
Dim i
TheDate = Month(Date)
TheNum = CByte(Month(Date))
If HeuresMiniMumJours = "" Then
MsgBox "Veuillez entrer une durée minimum de garde !!!", vbCritical, "Erreur à la validation"
HeuresMiniMumJours.SetFocus
Exit Sub
End If

MsgBox "Les données seront modifié pour la période restante de : " & _
(Worksheets(TheNum).Name) & " à " & (Worksheets(12).Name)
For i = TheNum To 12
With Worksheets(i)
.Range("AX31") = HeuresMiniMumJours.Value
End With
Next i
Unload Me
End Sub

et pour le format du TextBox :

Private Sub HeuresMiniMumJours_Enter()
HeuresMiniMumJours = format(HeuresMiniMumJours, "#,##0.00")
End Sub

Private Sub HeuresMiniMumJours_Exit(ByVal Cancel As MSForms.ReturnBoolean)
HeuresMiniMumJours = format(HeuresMiniMumJours, "#,##0.00")
End Sub

Donc si je garde, la valeur envoyée de la sorte, les heures supplémentaires (Supérieur a 5,50) ne sont pas comptées (Sauf pour les jours sans gardes), par contre si je tape dans cette cellule manuellement la valeur 5,50, cela fonctinne.

Donc avec Jean-Marie, m'a dit que cela venais d'un problème de type (1 ou 2).

Et m'as sugérer de modifier mon code de cette manière:

.Range("AX31") = HeuresMiniMumJours.Value

par

.Range("AX31") = Val (HeuresMiniMumJours)

Chose que j'ai faite, mais le problème et que la valeur retournée dans la cellule est 5,00 pour la valeur saisie dans le TextBox 5,50

Ce que me disait Jean-Marie est que par ce code je suis obligé de saisir dans le TextBox 5.50 au lieu de 5,50, car VBA ne comprends pas le point "." (si j'ai bien compris)

Comment puis-je faire, pour remédier a cela?

Merci d'avance, G'Claire
 
Bonjour G'CLaire,

Essaye comme ça :

.Range("AX1").Value = Val(WorksheetFunction.Substitute(HeuresMiniMumJours.Value, ",", "."))

Ca te remplace la virgule saisie par un point. Comme ça VBA comprendra 5.50 même quand tu saisis 5,50

J'espère que c'est bien ce que tu cherches à faire.

A+

José
 
bonjour le Forum,
Bonjour GClaire,

voila un morceau de code donné aussi par @Thierry (merci a lui) qui régle normalement le probleme du point:

Private Sub HeuresMiniMumJours_Enter(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 44 Or KeyAscii = 46 Then
KeyAscii = Asc(Application.International(xlDecimalSeparator))
End If
End Sub

Voila j'espére que j'avais bien compris l'utilité de ce code et qu'il va d'aider.

A+
Jocelyn
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
173
Retour