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

Macros et VBA Excel Discussion :

Programmation des heures sup


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 8
    Par défaut Programmation des heures sup
    Slt tout le monde,

    Je viens de découvrir le site.

    N'étant pas un développeur de formation, j'ai quelques difficultés pour programmer les heures sup sur VBa.

    Je requiers donc votre aide, en particulier pour le Samedi et les absences.

    En effet, le personnel travaille de lundi à vendredi soit 8h/jour. Au delà de ces 8h les heures effectuées sont considérées comme supplémentaires.

    Les heures effectuées le samedi sont considérées en leur totalité comme supplémentaires.

    De même en cas d'absence le total d'heures sup est diminué de 8h qui correspond à une durée normale de travail pour un jour.

    J'ai en effet un problème lorsque je spécifie la colonne des samedis dans le mois. Cela me donne des valeurs trop grandes qui ne correspondent pas à ce que je veux faire.

    Ceci est pareil avec les absences

    Voici donc mon programme (sorry j'ecris avec le téléphone).

    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
    Public sub HeureSup 
    Dim ligne As Long 
    Dim colonne As Long 
    Dim HeureSup As Long 
     
      For ligne 6 To 100
             For colonne 5 To 47
     
    If cells (ligne, colonne) = 9 Then 
    HeureSup =HeureSup+1
    Elself cells (ligne, colonne) =10 Then
    HeureSup =HeureSup +2
     
    Pour les samedis 
    Elself cells (ligne, 12)= 6 Then 
    HeureSup =HeureSup +6 (mais ça ne marche pas) 
     
    Pour les absences 
    Elself cells (ligne, colonne) =0 Then 
    HeureSup = HrureSup -8 (pareil ça ne donne pas) 
     
    Pour les dimanches (ils sont pas comptés comme des Heures sup ? 
    Elself cells (ligne, 13)= 5 Then 
    HeureSup = HeureSup +0 (aussi ça ne donne pas) 
    End if
    HeureSup =0
    Cells (ligne, 49) = HeureSup 
    Next ligne
    Next colonne 
    End if
    J'espère ne pas avoir été trop long.

    Merci à tous 😊

  2. #2
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Bonjour, Votre post, manque cruellement d'explications. et il y a plein de bizarreries.
    par exemple, vous démarrez une bouche avec une fonction Si et des sinon si durant lesquels vous effectuez des calculs sur HeureSup et quand vous sortez de cette fonction Si, vous remettez HeureSup à 0, et ensuite vous entrez la valeur de HeureSup dans une cellule?
    Vous devriez revoir vos explications et présenter aussi une macro digne de ce nom. Evitez d'ailleurs, les "ça marche pas" expliquez nous en quoi ça ne marche pas?
    Cordialement

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Comme dit Transitoire ( ), ta demande manque d'informations. Il serait bien, par exemple, de présenter une copie d'écran pour avoir une idée de la structure de tes données.
    De plus, ton code n'est visiblement pas issu du VBE, sinon beaucoup d'erreurs auraient été corrigées ou signalées.

    Cependant, avec les éléments que tu donnes, il semble presque certain que ce que tu souhaites obtenir peut l'être sans utiliser VBA, uniquement avec des fonctions Excel.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 8
    Par défaut
    Merci Transitoire pour ta réponse et tes remarques.

    Bonjour Menhir. Merci pour ta réponse et tes remarques.

    Mes données sont structurées dans un tableau avec avec la fin une colonne HeureSup.

    Oui c'est vrai, je peux avoir ces résultats sans passer par une programmation VBa sauf que je suis dans un processus de vérification des données qui me sont transmises.


    J'écris sur un téléphone et non sur un ordi.

    Je vais apporter quelques éclaircissements. Et j'espère qu'ils pourront vous aider à m'aider.

    Effectivement j'utilise des conditions. J'ai un tableau récapitulant les heures de travail par jour du personnel durant tout le mois. Puisque le personnel est payé au salaire horaire.

    Je veux donc utiliser une programmation VBA afin de calculer les heures supplémentaires de chaque ouvrier.

    Au delà de 8h, les heures effectuées sont considérées comme supplémentaires.

    Raison pour laquelle j'utilise la condition suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If cells (ligne, colonne) = 9 (soit 1h supplémentaire)  Then 
    HeureSup = HeureSup +1
      Elseif cells (ligne, colonne) =  10 (soit 2h sup car 10=8+2) Then 
     HeureSup = HeureSup +2
    Effectivement, j'entre la valeur HeureSup dans une cellule. La colonne 49 représente le total des heures supplémentaires pour chaque ouvrier. À chaque cellule de la colonne 49 est affecté le total d'heures supplémentaires d'un ouvrier.

    Je remets HeureSup à 0 pour la prochaine ligne.

    En effet, "ça marche pas" n'est pas très approprié. Je faisais allusion ici à la ligne de programmation que j'ai écrite pour les journées dans le mois qui tombent les Samedis. Car la totalité des heures effectuées le Samedi sont des heures supplémentaires, alors j'ajoute la ligne suivante à mon programme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ElseIf cells (ligne, 12)= 8 Then 
    HeureSup = HeureSup +8
    En fait, la colonne 12 représente un Samedi de mon mois.
    Mais quand j'ajoute cette ligne de programmation à mon programme alors la valeur des heures sup n'augmente pas de 8 mais me met une valeur de 344.

    Pour les dimanches du mois c'est presque pareil, sauf que les heures travaillées le Dimanche ne sont pas comptées comme des heures supplémentaires. Donc j'ai écrit la ligne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ElseIf cells (ligne, 13)= 7 Then 
    HeureSup = HeureSup +0
    La colonne 13 représente les Dimanches dans mon tableau. Pour traduire, un ouvrier qui effectue 7 heures de travail le Dimanche n'a droit à aucune heure supplémentaire.
    .Mais encore, quand j'écris cette ligne de programme, cela me donne une valeur de 500


    De même, pour les absences, j'ai écrit la ligne suivante. Les absences sont symbolisées par un "0" dans mon tableau. Et quand un ouvrier est absent, 8h lui sont retirées du total d'heures sup à la fin du mois. Donc j'ai écrit la ligne suivante.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ElseIf cells (ligne, colonne) = 0 Then 
    HeureSup = HeureSup - 8
    Voilà un peu pour les éclaircissements.

    J'espère avoir été plus précis 😊.

  5. #5
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    bonjour, je peut me tromper, mais le code ci-dessous me semble faux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    HeureSup =0
    Cells (ligne, 49) = HeureSup 
    Next ligne
    Next colonne 
    End if

    Pour ma part j'aurais écrit cela comme ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       Next colonne   'Boucle sur les colonnes d'une même ligne
       Cells (ligne, 49) = HeureSup    ' au bout de la boucle, entre la valeur de heureSup dans la cellule de la colonne 49
       HeureSup =0 ' Remet HeureSup a zéro pour bouclage sur autre ligne
    Next ligne  ' boucle sur la nouvelle ligne . le dernier End If me semble inutile, à moins qu'il n'y ait un If caché.
    En ce qui concerne la série des if, ElseIf ....... vous devriez y réfléchir avec une acuité soutenue, car j'ai un doute, mais il manque des éléments!!!

    Cordialement

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 8
    Par défaut
    Merci pour ta réponse Transitoire.

    Effectivement ton code correspond.

    Pour les conditions de Samedi et Dimanche je vais encore faire des recherches dessus.

    Cordialement.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 8
    Par défaut
    Salut tout le monde,

    Je reviens encore avec cette préoccupation sur les heures supplémentaires.

    J'aimerais bien savoir comment faire pour écrire ce programme des heures sup pour ma colonne des Samedis et Dimanches. En effet il y'a une ligne de ce programme qui me pose des difficultés.

    Je vous écris le programme en question avec la ligne qui me pose des difficultés.

    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
     Public Sub HeureSup ( )
     
    Dim ligne As Long
    Dim colonne As Long 
    Dim HeureSup As Long 
     
    For ligne =7 To 500
      For colonne = 5 To 47
     
    If cells (ligne, colonne) = "9" Then 
    HeureSup = HeureSup + 1
     
    ElseIf cells (ligne, colonne) = "10"Then 
    HeureSup  = HeureSup + 2
     
    Voici les lignes de programmation qui me posent des difficultés. 
     
    ElseIf cells (ligne, 12) = "6" Then 
    HeureSup = HeureSup + 6
     
    ElseIf cells (ligne, 13) =" 8"Then 
    HeureSup = HeureSup +0
    La colonne 12 représente un Samedi du mois . Toutes les heures effectuées les samedis sont considérées comme des heures supplémentaires.

    La colonne 13 renvoie à un Dimanche du mois. Les heures effectuées le Dimanche ne sont pas comptées comme supplémentaires.

    Mais quand j'écris ces lignes ça me met dans la colonne HeureSup une valeur de 340 alors que je voulais juste ajouter + 6 aux heures supplémentaires concernant les Samedis.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    End If 
    Cells (ligne, 49) = HeureSup 
     
    Next colonne 
    HeureSup = 0
     
    Next ligne 
     
    End sub

    Merci à tous.

  8. #8
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    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
     Public Sub HeureSup ( )
    Dim ligne As Long
    Dim colonne As Long 
    Dim HeureSup As Long 
    
    For ligne =7 To 500
      For colonne = 5 To 47
    
        If cells (ligne, colonne) = "9" Then 'pourquoi = "9", ça devient du texte me semble-t-il?  pourquoi pas = 9 ? et idem pour la suite. 
        HeureSup = HeureSup + 1
    
        ElseIf cells (ligne, colonne) = "10"Then 
        HeureSup = HeureSup + 2
    
                                                        'Voici les lignes de programmation qui me posent des difficultés. 
        ElseIf cells (ligne, 12) = "6" Then 
        HeureSup = HeureSup + 6
    
        ElseIf cells (ligne, 13) =" 8"Then  'Je pense que c'est une erreur, il faudrait écrire = "8" et pas " 8" qui n'est pas pareil en "string":calim2:
        HeureSup = HeureSup +0 'Cette ligne est inutile, je ne vais pas vous faire l'affront de vous expliquer pourquoi!
    
        'La colonne 12 représente un Samedi du mois . Toutes les heures effectuées les samedis sont considérées comme des heures supplémentaires. 
        'La colonne 13 renvoie à un Dimanche du mois. Les heures effectuées le Dimanche ne sont pas comptées comme supplémentaires. 
        'Mais quand j'écris ces lignes ça me met dans la colonne HeureSup une valeur de 340 alors que je voulais juste ajouter + 6 aux heures supplémentaires concernant les Samedis. 
        End If 
      Cells (ligne, 49) = HeureSup 
    
      Next colonne 
      HeureSup = 0
    
    Next ligne 
    End sub
    essayez ces modifications et tenez nous au courant SVP!
    Par ailleurs, les lignes de codes 9/10/12/13 me semble mal répondre à la question. En effet, quid si un jour quelqu'un fait 11 heures? ou 7 heures?
    ca se complique!!!
    Cordialement

    Au fait, mille excuses à Menhir à qui j'ai oublié de retransmettre mon bonjour.

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 8
    Par défaut
    Merci pour ta réponse Transitoire.

    J'ai essayé les modifications apportées mais ça me donne tjrs les mêmes réponses.

    Le programme pour le samedi pose toujours autant de difficultés.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     ElseIf cells (ligne, 12) = 6 Then 
      HeureSup = HeureSup + 6
    Aussi, lorsque je déclare les variations comme étant des "string ", ca me met une "incompatibilité de type ".

    Si une personne effectue 11h de travail/jour alors j'ajouterai cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ElseIf cells (ligne, colonne)  = 11 Then 
    HeureSup = HeureSup +3
    Merci 😊😊😊

  10. #10
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Rebonsoir, je ne vous ai jamais dit de déclarer les variables en String, j'ai dit qu'écrire "9" au lieu de 9 fait qu'Excel peut croire que 9 n'est pas un chiffre mais une chaine de caractère.
    J'ai essayé les modifications apportées mais ça me donne tjrs les mêmes réponses.
    Le programme pour le samedi pose toujours autant de difficultés.
    [CODE ] ElseIf cells (ligne, 12) = 6 Then
    HeureSup = HeureSup + 6[/CODE ] ' Il faut un slash / à la deuxième balise code sinon ça marche pas
    Aussi, lorsque je déclare les variations comme étant des "string ", ca me met une "incompatibilité de type ".
    Si une personne effectue 11h de travail/jour alors j'ajouterai cette ligne:
    [CODE ]ElseIf cells (ligne, colonne) = 11 Then
    HeureSup = HeureSup +3 [/CODE ] ' Il faut un slash / à la deuxième balise code sinon ça marche pas
    Je pense qu'il serait bon que vous laissiez le code faire lui même le calcul en fonction des heures, plutôt que de rajouter des lignes de code.
    Ca n'est pas si compliqué, vous n'avez besoin que de deux variables Supplémentaires (dim as Integer) une pour la valeur du nombre d'heures éffectuées et l'autre pour la somme D'heure sup qui en découle en plus ou en moins.
    Réfléchissez y
    En ce qui concerne votre problème du samedi, je n'ai pas assez d'éléments pour trouver la raison. D'autant que je ne vais pas refaire un document pour faire des tests.
    Cordialement

  11. #11
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Bonsoir,
    J'ai travaillé plus d'une heure trente sur votre problème, et j'ai résolu beaucoup de chose.
    Mais j'ai trop d'imprécisions. Je ne continuerais pas sans un cahier des charges dignes de ce nom.
    J'attends donc celui-ci avant de vous présenter mes avancées après vérifications et modifications grâce au cahier des charges.
    Cordialement

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 8
    Par défaut
    Merci Transitoire pour ta réponse et pour le temps que tu consacres à m'aider. Je t'en suis reconnaissant.

    Cependant, excuse ma question mais qu'est ce que t'entends concrètement par "cahier de charges"?

    Cordialement.

  13. #13
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Transitoire est très gentil dans sa dernière intervention.
    Moi j'aurai plutôt dit que tu l'exploites de manière éhontée tout en restant toi-même complètement passif dans la résolution de ton problème.
    Pour être plus clair : tu ne fais rien et tu lui demandes de tout faire.

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 8
    Par défaut
    Merci Menhir pour ta réponse.

    Je comprends très bien ce que tu dis.

    Mais il faut savoir que je suis pas Programmeur de formation. Je suis un étudiant en Contrôle de Gestion. Et je viens à peine de découvrir le VBa en faisant des recherches sur une façon de contrôler plus rapidement et avec moins de risque certaines travaux sur excel. Croyez moi ici au Cameroun peu de gens maîtrisent le Vba sur Excel. Raison pour laquelle je me tourne vers vous.

    C'est pour cela que je sollicite votre aide.

    Et bien sur je suis disposé à mettre à votre disposition toutes les informations pouvant faciliter les échanges.


    Cordialement

  15. #15
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Re bonjour,
    @ MENHIR Bien le bonjour et je partage votre avis, mais de toutes les manières, j'aime résoudre les problèmes. Mais notre ami n'aura pas un travail tout cuit. Il va devoir l'adapter a ses besoins.

    @ Chris313 Un cahier des charges, c'est comme l'énoncé d'un problème, qui explique d'ou on part et avec quoi et qui explique ou on doit arriver.
    Ensuite, à nous de trouver le chemin a parcourir. Enfin quand je dit nous, je devrais dire vous, et nous pour vous aider!
    Parce que sinon, on passe un certain temps à présenter quelque chose, pour que le monsieur nous dise "C'est merveilleux, merci infiniment!!!!. Toutefois, j'ai omis de vous dire que........" et du coup, suite à ces nouvelles révélations on reprend notre travail, on présente un nouveau et rebelote......... Dès fois un petit rien nous oblige à faire des modifications très importantes en travail et en temps.

    Donc tout ça pour vous dire: en anglais dans le texte "Wait and see"
    A vous de jouer
    Cordialement

  16. #16
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Mais il faut savoir que je suis pas Programmeur de formation.
    C'est le cas de la grande majorité de ceux qui utilise le VBA, y compris ceux qui te répondent.
    Ca n'empêche pas certains de lire des documents pour se former et de consulter l'aide VBA en ligne pour comprendre un code.
    Ce forum n'a pas pour vocation de fournir de la main d’œuvre gratuite.

    Citation Envoyé par Transitoire Voir le message
    notre ami n'aura pas un travail tout cuit. Il va devoir l'adapter a ses besoins.
    Je suis prêts à parier qu'il posera des question jusqu'à ce qu'on lui ait fourni le code exact et qu'il utilisera le prétexte de son inexpérience pour ne faire aucune recherche par lui-même.

  17. #17
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Re
    @Menhir
    Je suis prêts à parier qu'il posera des question jusqu'à ce qu'on lui ait fourni le code exact et qu'il utilisera le prétexte de son inexpérience pour ne faire aucune recherche par lui-même.
    J'en suis certain, mais de toutes les manières il n'aura plus rien de moi tant que je n'aurai pas un "Cahier des charges" sérieux. Après on verra? de toutes les manières, je n'ai pas travaillé pour rien, j'ai conçu un système, ça m'a entrainé dans une conception sympa.
    Cordialement

  18. #18
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 8
    Par défaut
    Bonjour Transitoire, je viens de lire vos messages. Je n'étais pas connecté.

    Merci pour l'explication. Je vous fournis donc la procédure.

    Je suis dans une logique de programmation des heures supplémentaires.

    J'ai un tableau récapitulant entre autres les heures de travail des ouvriers pendant le mois. Avec à la fin du tableau, une colonne totalisant les heures supplémentaires effectuées par chaque ouvrier. Il s'agit de la colonne 49

    J'explique un peu la procédure:

    Il s'agit d'une entreprise industrielle. La semaine de travail comporte 5 jours de lundi à Vendredi à raison de 8h de travail par jour.

    Cependant, lorsque un ouvrier va au-delà de ces 8h, les heures effectuées sont considérées comme supplémentaires.

    D'où les lignes suivantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public Sub ChocoHeureSup()
     
    Dim ligne As Integer
    Dim colonne As Integer
    Dim HeureSup As Integer
     
    For ligne = 7 To 500
         For colonne = 5 To 49
        If cells(ligne, colonne) = 9 Then
                HeureSup = HeureSup + 1
            ElseIf cells(ligne, colonne) = 10 Then
                HeureSup = HeureSup + 2



    Si durant la semaine, un ouvrier est absent un jour ou une permission lui est accordée alors, son total d'heures Sup est diminuée de 8h. D'où ma ligne de programmation suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ElseIf cells(ligne, colonne) = "" Then
                HeureSup = HeureSup - 8
          ElseIf cells(ligne, colonne) = 0 Then
                HeureSup = HeureSup - 8

    En outre, la totalité des heures effectuées le Samedi sont considérées comme supplémentaires.

    D'où mes ligne de programmation suivantes qui me donnaient des valeurs qui ne correspondaient pas à ce que je voulais faire. C'est à dire trop grandes.

    Voici ces lignes:

    Pour le premier Samedi du mois. Il correspond à la colonne 12 dans mon tableau:

    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
    ElseIf cells(ligne, 12) = 1 Then
                HeureSup = HeureSup + 1
          ElseIf cells(ligne, 12) = 2 Then
                HeureSup = HeureSup + 2
         ElseIf cells(ligne, 12) = 3Then
                HeureSup = HeureSup + 3
           ElseIf cells(ligne, 12) = 4 Then
                HeureSup = HeureSup + 4
        ElseIf cells(ligne, 12) = 5 Then
                HeureSup = HeureSup + 5
         ElseIf cells(ligne, 12) = 6 Then
                HeureSup = HeureSup + 6
         ElseIf cells(ligne, 12) = 7 Then
                HeureSup = HeureSup + 7
        ElseIf cells(ligne, 12) = 8 Then
                HeureSup = HeureSup + 8

    Pour le deuxième Samedi du mois: Le deuxième samedi du mois correspond à la colonne 20 dans mon tableau.


    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
    ElseIf cells(ligne, 20) = 1 Then
                HeureSup = HeureSup + 1
          ElseIf cells(ligne, 20) = 2 Then
                HeureSup = HeureSup + 2
         ElseIf cells(ligne, 20) = 3 Then
                HeureSup = HeureSup + 3
           ElseIf cells(ligne, 20) = 4 Then
                HeureSup = HeureSup + 4
        ElseIf cells(ligne, 20) = 5 Then
                HeureSup = HeureSup + 5
         ElseIf cells(ligne, 20) = 6 Then
                HeureSup = HeureSup + 6
         ElseIf cells(ligne, 20) = 7 Then
                HeureSup = HeureSup + 7
        ElseIf cells(ligne, 20) = 8 Then
                HeureSup = HeureSup + 8

    Dans ma logique de programmation à moi je voulais le faire pour tous les Samedis de mon mois. Mais les valeurs que j'obtiens sont trop grandes. Ce qui veut dire que ces lignes de programmation ne sont pas justes.

    Toujours dans les explications, les heures effectuées le Dimanche ne sont pas comptées comme des heures supplémentaires. D'où les lignes suivantes dans la même logique.


    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
    ElseIf cells(ligne, 13) = "0" Then
                HeureSup = HeureSup + 0
        ElseIf cells(ligne, 13) = 1 Then
                HeureSup = HeureSup + 0
        ElseIf cells(ligne, 13) = 2 Then
                HeureSup = HeureSup + 0
        ElseIf cells(ligne, 13) = 3 Then
                HeureSup = HeureSup + 0
        ElseIf cells(ligne, 13) = 4 Then
                HeureSup = HeureSup + 0
        ElseIf cells(ligne, 13) = 5 Then
                HeureSup = HeureSup + 0
         ElseIf cells(ligne, 13) = 6 Then
                HeureSup = HeureSup + 0
         ElseIf cells(ligne, 13) = 7 Then
                HeureSup = HeureSup + 0
         ElseIf cells(ligne, 13) = 8 Then
                HeureSup = HeureSup + 0
    Mais ces lignes comme les précédentes me donnent des valeurs trop grandes , ce qui veut dire que qu'elles ne sont pas justes.


    J'espère avoir été assez détaillé et clair Transitoire.

    Je sais pas si je peux te faire parvenir le tableau en question pour plus de visibilité.

    Merci.

Discussions similaires

  1. [AC-2013] Programmer des alarmes a des heures spécifiques
    Par toumax dans le forum VBA Access
    Réponses: 7
    Dernier message: 04/12/2017, 10h39
  2. [XL-2007] Calcul des heures sup
    Par Gestionnaire_rh dans le forum Excel
    Réponses: 5
    Dernier message: 15/02/2012, 13h10
  3. expliquation des heures sup'
    Par milletch dans le forum Paie
    Réponses: 1
    Dernier message: 12/05/2008, 12h09
  4. paiement des heures sup / repos compensatoire
    Par job45 dans le forum Paie
    Réponses: 1
    Dernier message: 15/07/2007, 20h06
  5. Programmer des threads
    Par haypo dans le forum C
    Réponses: 6
    Dernier message: 02/07/2002, 13h53

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