Calcul du Nombre Heures de Nuit (sujet de Stéphanie)

0

1er post de Stéphanie :

Bonjour,

Pourriez-vous m'aider s'il vous plaît: Je recherche une formule qui sera placée dans la cellule K1 qui calculera les heures de nuit effectuées sur une journée (résultat en centièmes). Pour information, les heures de nuit sont de 21h à 6h du matin.

Il y aura plusieurs critères à respecter : il faut que dans la cellule B1 soit écrit "NON"; la cellule C1 représente le début de la journée et la cellule D1 la fin de la journée.

Exemple : C1 = 04:30 et D1 = 22:00 alors dans la cellule K1 le résultat affiché doit être de 2,50. Ne pas oublier que si dans la cellule B1, il est écrit "OUI", alors le calcul ne doit pas se faire se mettre à zéro. Il en est de même si la B1 est en "NON" et qu'il n'y a pas d'heures de nuit effectués en cellules C1 et D1.

Vous remerciant par avance pour votre aide.

    rhodo Posté le 6 septembre, 13:02
    par rhodo
    Répondre
    0

    Suite à ma réponse sur son sujet, voici le 1er commentaire de Stéphanie :

    Un très grand merci. ça fonctionne, c'est génial ! – Stéphanie 4 septembre, 12:07

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    Mais ensuite, il y a eu ce 2ème commentaire de Stéphanie :

    Bonjour, je viens de faire un autre test et la formule ne fonctionne pas correctement
    dans le cas où le début de la journée et la fin de journée s'effectue sur la nuit.

    Exemple : C1 = 02:00 et D1 = 03:00 ➯ dans la cellule K1 le résultat devrait afficher 1,
    mais cela affiche 4. Même raisonnement si c'est le soir entre 21h et 23h.

    Pourriez-vous m'aider s'il vous plaît ? – Stéphanie 4 septembre, 16:06

    rhodo Posté le 6 septembre, 13:08
    par rhodo
    0

    Bonjour Stéphanie,

    voici mon nouveau fichier Excel (lien valable 7 jours) :

    https://www.transfernow.net/dl/20250905OsouSsvc

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    formule en K1 : =SI(OU(C1="";D1="");"";SI(B1="OUI";0;HN(C1;D1)))

    HN() est ma fonction personnalisée qui calcule les Heures de Nuit ;
    c'est une macro programmée en VBA Excel.

    j'ai préféré utiliser cette méthode, sinon la formule de K1 aurait été une
    formule à rallonge (très longue), insipide et quasi incompréhensible.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    à toi de faire tous les tests ; cette fois ça devrait être bon (j'espère) ;
    sinon, si tu trouves des cas où ça ne marchera pas, il faudra me le
    dire et je ferai les adaptations nécessaires.

    fais Alt F11 pour lire le code VBA ; puis fais de nouveau Alt F11
    pour retourner sur Excel ; à te lire pour avoir ton avis.  :)

    rhodo

    rhodo Posté le 6 septembre, 13:16
    par rhodo
    0

    Bonjour, je vous remercie d'avoir pris du temps pour trouver une formule. Toutefois, je n'arrive pas à faire des test en copiant votre formule dans mon tableau. Je ne sais pas copier une macro programmée en VBA. Pourriez-vous m'indiquer la marche à suivre s'il vous plaît?

    Posté le 10 septembre, 15:13
    par Stéphanie
    0

    Bonjour Stéphanie,

    ton classeur Excel est un fichier dont l'extension est .xlsx ; or un fichier .xlsx ne peut pas
    contenir de macros ; il faut donc le convertir en fichier .xlsm (m est pour macros) ; mais
    renommer simplement le fichier avec l'extension ".xlsm" ne marche pas ; il faut faire
    comme suit :

    ouvre ton classeur Excel (donc ton fichier qui a l'extension .xlsx) ; aussitôt après, sans
    rien changer, appuie sur la touche F12 ➯ fenêtre "Enregistrer sous" ; en bas, sous
    "Nom de fichier :", il y a "Type :" ; dans la liste, choisis le 2ème item "Classeur Excel
    (prenant en charge les macros)" ; plus bas, clique sur le bouton "Enregistrer" ; c'est
    cela qui convertit ton fichier .xlsx en fichier .xlsm.

    ce que tu vois maintenant à l'écran est le même classeur, mais c'est le fichier .xlsm ;
    le fichier .xlsx est resté sur le disque dur (ou SSD) ; tu pourras le supprimer plus
    tard car il est devenu inutile.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    fais Alt F11 ➯ fenêtre "Microsoft Visual Basic pour Applications" ; on abrège souvent
    en "fenêtre Visual Basic" ; ou en "Éditeur Visual Basic" car ici, ça permet d'écrire et
    de modifier des programmes en VBA Excel.

    VBA = Visual Basic for Applications ; les applications sont celles du logiciel Office ;
    VBA Excel est le VBA d'Excel, VBA Word est le VBA de Word ; il y aussi le VBA
    de PowerPoint, le VBA d'Access, etc...

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    fais Alt i m ➯ ça insère un nouveau module (nommé "Module1"), dont tu vois la page
    blanche côté droit ; c'est LÀ que tu dois copier / coller tout le code VBA du classeur
    "Exo Stéphanie", Module1 (30 lignes) : la ligne "Option Explicit", les 2 lignes "Const",
    et tout le code VBA de la fonction HN() : de "Function HN(HD#, HF#) As Double"
    à "End Function".

    fais Ctrl s pour sauvegarder, puis Alt F11 pour retourner sur Excel ; comme tu as mis
    le code VBA de Module1, le HN(C1;D1) de la formule de K1 pourra marcher.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    si c'est trop compliqué à faire pour toi, envoie ton fichier Excel .xlsx et je ferai pour
    toi tout ce que j'ai décrit ci-dessus ; si tu as réussi, n'oublie pas de faire les tests !

    rhodo

    rhodo Posté le 10 septembre, 17:40
    par rhodo
    • Bonjour, merci pour tout et oui je n'y arrive pas. Je te joins mon fichier EXCEL. C'est la colonne K qu'il faut alimenté en centième, pour tous les onglets. Merci beaucoup. – Stéphanie 11 septembre, 09:29
    0
    0

    Bonjour Stéphanie,

    ton fichier en retour : https://www.transfernow.net/dl/20250911UfTBaqE6

    à toi de tout vérifier ; dis-moi si ça te convient ou non.  :)

    rhodo

    rhodo Posté le 11 septembre, 16:18
    par rhodo
    • Un très grand merci, tout est OK. Vous êtes au top. – Stéphanie 16 septembre, 17:34

    Si vous n'êtes pas inscrit sur le site, vous pouvez poster librement (en tant qu'invité).
    Pour cela, indiquez un pseudonyme (nom d'utilisateur) et une adresse email :