Excel avec MOD

Fermé
Laubou91 Messages postés 9 Date d'inscription dimanche 5 mars 2023 Statut Membre Dernière intervention 9 avril 2023 - 5 mars 2023 à 17:25
PapyLuc51 Messages postés 4380 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 1 octobre 2024 - 10 avril 2023 à 04:25

Bonjour,

J'ai un fichier dont il faut mettre un 1 lorsque l'heure de l'entete est égale ou entre les heures de saisies ci-indiquées.

"=SI(ET(K$3>=$E5;K$3<=$F5);1;"0")+SI(ET(K$3>=$G5;K$3<=$H5);1;"0")

Cela doit fonctionner avec des horaires à cheval sur deux journées aussi.

Merci pour votre aide.

A voir également:

6 réponses

PapyLuc51 Messages postés 4380 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 1 octobre 2024 1 438
Modifié le 6 mars 2023 à 06:35

Bonjour Laubou91et bienvenue

Mettre une capture d'un fichier sans les lettres des colonnes et les numéros de lignes est déconseiller ; on ne sait pas où se situent les références de la formule donnée.

Le mieux est d'envoyer une copie du fichier sans les données confidentielles et d'y inscrire des résultats attendus.

Pour joindre un fichier

1) Aller dans https://www.cjoint.com/
 2) Cliquer sur [Parcourir] pour sélectionner le fichier ou le glisser dans le cadre (15 Mo maxi)
 3) Aller vers le bas pour cliquer sur le bouton bleu [Créer le lien Cjoint]
 4) Au bout de quelques secondes la seconde page s'affiche, avec le lien en gras ; faire un clic droit dessus et choisir "Copier l'adresse du lien"
 5) Revenir dans la discussion sur CCM, et dans votre message faire "Coller".

Cordialement

1
Laubou91 Messages postés 9 Date d'inscription dimanche 5 mars 2023 Statut Membre Dernière intervention 9 avril 2023
7 mars 2023 à 12:24

Bonjour PapyLuc51,

Voici le lien de mon fichier.

L'obectif est de mettre un 1 lorsque l'horaire indiqué en tête de colonne correspond aux horaires en début de ligne.

Cela correspond aux horaires de travail d'une personne avec pause et une journée de travail à cheval sur deux journées.

Les formules fonctionnent si elle fini avant 00:00 mais pas après.

https://www.cjoint.com/c/MChlqQO3erO

Merci pour votre aide.

Laurent

0
PapyLuc51 Messages postés 4380 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 1 octobre 2024 1 438
Modifié le 13 mars 2023 à 06:56

Salutations à tous

Laubou91 Je continuais à chercher sans avoir vu ton dernier envoi.

Comme tu n'as pas donné ta formule je donne ma version

J'ai trouvé cette formule avec mod en calculant le temps depuis la première heure de la plage (i3) en y ajoutant une condition supplémentaire à savoir tant que les horaires de début et de fin ne sont pas remplis, toute la plage reste à 0.

Pour I4

=SI(OU($E4="";$H4="");0;SI(ET(MOD(I$3-$I$3;1)>=MOD($E4-$I$3;1);MOD(I$3-$I$3;1)<=MOD($F4-$I$3;1));1;0)+SI(ET(MOD(I$3-$I$3;1)>=MOD($G4-$I$3;1);MOD(I$3-$I$3;1)<=MOD($H4-$I$3;1));1;0))

Le fichier test en retour

Cordialement

1
Laubou91 Messages postés 9 Date d'inscription dimanche 5 mars 2023 Statut Membre Dernière intervention 9 avril 2023
13 mars 2023 à 10:55

Bonjour PapyLuc51,

Je viens de tester la formule.

C'est super, çà fonctionne très bien.

Un grand merci pour ton aide.

Je n'avais rien trouver sur YT et autres réseaux.

Je te dois une petite explication de mon décalage de réponse, je travail en soirée nuit + activités de la maison...

Tu as été une très grande aide et encore merci.

Lorsque j'aurais besoin de la dupliquer dans un autre format de tableau, je n'aurais qu'à changer les nom des cellules. Je saurais faire :) 

Et bien, je te souhaite une bonne semaine.

Laubou91

0
PapyLuc51 Messages postés 4380 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 1 octobre 2024 1 438 > Laubou91 Messages postés 9 Date d'inscription dimanche 5 mars 2023 Statut Membre Dernière intervention 9 avril 2023
Modifié le 13 mars 2023 à 11:21

Et pour une meilleure visibilité tu peux aussi mettre une MFC pour rendre invisible les 0

Et aussi mettre les 1 en vert sur fond vert

Cordialement

1
Laubou91 Messages postés 9 Date d'inscription dimanche 5 mars 2023 Statut Membre Dernière intervention 9 avril 2023 > Laubou91 Messages postés 9 Date d'inscription dimanche 5 mars 2023 Statut Membre Dernière intervention 9 avril 2023
16 mars 2023 à 09:14

Bonjour PapyLuc51,

Je reviens vers toi pour deux petites coquilles dans la formule.

Surement à cause d'une condition dont je n'avais pas parler. Oups, dsl.

    1° - Lorsque j'ai une activité de 6h00 consécutives sans pause à cheval sur deux journées, il y a un 2 qui s'affiche au lieu d'un 1. Cela est gênant parce qu'en bas de colonnes, je fais la somme de la colonne.

    2° - Si je commence à 00 :00 et que je fini à 08 :00 avec pause, la deuxième partie n'est pas prise en compte.

Dans le fichier, j'ai volontairement masqué les colonnes de 08 :15 à 23 :00 pour gagner en clarté.

https://www.cjoint.com/c/MCqihKpCxZO

Pour la mise en forme conditionnelle, je l'avais déjà mise en place dans mon fichier ;). Merci. 

0
PapyLuc51 Messages postés 4380 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 1 octobre 2024 1 438 > Laubou91 Messages postés 9 Date d'inscription dimanche 5 mars 2023 Statut Membre Dernière intervention 9 avril 2023
Modifié le 16 mars 2023 à 14:12

Bonjour,

'

Je vais voir ça à tête reposée (migraine).

'

Je l'avais déjà remarqué il y a des horaires sans date et avec date. À mon avis il faut repenser le tableau pour aller de 00:00 à 24:00.

'

Cordialement

0
Laubou91 Messages postés 9 Date d'inscription dimanche 5 mars 2023 Statut Membre Dernière intervention 9 avril 2023 > PapyLuc51 Messages postés 4380 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 1 octobre 2024
16 mars 2023 à 15:04

C'est sympa de me venir en aide.

Si tu n'y vois pas d'inconvénient, je poursuit mes recherches par d'autres moyen et promis si je trouve, je te fais un partage ;).

Merci encore.

0
ccm81 Messages postés 10893 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 septembre 2024 2 421
Modifié le 7 mars 2023 à 15:20

Bonjour

Un essai pour prendre en compte le changement de jour en deuxième période de service en I4)

=SI(ET(I$3>=$E4;I$3<=$F4);1;0)+SI($H4>$G4;SI(ET(I$3>=$G4;I$3<=$H4);1;0);SI(ET(I$3>=$G4;I$3<=$H4+1);1;0))

Cdlmnt

0
ccm81 Messages postés 10893 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 septembre 2024 2 421
7 mars 2023 à 16:27

Et pour traiter les deux périodes et en simplifiant (les SI ne sont plus indispensables du moment que les résultats ne sont que 0 ou 1 dixit Michel dans un autre post !)

=ET($F4>=$E4;I$3>=$E4;I$3<=$F4)*1+ET($F4<$E4;I$3>=$E4;I$3<=$F4+1)*1+ET($G4<=$H4;I$3>=$G4;I$3<=$H4)*1+ET($G4>$H4;I$3>=$G4;I$3<=$H4+1)*1

Cdlmnt

0
ccm81 Messages postés 10893 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 septembre 2024 2 421 > ccm81 Messages postés 10893 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 septembre 2024
7 mars 2023 à 17:51

RQ. tu peux même supprimer les quatre *1 si tu as au préalable formaté tes cellules au format nombre

0
Laubou91 Messages postés 9 Date d'inscription dimanche 5 mars 2023 Statut Membre Dernière intervention 9 avril 2023 > ccm81 Messages postés 10893 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 septembre 2024
Modifié le 8 mars 2023 à 13:07

Bonjour ccm81,

Merci pour ton essais ;)

ça ne fonctionne pas touours.

J'avais trouvé une formule avec "MOD" sur une feuille de pointage simple et c'était ok.

Je te la joint pour exemple.

https://www.cjoint.com/c/MCimeXZcZBO

0
PapyLuc51 Messages postés 4380 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 1 octobre 2024 1 438
Modifié le 17 mars 2023 à 18:00

Bonjour Laubou91.

J'ai fini par trouver une autre méthode sans utiliser la fonction MOD() et j'espère que ça te conviendra.

Les explications sont sur le fichier joint

https://www.cjoint.com/c/MCrqpdjngMg

Cordialement

0
PapyLuc51 Messages postés 4380 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 1 octobre 2024 1 438
Modifié le 18 mars 2023 à 12:57

Et pour en revenir à la fonction MOD() il fallait faire une imbrication =SI(OU(ET();ET());1;0) plutôt qu'une addition de SI()

'

La formule complète

'

=SI(OU($E4="";$H4="");0;SI(OU(ET(MOD(I$3-I$3;1)>=MOD($E4-I$3;1);MOD(I$3-I$3;1)<=MOD($F4-I$3;1));ET(MOD(I$3-I$3;1)>=MOD($G4-I$3;1);MOD(I$3-I$3;1)<=MOD($H4-I$3;1)));1;0))

'

Le fichier en retour https://www.cjoint.com/c/MCsl5vniLgg

'

Codiralement

0
PapyLuc51 Messages postés 4380 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 1 octobre 2024 1 438 > PapyLuc51 Messages postés 4380 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 1 octobre 2024
Modifié le 18 mars 2023 à 13:48

OUPS!! Je rectifie la formule

'

=SI(OU($E4="";$H4="");0;SI(OU(ET(MOD(I$3-$I$3;1)>=MOD($E4-$I$3;1);MOD(I$3-$I$3;1)<=MOD($F4-$I$3;1));ET(MOD(I$3-$I$3;1)>=MOD($G4-$I$3;1);MOD(I$3-$I$3;1)<=MOD($H4-$I$3;1)));1;0))

'

A rectifier sur la cellule I4 du fichier envoyé.

'

Cordialement

0
Laubou91 Messages postés 9 Date d'inscription dimanche 5 mars 2023 Statut Membre Dernière intervention 9 avril 2023 > PapyLuc51 Messages postés 4380 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 1 octobre 2024
18 mars 2023 à 17:03

Alors,

J'ai modifié la formule en remplacant les 0 par "", rien :)

Du coup, j'ai fait sauté la mise en forme conditionnelle qui rempli les cellules en blanc et polices blanches lorsque =0.

Les cellules en vert sont corrigées en police noir. Sur ton fichier, elles sont vertes sur fond vert.

On y voit plus claire.

https://www.cjoint.com/c/MCsp12r6duO

0
PapyLuc51 Messages postés 4380 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 1 octobre 2024 1 438 > Laubou91 Messages postés 9 Date d'inscription dimanche 5 mars 2023 Statut Membre Dernière intervention 9 avril 2023
Modifié le 21 mars 2023 à 17:11

Salut Laubou91.

Au final la formule avec uniquement la fonction MOD ne fonctionne pas totalement.

'

J'ai donc fait un mix entre les deux formules.

'

Je te renvoie un essai 6 qui fait une comparaison entre les trois méthodes ; 2 sont bonnes, celle du haut en vert avec la première formule et celle du bas en mauve avec le mix.

'

https://www.cjoint.com/c/MCvpZdebJBg

'

Cordialement

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ccm81 Messages postés 10893 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 septembre 2024 2 421
21 mars 2023 à 22:22

Bonjour

J'ai tenté avec une fonction personnalisée (macro) peut être plus facile à écrire/lire !

https://www.cjoint.com/c/MCvvu7qgXDB

Cdlmnt

0
PapyLuc51 Messages postés 4380 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 1 octobre 2024 1 438
Modifié le 22 mars 2023 à 07:36

Salut ami ccm81 !

'

Bien vu pour cette fonction personnalisée que je peux pas faire vu mon niveau plus que nul en Anglais .

Dans sa réponse #16 Laubou91 souhaitait que les 0 soit remplacés par "" pour éviter une Mfc.

'

Cordialement

0
Laubou91 Messages postés 9 Date d'inscription dimanche 5 mars 2023 Statut Membre Dernière intervention 9 avril 2023
9 avril 2023 à 18:07

Bonour Papy,

Je rentre de plusieurs jours d'absences à l'étranger. Je suis désolé de ne pas vous avoir répondu plus.

Je vous remercie pour tous les efforts pour m'aider.

Le lien pour récupérer le ficher est out. Vous est-il possible de le renvoyer.

effectivement, je ne comprend pas les écarts de pauses ou, il manque ou surcoroit, le 1/4 d'heure.

J'ai eu ce soucis sur une ancienne formule mais je ne me rappel plus comment le pb a été réglé.

A vous lire.

0
Laubou91 Messages postés 9 Date d'inscription dimanche 5 mars 2023 Statut Membre Dernière intervention 9 avril 2023 > Laubou91 Messages postés 9 Date d'inscription dimanche 5 mars 2023 Statut Membre Dernière intervention 9 avril 2023
9 avril 2023 à 18:09

J'ai un pb avecle J de mon clavier 

0
PapyLuc51 Messages postés 4380 Date d'inscription dimanche 3 mai 2009 Statut Membre Dernière intervention 1 octobre 2024 1 438 > Laubou91 Messages postés 9 Date d'inscription dimanche 5 mars 2023 Statut Membre Dernière intervention 9 avril 2023
10 avril 2023 à 04:25

Bonjour Laubou91

'

Mes liens sont toujours en cours,

'

Je suppose que c'est celui de ccm81 (salutations amicales), le voici avec la rectification  zu = "" sur le code

'

https://www.cjoint.com/c/MDkcxzKzpX7

'

Cordialement

0
ccm81 Messages postés 10893 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 septembre 2024 2 421
22 mars 2023 à 09:30

Salut PapyLuc51

que les 0 soit remplacés par ""

Pas grand chose à faire, Alt-F11 pour accéder à l'éditeur vba, puis Ouvrir le Module 1 (fenêtre de gauche), puis remplacer zu = 0 par zu = ""

Ne pas oublier en début de code de sauvegarder avec le type xlsm (enregistrer sous... prenant en compte les macros)

Cdlmnt

0