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 :

Changer format temps [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 24
    Par défaut Changer format temps
    Bonjour à tous,

    J'ai un fichier excel avec des colonnes avec des valeurs :

    0h 0mn 37s
    2h 1mn 14s
    0h 18mn 12s
    0h 1mn 55s
    0h 36mn 34s
    0h 1mn 5s

    Est-il possible à l'aide d'une macro de les mettre au format:

    00H00m37s
    02h01m14s
    00h18m12s
    00h01m55s
    00h36m34s
    00h01m05s

    Merci de votre aide.

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Regarde si cela te conviens :
    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
     
    Sub Heure()
     
        Dim Plage As Range
        Dim Cel As Range
        Dim Heures As Integer
        Dim Minutes As Integer
        Dim Secondes As Integer
     
        'plage de recherche en colonne A
        Set Plage = Range([A1], Range("A" & Rows.Count).End(xlUp))
     
        For Each Cel In Plage
     
            'extrait les heures, minutes et secondes
            Heures = Left(Cel, InStr(Cel, "h") - 1)
            Minutes = Mid(Cel, InStr(Cel, " ") + 1, InStr(Cel, "mn") - InStr(Cel, " ") - 1)
            Secondes = Mid(Cel, InStrRev(Cel, " ") + 1, InStr(Cel, "s") - InStrRev(Cel, " ") - 1)
     
            'formate et inscrit dans la cellule voisine
            Cel.Offset(0, 1) = Format(Heures, "00h") & Format(Minutes, "00m") & Format(Secondes, "00s")
     
        Next Cel
     
    End Sub
    Hervé.

  3. #3
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 24
    Par défaut
    Super ça marche nickel mais ça le copie sur la colonne suivante on pourrait pas l'avoir sur la même colonne. Merci encore

    Merci c'est bon j'ai vu encore merci

    Excuse moi de te déranger Hervé et si cela concerne toutes les feuilles d'un classeur avec plusieurs colonnes (F, G, H, J, M) par feuilles.

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonsoir,

    Avec la proc ci-dessous (issue de la 1 ère), toutes les feuilles du classeur sont passées en revue pour les colonnes F, G, H, J, M et les heures sont remplacées dans la cellule par le nouveau format. Fais un test sur une copie de ton classeur :
    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
     
    Sub Heure()
     
        Dim Fe As Worksheet
        Dim Plage As Range
        Dim Cel As Range
        Dim Heures As Integer
        Dim Minutes As Integer
        Dim Secondes As Integer
     
        'recherche dans toutes les feuilles du classeur
        For Each Fe In Worksheets
     
            'plage de recherche en colonne F, G, H, J, M
            With Fe
     
                Set Plage = Union(.Range(.[F1], .[F65536].End(xlUp)), _
                                  .Range(.[G1], .[G65536].End(xlUp)), _
                                  .Range(.[H1], .[H65536].End(xlUp)), _
                                  .Range(.[J1], .[J65536].End(xlUp)), _
                                  .Range(.[M1], .[M65536].End(xlUp)))
     
            End With
     
            For Each Cel In Plage
     
                'extrait les heures, minutes et secondes
                Heures = Left(Cel, InStr(Cel, "h") - 1)
                Minutes = Mid(Cel, InStr(Cel, " ") + 1, InStr(Cel, "mn") - InStr(Cel, " ") - 1)
                Secondes = Mid(Cel, InStrRev(Cel, " ") + 1, InStr(Cel, "s") - InStrRev(Cel, " ") - 1)
     
                'formate et inscrit dans la cellule
                Cel = Format(Heures, "00h") & Format(Minutes, "00m") & Format(Secondes, "00s")
     
            Next Cel
     
        Next Fe
     
    End Sub
    Hervé.

  5. #5
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 24
    Par défaut
    Salut Hervé,

    Merci ça marche nickel je peux t'embêter un peu ??

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonsoir torvald,

    Tu ne m'embête pas du tout, tu peux poser tes questions et j'essairai d'y répondre du mieux possible mais demain soir, je dois partir maintenant.

    Hervé.

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

Discussions similaires

  1. changer format du temps
    Par elmagique dans le forum Solaris
    Réponses: 10
    Dernier message: 11/05/2011, 10h43
  2. [DATE] Changer format Date Java
    Par R1pToR dans le forum Struts 1
    Réponses: 5
    Dernier message: 09/07/2007, 14h31
  3. changer format texte
    Par mmb04 dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 01/06/2007, 12h29
  4. changer format d'une date
    Par skanderb dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 30/04/2007, 15h59
  5. changer format A4
    Par zax-tfh dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 14/03/2003, 14h30

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