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

Excel Discussion :

Déduire créneau via une heure [XL-365]


Sujet :

Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    février 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2005
    Messages : 91
    Points : 58
    Points
    58
    Par défaut Déduire créneau via une heure
    Bonjour

    Je crois que tout est dans le titre mais un peu plus d'explication serait bien.


    A partir d'un horaire que j'ai dans une colonne, je voudrais en déduire un créneau horaire relativement simple dans une autre colonne
    Exemple :
    10H53 donne un créneau 10H00 - 11H00
    13H24 donne un créneau 13H00 - 14H00
    23H47 donne un créneau 13H00 - 14H00
    Etc...

    Sans VBA, peut-on le faire via une formule ? avec l'aide d'une table de correspondance peut être...Un rechercheV....?

    C'est le côté horaire représenté par un nombre que je ne maîtrise pas bien. Mais je continue à chercher de on côté aussi.

    Merci de votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Developpeur VBA, C# et VB.Net =]
    Inscrit en
    juillet 2007
    Messages
    13 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Developpeur VBA, C# et VB.Net =]
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2007
    Messages : 13 760
    Points : 31 389
    Points
    31 389
    Par défaut
    Salut

    Ca semblait facile comme question, mais cet exemple vient chambouler mes certitudes
    Citation Envoyé par francois78 Voir le message
    23H47 donne un créneau 13H00 - 14H00
    Peut on avoir confirmation que c'est une erreur avant de proposer des solutions de formules stp ?
    Cycle de vie d'un bon programme :
    1/ ca fonctionne 2/ ca s'optimise 3/ ca se refactorise

    Pas de question technique par MP, je ne réponds pas

    Apprendre à programmer avec Access 2016 et Access 2019

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    juillet 2012
    Messages
    2 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : juillet 2012
    Messages : 2 201
    Points : 3 606
    Points
    3 606
    Par défaut
    Inférieur:
    Supérieur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =ARRONDI.SUP(A1*24;0)/24
    Si j'ai bien lu sans tenir compte du lapsus clavis.

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    avril 2016
    Messages
    7 565
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : avril 2016
    Messages : 7 565
    Points : 12 737
    Points
    12 737
    Par défaut
    Bonjour

    Ceci (exemple de formule en B1 pour traiter A1)?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =TEXTE(HEURE(A1);"0#")&"H00 - "&SI(HEURE(A1)<23;TEXTE(HEURE(A1)+1;"0#");"00")&"H00"
    Sans précisions de limites de ta part, il a bien fallu prévoir le passage d'un jour à l'autre
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  5. #5
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    14 890
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 14 890
    Points : 40 990
    Points
    40 990
    Billets dans le blog
    61
    Par défaut
    Salut.

    Je propose =TEXTE(A1;"hh""h00""") & "-" & TEXTE(A1+1/24;"hh""h00""")

    Nom : 2019-12-03_195316.png
Affichages : 48
Taille : 6,3 Ko



    Si on veut "24h00" pour la tranche "23h00-24h00", on utilise =TEXTE(A1;"hh""h00""") & "-" & TEXTE(A1+1/24;"[hh]""h00""")

    Nom : 2019-12-03_200519.png
Affichages : 48
Taille : 7,8 Ko
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Une fois pour toutes, je donne mon avis. Je ne vais pas le répéter à chaque message...
    Si je propose une solution générique sur votre solution spécifique, c'est parce que, fainéant de nature, je privilégie le réutilisable...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Vous souhaitez rédiger pour DVP? Contactez-moi
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    juin 2007
    Messages
    14 396
    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 : 14 396
    Points : 29 605
    Points
    29 605
    Par défaut
    Petite remarque : tout ce qui sera proposé ne fonctionnera que si les heures en question sont de vraies heures et non pas du texte ressemblant à des heure.

    Une solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ="Créneau "&TEXTE(HEURE(A1);"00")&"H00 - "&TEXTE(HEURE(A1)+1;"00")&"H00"
    Citation Envoyé par QuestVba Voir le message
    Inférieur:
    Supérieur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =ARRONDI.SUP(A1*24;0)/24
    Pourquoi avoir associé PLANCHER et ARRONDI.SUP et non pas PLANCHER et PLAFOND ou ARRONDI.SUP et ARRONDI.INF ?
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    février 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2005
    Messages : 91
    Points : 58
    Points
    58
    Par défaut
    Bonjour à tous

    En premier lieu, merci à tous ceux qui ont pris le temps de lire et de proposer des solutions.
    Ensuite, oui, je suis un boulet, il fallait bien lire 23H47 donnant un créneau 23H00 - 24H00 ou 23H00 - 00H00


    Egalement, c'est pas parce que je suis un boulet qu'on doit dire
    Ca semblait facile comme question,



    J'ai donc testé vos solutions
    1. Avec la fonction Plancher et arrondi, soit j'ai pas compris, soit... j'ai pas compris mais ca marche pas
    2. Avec TEXTE(HEURE(A1);"0#")&"H00 - "&SI(HEURE(A1)<23;TEXTE(HEURE(A1)+1;"0#");"00")&"H00"
    3. Avec TEXTE(A1;"hh""h00""") & "-" & TEXTE(A1+1/24;"hh""h00""")
    4. Avec TEXTE(A1;"hh""h00""") & "-" & TEXTE(A1+1/24;"[hh]""h00""") pour afficher 24H00 alors là, quelle que soit l'heure, j'ai une sorte de Gloubi-boulga qui donne "01h00-1044194h00" avec 01H52 comme heure.
    5. Avec "Créneau "&TEXTE(HEURE(A1);"00")&"H00 - "&TEXTE(HEURE(A1)+1;"00")&"H00"


    En tout cas, j'ai plusieurs solutions pour résoudre mon problème "facile" et je remercie tout le monde pour les solutions proposées.

    Je laisse ce message ouvert encore quelques jours au cas où QuestVba et/ou Pierre Fauconnier voudraient apporter quelques compléments.

    Merci à tous

  8. #8
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    14 890
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 14 890
    Points : 40 990
    Points
    40 990
    Billets dans le blog
    61
    Par défaut
    Citation Envoyé par francois78 Voir le message
    [...]
    Avec TEXTE(A1;"hh""h00""") & "-" & TEXTE(A1+1/24;"[hh]""h00""") pour afficher 24H00 alors là, quelle que soit l'heure, j'ai une sorte de Gloubi-boulga qui donne "01h00-1044194h00" avec 01H52 comme heure.[...]
    Je pense que tu as dû mal recopié ma formule, car si tu regardes ma seconde illustration, c'est fonctionnel

    Voici une illustration sur quelques valeurs horaires, dont 01:52 qui "pose problème" chez toi

    Nom : 2019-12-04_093331.png
Affichages : 43
Taille : 22,0 Ko
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Une fois pour toutes, je donne mon avis. Je ne vais pas le répéter à chaque message...
    Si je propose une solution générique sur votre solution spécifique, c'est parce que, fainéant de nature, je privilégie le réutilisable...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Vous souhaitez rédiger pour DVP? Contactez-moi
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  9. #9
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    juillet 2012
    Messages
    2 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : juillet 2012
    Messages : 2 201
    Points : 3 606
    Points
    3 606
    Par défaut
    Salut,

    Un complément. Je suis parti sur un Format d'encodage personnalisé (sans savoir) :
    Et donc les formules fonctionnent.
    Nom : Image 2.png
Affichages : 43
Taille : 8,1 Ko


    Citation Envoyé par Menhir
    Pourquoi avoir associé PLANCHER et ARRONDI.SUP et non pas PLANCHER et PLAFOND ou ARRONDI.SUP et ARRONDI.INF ?
    C'était par raccourci et me disant qu'il était possible de découvrir l'autre versant. La prochaine fois, je mettrai les deux solutions (enfin, les quatre).

  10. #10
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    14 890
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 14 890
    Points : 40 990
    Points
    40 990
    Billets dans le blog
    61
    Par défaut
    Le format de l'heure saisie n'intervient pas dans le calcul, puisqu'il ne modifie pas les valeurs dans les cellules. Du moment que la valeur saisie puisse représenter une valeur horaire, la formule doit fonctionner...

    Avec l'idée des plancher et plafond de QuestVBA, on peut avoir la formule suivante (avec ou sans les crochets selon que l'on veut 24:00 ou 00:00)

    Nom : 2019-12-04_094434.png
Affichages : 47
Taille : 7,0 Ko
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Une fois pour toutes, je donne mon avis. Je ne vais pas le répéter à chaque message...
    Si je propose une solution générique sur votre solution spécifique, c'est parce que, fainéant de nature, je privilégie le réutilisable...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Vous souhaitez rédiger pour DVP? Contactez-moi
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    février 2005
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2005
    Messages : 91
    Points : 58
    Points
    58
    Par défaut
    Bonjour

    J'ai trouvé pourquoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TEXTE(A2;"hh""h00""")&"-"&TEXTE(A2+1/24;"[hh]""h00""")
    ne fonctionnait pas.

    Cela fonctionne uniquement si la cellule A1 contient une heure et un non une date plus une heure.


    Sinon, le reste c'est parfait pour moi !


    Merci les amis

  12. #12
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    14 890
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 14 890
    Points : 40 990
    Points
    40 990
    Billets dans le blog
    61
    Par défaut
    Arf... Evidemment. Suis-je bête? J'aurais dû y penser, au lieu d'imaginer que tu avais mal recopié la formule.

    Entre le 01/01/1900 à 0h00 et le 12/02/2019 à 02h00, il s'est écoulé 1044194 heures... Et comme [hh] amène à afficher en heures la valeur de la cellule, il y avait effectivement un problème.

    Mea culpa

    Si l'on veut pouvoir saisir la date et l'heure dans la même cellule, la formule doit enlever la date (partie entière de la valeur) et devient =TEXTE(A2-ENT(A2);"hh""h00""")&"-"&TEXTE(A2-ENT(A2)+1/24;"[hh]""h00""").


    Nom : 2019-12-06_152850.png
Affichages : 23
Taille : 6,9 Ko
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Une fois pour toutes, je donne mon avis. Je ne vais pas le répéter à chaque message...
    Si je propose une solution générique sur votre solution spécifique, c'est parce que, fainéant de nature, je privilégie le réutilisable...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Vous souhaitez rédiger pour DVP? Contactez-moi
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 06/05/2004, 13h45
  2. Récupurer via une requête SQL la valeur la plus proche
    Par yoda_style dans le forum Langage SQL
    Réponses: 9
    Dernier message: 27/04/2004, 14h52
  3. [STRUTS][DOWNLOAD] download d'un fichier via une action
    Par FreshVic dans le forum Struts 1
    Réponses: 3
    Dernier message: 16/04/2004, 17h38
  4. [Date][SQL date][Format] insertion d'une heure
    Par goulime dans le forum JDBC
    Réponses: 11
    Dernier message: 26/01/2004, 12h38
  5. [VBA-E] [Excel] Lancer une macro à une heure donnée
    Par Lysis dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/10/2002, 13h15

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