Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

probleme de calcul avec des dates dans un textbox

D

dj.run

Guest
Bonjour à toutes et à tous,

je rencontre un petit probleme pour faire un calcul (avec des dates) dans un textbox.

l'exemple ci joint vous parlera plus .

merci d'avance pour votre aide .

dj.run
 

Pièces jointes

  • extraitcongespayes.zip
    20.8 KB · Affichages: 19
  • extraitcongespayes.zip
    20.8 KB · Affichages: 22
  • extraitcongespayes.zip
    20.8 KB · Affichages: 25
D

dj.run

Guest
re à tous,

Ben ma question n'a pas inspiré grand monde, pourtant je pensais que des pros des usfs allaient se jetter dessus.

Ai je mal formulé ma requette ?

C'est pas grave, je vais continuer à chercher . Et puis vous m'avez deja beaucoup aidé à ce jour . Je vais peut etre revoir mon projet pour faire plus simple .

Un grand Merci à tous, au forum, et à DAVIDXLD pour son forum.

dj.run
 
Z

ZON

Guest
Bonjour à tous,


dj.run voici 2 fonctions que j'avais trouvées y a quelques temps sur le site de Frederic Sigonneau à mettre dans un module:
'source FS
Public Function NbOuvrés&(D1, D2)
Dim Prem As Date, Der As Date, i As Date
If D1 = D2 Then
Prem = D1
If TYPEJOUR(Prem) = 0 Then NbOuvrés = 1
Exit Function
End If
Select Case D1 < D2
Case True: Prem = D1: Der = D2
Case False: Prem = D2: Der = D1
End Select
For i = Prem To Der
NbOuvrés = NbOuvrés + (TYPEJOUR(i) = 0) * -1
Next i
End Function


'Cette fonction renvoie 0 si le jour passé en paramètre est un jour de semaine et le samedi dans le cas de Dj.run ,
'1 d'un dimanche et 2 s'il s'agit d'un jour férié.
'Valide jusqu'en 2099 et pour les jours fériés français
Public Function TYPEJOUR(D As Date)
'L. Longre
Dim A As Integer, T As Integer
Dim LP As Date, LD As Long
Dim Toto As Long

A = Year(D)
If A > 2099 Then
TYPEJOUR = CVErr(xlErrValue)
Exit Function
End If
LD = Int(D)
If LD <= 2 Then
If LD = 1 Then TYPEJOUR = 2
Exit Function
End If
T = (((255 - 11 * (A Mod 19)) - 21) Mod 30) + 21
LP = DateSerial(A, 3, 2) + T + (T > 48) _
+ 6 - ((A + A \ 4 + T + (T > 48) + 1) Mod 7)
Select Case D
' Jours fériés mobiles
Case Is = LP, Is = LP + 38, Is = LP + 49
TYPEJOUR = 2
' Jours fériés fixes
Case Is = DateSerial(A, 1, 1), Is = DateSerial(A, 5, 1), _
Is = DateSerial(A, 5, 8), Is = DateSerial(A, 7, 14), _
Is = DateSerial(A, 8, 15), Is = DateSerial(A, 11, 1), _
Is = DateSerial(A, 11, 11), Is = DateSerial(A, 12, 25)
TYPEJOUR = 2
Case Else
' dimanche
If Weekday(D, vbMonday) = 7 Then TYPEJOUR = 1
'Samedi et Diamche If Weekday(D, vbMonday) >= 6 Then TYPEJOUR = 1

End Select

End Function


Dans ton code tu peux l'appeler ainsi dans l'évènement exit de demande1au par ex ( même dans les 2 exit de demande1au et du)

Private Sub demande1au_Exit(ByVal Cancel As MSForms.ReturnBoolean)
On Error Resume Next
nbj1 = NbOuvrés(demande1au, demande1du)
End Sub

A+++
 
D

dj.run

Guest
Bonjour à toutes et à tous,

merci Zon pour ces 2 codes, je vais les essayer et je vous tiendrai au courant.

j'ai du travail pour le week end .



merci encore

@+dj.run
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…