Format heure

Bonjour à tous,

J'ai un petit souci qui je suis est simple à faire encore faut-il savoir le faire.

Je dois saisir dans plusieurs cellules des heures en heures et minutes.

Je souhaiterais les saisir rapidement sous la forme heureminute : exemple 730

et que ça s'affiche automatiquement au format hh:mm (exemple 07:30).

Comment est-ce possible?

Merci pour votre aide

Caroline

Salut,

En A1 le chiffre 730

En B1 la formule suivante : =TEMPS(CTXT(C28;-2;1)/100;DROITE(C28;2);0)

B1 est en format Heure.

Cdlt,

Re,

Merci pour ta formule seleument quand je l'applique j'obtiens 12:00 AM pour 730 tapé.

Or je voudrais qu'en tapant 730, j'obtienne 07:30 si cela est possible.

Amicalement

Caroline

bonjour Carosempe et Raja

essaie cette formule

=TEMPS(GAUCHE(A1;NBCAR(A1)-2);DROITE(A1;2);0)

Re,

T'est sûr que que tu as formaté la cellule B1 en format Heure ? Prends le premier format Heure.

ça marche normalement.

Bien entendu la formule est : =TEMPS(CTXT(A1;-2;1)/100;DROITE(A1;2);0)

Essaye également celle de Math.

Cdlt,

Bonjour,

Un petit truc donné par Dré il y a quelques années si je me souviens.

Vas dans OUTILS / CORRECTEUR ORTOGRAPHIQUE

dans Remplacer par tape un --> . (point)

dans Par, tape --> :

puis OK.

Le seul problème est que cela s'appliquera à Excel en général.

Pour l'appliquer sur le classeur uniquement, on pourrait faire une macro qui le place à l'ouverture et le supprime à la fermeture.

Amicalement

Dan

Bonjour,

Il ya moyen de le faire par macro.

Le problème est qu'il faut définir préalablement la plage ou les cellules sur lesquelles cette macro sera d'application, faute de quoi chaque nombre saisi sera transformé en format horaire.

La méthode que j'emploie :

Par le correcteur d'orthographe je remplace .. (deux points succésifs) ou ,, (deux virgules - suivant le séparateur décimal retenu) par : (double-point).

Ainsi en tapant 8..30 j'obtiens 8:30 en format horaire lors de la validation.

dré

Re,

Tout d'abord merci à tous pour vos réponses.

Je ne pourrais pas afficher la colonne A permettant de saisir l'heure à transformer sur mon classeur, il me semble donc qu'il ne sera pas possible d'utiliser les formules de Kaja et Math bien qu'elles marchent très bien.

Une macro me semble la meilleure solution car il est impératif que l'heure soit saisie uniquement par des chiffres et non par de la ponctuation. Mais là encore il va me falloir de l'aide.

Je peux vous donner si nécessaire le nom des différentes feuilles de mon classeur ainsi que les cellules ou plutôt colonnes de ces feuilles sur lesquelles la macro doit s'exécuter.

Encore merci beaucoup pour votre aide.

Amicalement

Caroline

Une petite macro a te proposer, à placer dans la feuille ou tu veux transformer l'heure saisie.

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If Target.Column = 1 Then 
        Target = TimeSerial(Left(Target, Len(Target) - 2), Right(Target, 2), 0)
    End If
    Application.EnableEvents = True
End Sub

Tu n'as qu'a changer le numéro de la colonne ( 1 dans l'exemple ) par celui que tu veux. La macro s'exécute a chaque fois que tu entres des données dans une cellule

Merci bcp Math, ta macro marche très bien mais comment puis-je y intégrer plusieurs numéros de colonne pour la même feuille ?

Autre petitie question, dans une feuille je voudrais que la macro marche pour une seule cellule , comment le mettre dans le code de la macro?

Merci bcp pour ton aide

Caro

j'ai essayé de remplacer ton code par celui-ci pour la feuille où il n'y a qu'une seule cellule mais j'ai une erreur.

Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False

If Target.Cell = B18 Then

Target = TimeSerial(Left(Target, Len(Target) - 2), Right(Target, 2), 0)

End If

Application.EnableEvents = True

End Sub

Re,

Juste une question, l'heure que tu mets dans ta cellule correspond à l'heure à laquelle tu complètes ton tableau ou est-ce une heure X que tu peux mettre dans ton tableau à un autre moment ?

J'espère que tu comprends ma demande

Amicalement

Dan

Edition : TARGET = RANGE("B18")

Si j'ai bien compris ta demande l'heure que je veux mettre est une heure X et n'a stristement rien à voir avec l'heure à laquelle je rempli mon tableau.

Petite question : à quelle ligne dois-je mettre ton édition (ligne 3 ou 4)

tu peux mettre plusieurs colonnes de cette façon

If Target.Column = 1 Or Target.Column = 3 Then

Cela ne marche pas quand je mets mes différentes colonnes

Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False

If Target.Column = 6 0r Target.Column = 7 Or Target.Column = 8 Or Target.Column = 9 Or Target.Column = 10 Or Target.Column = 11 Or Target.Column = 12 Then Target = TimeSerial(Left(Target, Len(Target) - 2), Right(Target, 2), 0)

End If

Application.EnableEvents = True

End Sub

ma macro n'était pas très optimal, je crois qu'on ne peu pas utiliser un nombre ilimité de OR dans un test logique. nouvelle version avec un select case

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    Select Case Target.Column
        Case 6 To 12
         Target = TimeSerial(Left(Target, Len(Target) - 2), Right(Target, 2), 0)
    End Select
    Application.EnableEvents = True
End Sub

tu peux utiliser case 1,2,3,5 ou 1 to 5 ou <=5

voila ça devrait être mieux

je sais pas pourquoi mais ça ne marche tjs pas quand je tape 730 dans une cellule d'une colonne entre 6 et 12 ça me met 0:00 à la place au lieu de 7:30

Merci

Caro

j'ai retravaillé la macro un peu, elle gèrera mieux les erreurs de cette façon

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim intMinute, intHeure As Integer

    Application.EnableEvents = False
    If Target = 0 Then GoTo fin

    If Target < 100 Then
        intHeure = 0
    Else
        intHeure = Left(Target, Len(Target) - 2)
    End If

    intMinute = Right(Target, 2)

    Select Case Target.Column
        Case 6 To 12
         Target = TimeSerial(intHeure, intMinute, 0)
    End Select

fin:
    Application.EnableEvents = True
End Sub

pour ce qui est de ton erreur, je ne vois pas, chez moi ça marche bien. Poste moi ta macro pour voir si il y a une erreur de syntaxe, au cas

j'ai toujours le même problème je sais vraiment pas pourquoi, je fais pourtant un copier coller direct de ta macro.

merci quand même pour ton aide

Bonjour Math,

J'ai repris ton code sur excel 2003 et ça marche très bien. Je devais avoir un problème avec excel 2007.

Merci beaucoup pour ton aide

Amicalement

Caro

Rechercher des sujets similaires à "format heure"