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

Excel Discussion :

Conversion automatique nombre en temps


Sujet :

Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 80
    Points : 49
    Points
    49
    Par défaut Conversion automatique nombre en temps
    Bonjour,
    Je cherche un moyen de transformer automatiquement une valeur saisie en A1:A10 (par exemple) en temps.

    Exemple de saisie
    Cas conversion en secondes centièmes
    1283=12 secondes 83 centièmes

    Cas conversion en minutes secondes
    3842=38 minutes 42 secondes

    Cas conversion en heure minutes secondes
    23842=2 heures 38 minutes 42 secondes

    Merci pour votre aide

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Citation Envoyé par pascalcom Voir le message
    Bonjour,
    Je cherche un moyen de transformer automatiquement une valeur saisie en A1:A10 (par exemple) en temps.

    Exemple de saisie
    Cas conversion en secondes centièmes
    1283=12 secondes 83 centièmes
    Moi qui pensait que 128 secondes et 3 dixièmes

    La fonction Mid() en VBA pour avoir le côté droit et le côté gauche et un peu de concaténation


    Cas conversion en minutes secondes
    3842=38 minutes 42 secondes
    Moi qui pensait que c'était 3 minutes et 842 millièmes

    La fonction Mid() en VBA pour avoir le côté droit et le côté gauche et un peu de concaténation



    Cas conversion en heure minutes secondes
    23842=2 heures 38 minutes 42 secondes

    Merci pour votre aide
    Donc tu veux que l'on enfreigne les règles et que l'on te fournisse gratuitement et clef en main, le programme qui va deviner quelle règle appliquer et l'appliquer sans erreur. Très peu pour moi. On parle là de plusieurs heures de programmation. Alors que la meilleure chose à faire est que la direction mette ses culottes et implante un système unique de collection des données. Là, tu vas pouvoir travailler intelligemment en bâtissant le système de saisie approprié. J'ai beau dire que les programmes doivent être faits en fonction des utilisateurs, mais il y a quand même des limites.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par pascalcom Voir le message
    Cas conversion en secondes centièmes
    Cas conversion en minutes secondes
    Cas conversion en heure minutes secondes
    Et comment peut-on deviner quelle conversion est à mettre en œuvre ?
    Nom : smileys-boule-cristal-tns0.gif
Affichages : 150
Taille : 49,8 Ko
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 80
    Points : 49
    Points
    49
    Par défaut
    Bonjour,
    J'ai déjà un tableau par course, une feuille par cas énoncé.
    Ce tableau comporte des colonnes intermédiaires (où je transforme tout en secondes) ce qui me permet de faire mes recherches dans le barème.
    Je voulais éviter ces colonnes avec du code VBA.
    J'ai essayé en adaptant le code que j'ai trouvé mais mon niveau en VBA en bien trop faible et c'est un euphémisme.

    Si ma requête n'est pas conforme à l'étique du forum, je vous prie de bien vouloir m'en excuser.
    Je retire donc le sujet.
    Encore merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    Dim TimeStr As String
     
    On Error GoTo EndMacro
    If Application.Intersect(Target, Range("A1:A10")) Is Nothing Then
        Exit Sub
    End If
    If Target.Cells.Count > 1 Then
        Exit Sub
    End If
    If Target.Value = "" Then
        Exit Sub
    End If
     
    Application.EnableEvents = False
    With Target
    If .HasFormula = False Then
        Select Case Len(.Value)
            Case 1 ' e.g., 1 = 00:01
                TimeStr = "00:0" & .Value
            Case 2 ' e.g., 12 = 00:12
                TimeStr = "00:" & .Value
            Case 3 ' e.g., 735 = 7:35
                TimeStr = Left(.Value, 1) & ":" & _
                Right(.Value, 2)
            Case 4 ' e.g., 1234 = 12:34
                TimeStr = Left(.Value, 2) & ":" & _
                Right(.Value, 2)
            Case 5 ' e.g., 12345 = 1:23:45
                TimeStr = Left(.Value, 1) & ":" & _
                Mid(.Value, 2, 2) & ":" & Right(.Value, 2)
            Case 6 ' e.g., 123456 = 12:34:56
                TimeStr = Left(.Value, 2) & ":" & _
                Mid(.Value, 3, 2) & ":" & Right(.Value, 2)
            Case Else
                Err.Raise 0
        End Select
        .Value = TimeValue(TimeStr)
    End If
    End With
    Application.EnableEvents = True
    Exit Sub
    EndMacro:
    MsgBox "You did not enter a valid time"
    Application.EnableEvents = True
    End Sub

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

Discussions similaires

  1. Fonction de conversion de nombre en lettres
    Par david_chardonnet dans le forum Langage
    Réponses: 21
    Dernier message: 08/12/2021, 17h51
  2. [Toutes versions] Conversion en dynamique d'un nombre en temps
    Par pascalcom dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/10/2015, 00h29
  3. Conversion de nombres
    Par moonia dans le forum Langage
    Réponses: 2
    Dernier message: 17/01/2006, 11h09
  4. [D7][InterBase] conversion automatique de date
    Par Magnus dans le forum Bases de données
    Réponses: 4
    Dernier message: 09/05/2005, 14h58
  5. Conversion automatique de tiffs en jpg/gif
    Par Davenico dans le forum Composants VCL
    Réponses: 2
    Dernier message: 03/07/2003, 15h07

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