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 :

Conversion heure en décimale et inversement


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    sécrétaire
    Inscrit en
    Avril 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : sécrétaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2020
    Messages : 3
    Par défaut Conversion heure en décimale et inversement
    Bonjour,
    Je souhaite pouvoir saisir des heures en hh:mm et les convertir en décimale ou inversement.
    Je ne peux pas utiliser de simples formules car il y a alors un problème de références circulaires.

    Je tente par du VBA, j'ai créé un petit userform avec ces 2 champs : Heure (HEU) que je veux en hh:mm et décimal (DEC) avec 2 chiffres après la virgule.
    Je veux pouvoir remplir l'un ou l'autre de ces 2 champs et avoir le résultat dans l'autre.
    Mais mes connaissances ne sont pas assez bonnes pour mener à bien ce que je souhaite. Merci pour votre aide.

  2. #2
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Par défaut
    Bonjour,

    Citation Envoyé par sésé95 Voir le message
    Bonjour,
    Je souhaite pouvoir saisir des heures en hh:mm et les convertir en décimale ou inversement.
    Sans VBA, il suffit de multiplier le contenu de la cellule au format [h]:mm par 24 pour obtenir des heures décimales (et inversement diviser par 24).
    Il faut mettre la cellule résultat au format standard (ou nombre avec xx décimales)

    Le problème de référence circulaire est un problème de référence à la cellule concernée, VBA ne résoudra pas ce problème

  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
    Est-ce qu'il pourrait arriver que la saisie "décimale" soit inférieure à 1 ?
    Est-ce qu'il pourrait arriver que la saisie "heure:minute" soit supérieure à 24:00 ?

  4. #4
    Candidat au Club
    Femme Profil pro
    sécrétaire
    Inscrit en
    Avril 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : sécrétaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2020
    Messages : 3
    Par défaut
    Patrice, merci pour ton retour, mais je dois pouvoir saisir soit l'une, soit l'autre des infos, donc il me faudrait mettre une formule dans les 2 cellules, chacune se rapportant à l'autre, donc référence circulaire ...

    Menhir, merci de ton retour. Il s'agit en fait d'un compteur horaire, donc les valeurs peuvent être inférieures à 1 et supérieures à 24h. On pourrait lire 234:30, ou 0,5 h.

  5. #5
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Par défaut
    Citation Envoyé par sésé95 Voir le message
    Patrice, merci pour ton retour, mais je dois pouvoir saisir soit l'une, soit l'autre des infos, donc il me faudrait mettre une formule dans les 2 cellules, chacune se rapportant à l'autre, donc référence circulaire ...
    Ou simplement employer 3 cellules : une pour la saisie horaire, une pour la saisie décimale et une dernière pour le résultat.
    Il t'en restera encore plus de 17 milliards, c'est pas la peine d'économiser !

  6. #6
    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
    Il reste une petite idée.
    Dans un Worksheet_Change, analyser la propriété Text de la cellule.
    Cette propriété donne le contenu de la cellule tel qu'il est affiché, donc en tenant compte du format.
    Avec une fonction InStr(), tu pourras savoir si elle contient ou non un ":" et la modifier en fonction en la divisant ou multipliant par 24 et en lui appliquant le format souhaité avec la propriété FormatNumber.

    Mais ça fait bien lourd pour une si petite chose.

  7. #7
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Dans un Worksheet_Change, analyser la propriété Text de la cellule...
    Le problème, c'est que lorsque la cellule est au format [h]:mm, la saisie d'un nombre décimal est automatiquement convertie, et donc on ne peut pas détecter la virgule !
    Il faudrait passer par textbox, ou par l'API, je te dit pas l'usine à gaz ....

Discussions similaires

  1. Conversion heure décimale en heure normale vba
    Par beaujack dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/08/2018, 20h42
  2. Conversion heure minute seconde en décimal
    Par kidmig dans le forum Requêtes
    Réponses: 11
    Dernier message: 19/06/2018, 05h25
  3. [Débutant] Conversion heure décimale -> réel
    Par lucazzo dans le forum C#
    Réponses: 4
    Dernier message: 13/06/2013, 10h18
  4. Conversion heure en décimales
    Par Pago283 dans le forum VBA Access
    Réponses: 13
    Dernier message: 23/03/2013, 20h05
  5. Formule conversion heures minutes en décimales
    Par futurist dans le forum Formules
    Réponses: 1
    Dernier message: 29/11/2012, 16h30

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