Convertir nombre vers heure

Résolu
Amin -  
 Amin -
Bonjour,

Est-ce qu'il y a un moyen de convertir les entrées numériques vers le format heure?

par exemple, je me place sur la cellule A1, je tape 1030,en appuyant sur la touche entré ou sans rien faire, je voudrais que ça affiche 10h30 ou 10:30.

Merci d'avance pour votre précieuse réponse

1 réponse

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour
    valable à partir jusqu'à 2400 dans la zone A2:M12
    se déclenche appui sur "entr"
    a installer dans l'éditeur VBA module de la feuille

    Option Explicit
    '--------
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim minut As Double, heure As Double
    Static Flag As Boolean
    If Not Intersect(Target, Range("A2:M12")) Is Nothing And _
    IsNumeric(Target) And _
    Target < 2400 And _
    Not Flag Then
    Flag = True
    minut = (Right(Target, 2)) * 1 / 1440
    If Len(Target) > 2 Then heure = (Left(Target, Len(Target) - 2)) * 1 / 24
    Target = heure + minut
    Target.NumberFormat = "hh:mm;@"
    End If
    Flag = False
    End Sub


    comment installer ?
    copier cette macro
    clic droit sur le nom de l'onglet de la feuille concernée (en bas de l'écran)
    visualiser le code
    coller

    -1
    1. Amin
       
      Bonjour Michel_m,

      ça marche !!!! merci bcp !!!

      Mais il y a un petit soucis (mais pas très gênant) ... quand je supprime une cellule, un message error qui s'affiche
      "Microsoft Visual Basic
      Erreur d'exécution « 13 »:
      Incompatibilité de type"

      Est-ce normal ?
      0
      1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320 > Amin
         
        Bonjour

        et un "AND" en + avec la suppression de donnée!
        Option Explicit
        '--------
        Private Sub Worksheet_Change(ByVal Target As Range)
        Dim minut As Double, heure As Double
        Static Flag As Boolean
        If Not Intersect(Target, Range("A2:M12")) Is Nothing And _
        IsNumeric(Target) And _
        Target < 2400 And _
        Target <> "" And _
        Not Flag Then
        Flag = True
        minut = (Right(Target, 2)) * 1 / 1440
        If Len(Target) > 2 Then heure = (Left(Target, Len(Target) - 2)) * 1 / 24
        Target = heure + minut
        Target.NumberFormat = "hh:mm;@"
        End If
        Flag = False
        End Sub
        0
    2. Amin
       
      Génial... Un grand Merci pour vous !!!
      0