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 :

cocher automatiquement une case à cocher en fonction du résultat d'un calcul


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 104
    Points : 56
    Points
    56
    Par défaut cocher automatiquement une case à cocher en fonction du résultat d'un calcul
    bonjour,

    je travail sur un formulaire où je calcul la différence entre un nombre d'heure prévue et un nombre d'heure réalisée

    et je souhaiterai que lorsque que le résultat de se calcul est >= 1 une case à cocher "dépassement" se coche automatiquement!

    merci d'avance pour vos conseils

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Bonjour

    J'utiliserais l'événement Sur Sortie du contrôle de saisie des heures réalisées (Realise est le champ des heures prestées, Budgete celui des heures prévues et Depassement est la case à cocher
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Realise_Exit(Cancel As Integer)
        Depassement = (Realise.Value > Budgete)
    End Sub
    Au delà des solutions proposées, quelle est la finalité de l'opération? (j'ai l'impression que tu vas te compliquer la vie... )
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Points : 159
    Points
    159
    Par défaut
    Bonjour

    tu peux créer un évènement sur "activation" de ton formulaire et tu copie le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub Form_Current()
    If me.calcul >=1 then
    Me.depassement = True
    else
    Me.depassement = False
    end if
    end sub
    calcul étant le champs qui récupère le résultat de la différence entre les heures. Depassement un champ défini en tant que case à cocher (oui/non) dans ta table.

    Puis pour qu'il s'active au moment ou tu saisis les heures (dans la première et la dernière sur chacun des champs après mise à jour tu colles le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub heureDebut_AfterUpdate()
    If me.calcul >=1 then
    Me.depassement = True
    else
    Me.depassement = False
    end if
     
    End Sub
    pareil pour heurefin


    bonne journée

    isabelle
    Isabelle
    Access version office 365
    windows 7 sous mac

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    bonjour,
    comment sont alimentés les champs de ton formulaire ?
    quel est le format de ces champs - numérique décimal - Heures ??
    quand veux-tu que ta case a cocher le soit ?
    a+

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 104
    Points : 56
    Points
    56
    Par défaut
    j'ai tenté vos deux proposition mais cela ne fonctionne pas
    je sais pas tro quoi faire

    merci en tous cas

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 104
    Points : 56
    Points
    56
    Par défaut
    mes deux champs calculé: nombre d'heure prévue et nombre d'heure réalisée sont des champs issue d'une requête où j'ai utilisé datediff

    ensuite je fais dans un troisième champ la différence entre nbr_heureR - nbr_heureP

    et je souhaiterais que lorsque le résultat de ce champ est supérieure ou = a 1, ma case à cocher depassement_horaire, se coche

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Points : 159
    Points
    159
    Par défaut
    c'est bizarre c'est ce que j'utilise

    as tu bien adapté le code en fonction du nom de tes champs ?
    Isabelle
    Access version office 365
    windows 7 sous mac

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 104
    Points : 56
    Points
    56
    Par défaut
    oui je comprend pas non plus pourquoi cela ne marche pas parce que je trouvais se code logique

    est ce que ce que vous apeler "calcul" et "depassement" se sont les nom des éiquette ou du controle (enfin je sais pas trop si vous voyer ce que je veux dire car je ne suis pas sur des termes)

    voila en tous cas merci

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Points : 159
    Points
    159
    Par défaut
    il faut prendre le nom des champs :

    depassement doit équivaloir à ton depassement_horaire
    calcul est ton champs dans lequel s'affiche le résultat de datediff

    cela dit la question que t'as posée LE VIEUX est très pertinente, ce code ne fonctionne que si ton résultat est exprimé en nombre

    heures prévues 3 heures
    heures réalisées 2 heures

    je ne crois pas que datediff soit adapté dans ce cas, car il est utilisé pour calculer une différence entre des heures ou des dates ce qui ne semble pas être ton cas

    Il te faut s'implement créer dans ta requête ou dans ton form un champ qui calcul la différence entre les heures prévues et les réalisées et c'est ce champ qui sera utilisé dans le code (soit calcul pour ce que je t'ai indiqué ou total)

    mais tu dois absolument reprendre le nom des champs que tu as donné

    ca va mieux là ?
    Isabelle
    Access version office 365
    windows 7 sous mac

  10. #10
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    re,
    si ton champ résultat et au format date :
    il faut que ta comparaison soit au même format
    soit Ex

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if me.MonChampDiff >= #1:00:00 AM# Then
     
    Me.Depassement = True
    End If

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 104
    Points : 56
    Points
    56
    Par défaut
    enfaite mais datediff sefont entre deux champs, c'est deux champs sont enfaite des champs concaténé d'une date et d'une heure

    car parfois l'évènement dont je chercher a connaitre sa duré prévue et sa durée réelle peu avoir lieu sur un ou plusieurs jour

    sinn mais champs ou jai le calculé du nbr dheure prévue et réalisé sont des champs numérique

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Points : 159
    Points
    159
    Par défaut
    sinn mais champs ou jai le calculé du nbr dheure prévue et réalisé sont des champs numérique
    en ce cas c'est ce champ que tu dois considérer comme 'calcul' ou 'total'

    mais il faut que tu lui choisisses un nom

    C'est dur au début de comprendre mais on s'y fait
    Isabelle
    Access version office 365
    windows 7 sous mac

  13. #13
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Quel est le but poursuivi par le fait de cocher la case automatiquement en cas de dépassement des heures prestées par rapport à celles prévues?

    Répondre à cette question ferait avancer les choses, car personnellement, en l'état actuel de la discussion, je ne vois pas l'intérêt de procéder ainsi.

    Il peut être plus intéressant d'avoir un contrôle qui calcule la différence (positive ou négative) et qui se colorie conditionnellement selon le résultat obtenu.

    De plus, Le Vieux a posé une question restée actuellement sans réponse:
    Comment les contrôles du formulaire sont-ils alimentés? Récupères-tu toutes les infos d'une source de données (table ou requête) ou saisis-tu dans le formulaire les heures prestées pour les comparer aux heures prévues?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  14. #14
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    re,
    dans ce cas il n'y a pas de raison que le code d'Isabelle mis sur le bon évenement ne marche pas - met un un point d'arrêt sur ton code et en faisant un débug pas a pas regardes ce que donne tes variables.

Discussions similaires

  1. [AC-2007] Cocher automatiquement une case
    Par Roxy_77 dans le forum IHM
    Réponses: 11
    Dernier message: 25/06/2010, 16h38
  2. Réponses: 3
    Dernier message: 30/03/2010, 14h10
  3. Réponses: 4
    Dernier message: 26/11/2007, 11h03
  4. Etat avec une case à cocher sur une requête difficile
    Par marcoO dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 10/01/2007, 14h21
  5. Cocher automatiquement une case suivant une autre
    Par Noline dans le forum Access
    Réponses: 16
    Dernier message: 26/07/2006, 18h17

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