IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

remplir automatiquement une case en fonction d'une valeur


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 161
    Points : 59
    Points
    59
    Par défaut remplir automatiquement une case en fonction d'une valeur
    Bonjour,

    Je réalise actuellement une base pointage qui servira aux employés à effectuer leur pointage.

    Est-il possible que quand un jour est férié (calculé automatiquement par une fonction) le nombres d'heures pointées par défaut est de 7,5.
    Sa veut dire qu'à chaque fois qu'une case est orange foncé alors le nombre d'heures se met automatiquement à 7,5.

    Merci à tous de votre aide.

  2. #2
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Bonjour,

    Tu as la réponse dans ta question.
    Puisque tu as une fonction qui te détermine si le jour courant est férié, utilises ce résultat pour appliquer la valeur que tu souhaites dans ton champ.

    Cordialement

    Christophe

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 161
    Points : 59
    Points
    59
    Par défaut
    Oui mais comment faire cela?

    Pour calculer les jours fériés, cela se passe dans un module donc comment le faire dans un formulaire?

  4. #4
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Bonjour,

    Si ton code est dans un module, il faut alors que ce soit une fonction public.

    Ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Function JourFerie() as Boolean
    Ici ton code qui analyse si jour férié
    JourFerie=retour oui ou non
    End Function
    A partir de ton formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If JourFerie=True Then
       MonChamp=Cette valeur
    Else
       MonChamp=Cette Autre Valeur
    End If
    Cordialement

    Christophe

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 161
    Points : 59
    Points
    59
    Par défaut
    Bonjour,


    VOici le code qui permet de dire si un jour est férié ou non.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    Public Function FDateUs(vDate As Date) As String
    FDateUs = "#" & Format(vDate, "mm/dd/yyyy") & "#"
    End Function
     
     
    ' Retourne le nombre de jour d'un mois donné, en utilisant Day(), DateSerial et DateAdd()
    Public Function DaysInMonth(ByVal nMonth As Integer, ByVal nYear As Integer) As Integer
        DaysInMonth = Day(DateAdd("d", -1, DateAdd("m", 1, DateSerial(nYear, nMonth, 1))))
    End Function
     
     
    Function EstFerie(ByVal QuelleDate As Date) As Boolean 'Définit les jours fériés de l'année
    Dim anneeDate As Integer
    Dim joursFeries(1 To 11) As Date
    Dim i As Integer
      anneeDate = Year(QuelleDate)
     
      joursFeries(1) = DateSerial(anneeDate, 1, 1) 'le 1 janvier
      joursFeries(2) = DateSerial(anneeDate, 5, 1) 'le 1 mai
      joursFeries(3) = DateSerial(anneeDate, 5, 8) 'le 8 mai
      joursFeries(4) = DateSerial(anneeDate, 7, 14) 'le 14 juillet
      joursFeries(5) = DateSerial(anneeDate, 8, 15) 'le 15 août
      joursFeries(6) = DateSerial(anneeDate, 11, 1) 'le 1 novembre
      joursFeries(7) = DateSerial(anneeDate, 11, 11) 'le 11 nobembre
      joursFeries(8) = DateSerial(anneeDate, 12, 25) 'le 25 décembre
     
      joursFeries(9) = fLundiPaques(anneeDate)
      joursFeries(10) = joursFeries(9) + 38 ' Ascension = lundi de Paques + 38
      joursFeries(11) = joursFeries(9) + 49 ' Lundi Pentecôte = lundi de Paques + 49
     
      For i = 1 To 11
        If QuelleDate = joursFeries(i) Then
          EstFerie = True
          Exit For
        End If
      Next
    End Function
     
    Private Function fLundiPaques(ByVal Iyear As Integer) As Date ' Calcul du jour du lundi de Pâques
     
            Dim L(6) As Long, Lj As Long, Lm As Long
     
            L(1) = Iyear Mod 19: L(2) = Iyear Mod 4: L(3) = Iyear Mod 7
            L(4) = (19 * L(1) + 24) Mod 30
            L(5) = ((2 * L(2)) + (4 * L(3)) + (6 * L(4)) + 5) Mod 7
            L(6) = 22 + L(4) + L(5)
     
            If L(6) > 31 Then
                    Lj = L(6) - 31
                    Lm = 4
            Else
                    Lj = L(6)
                    Lm = 3
            End If
     
            ' Lundi de Pâques = Paques + 1 jour
            fLundiPaques = DateAdd("d", 1, (Lj & "/" & Lm & "/" & Iyear))
     
    End Function

  6. #6
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Bonjour,

    Donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Function EstFerie(ByVal QuelleDate As Date) As Boolean 
    Dim ReturnFerie as Boolean
    ReturnFerie=False
    'Ici la suite de ton code
    'Modification ici
    For i = 1 To 11
        If QuelleDate = joursFeries(i) Then
          ReturnFerie= True
          Exit For
        End If
      Next
    EstFerie =ReturnFerie
    End Function
    Pour appeler le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If EstFerie(TaDate)=True Then
      Me.MonChamp=CetteValeur
    Else
      Me.MonChamp=CetteAutreValeur
    End If
    Cordialement

    Christophe

  7. #7
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 424
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 424
    Points : 20 002
    Points
    20 002
    Billets dans le blog
    67
    Par défaut
    Bonjour,

    Tu peux aussi appeler ta fonction EstFerie depuis ta requête analyse croisée, dans un champ calculé comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NbHeuresPointees: VraiFaux(EstFerie(SérieDate([Forms]![F_Pointage]![An];[Forms]![F_Pointage]![Mois];[Jour]));7,5;[NbHeuresPointées])
    a+

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/11/2014, 16h24
  2. [XL-2003] Remplir automatiquement une ligne en fonction d'une cellule
    Par Tonio68 dans le forum Excel
    Réponses: 8
    Dernier message: 25/03/2011, 19h51
  3. Réponses: 7
    Dernier message: 14/10/2007, 00h31
  4. Réponses: 11
    Dernier message: 10/03/2007, 03h01
  5. Réponses: 1
    Dernier message: 19/07/2006, 00h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo