XL 2013 format de cellule ou pas ?

starz

XLDnaute Occasionnel
Bonjour,
Je souhaiterai connaitre la méthode pour afficher dans une cellule ma saisie 023015 sous cette forme :
02:30,15 et ça de manière automatique ?

ce sont des min seconde et centième. J'ai essayé le format de cellule mm:ss,00 mais lorsque je saisie 023015 il me passe en heure directement ?

merci pour votre aide
 

piga25

XLDnaute Barbatruc
Bonjour,

Pour saisir plus vite les heures dans Excel

( taper .. sur le pavé numérique à la place de : )
Barre de menu - Outils - Options - Onglet "Orthographe", cliquer sur "Options de correction automatique"
Er remplacer .. par :

Par exemple vous aller alors taper : 1..23.12 et cela affichera 01:12,12
Mettre le format personnalisé dans la cellule mm:ss,00
 

job75

XLDnaute Barbatruc
Bonjour starz, piga25, le forum,

La saisie étant en A1, la formule en B1 :
Code:
=TEXTE(A1/100;"00\:00,00")
renvoie le bon résultat sous forme de texte.

On peut convertir ce résultat en nombre avec :
Code:
=--TEXTE(A1/100;"00\:00,00")
et mettre B1 au format mm:ss,00

Bonne journée.
 

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Bonjour starz, piga25, le forum,

La saisie étant en A1, la formule en B1 :
Code:
=TEXTE(A1/100;"00\:00,00")
renvoie le bon résultat sous forme de texte.

On peut convertir ce résultat en nombre avec :
Code:
=--TEXTE(A1/100;"00\:00,00")
et mettre B1 au format mm:ss,00

Bonne journée.
:rolleyes:pourquoi pas directement :
Code:
=1*TEXTE(A1;"00\:00\,00")
 

Yeahou

XLDnaute Impliqué
Bonjour

J'avais fait un truc comme cela en VBA, il y a déja quelques années.
si on tapait un nombre sur une cellule au format horaire, cela transformait le nombre en heures minutes.
je recherche.

Cordialement
 

job75

XLDnaute Barbatruc
Bonjour le fil, le forum,

En VBA on peut entrer la formule dans la zone des saisies (ici la colonne A) :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sep$, c As Range
sep = Mid(1 / 10, 2, 1) 'séparateur décimal de l'ordi
Application.EnableEvents = False
On Error Resume Next
For Each c In Intersect(Target, Range("A2:A" & Rows.Count), UsedRange) 'si entrées multiples (copier-coller)
  If c <> "" And Not c.HasFormula Then c = "=--TEXT(" & c & ",""00\:00\" & sep & "00"")"
  'sur Excel 2007 et versions suivantes on peut utiliser :
  'If c <> "" And Not c.HasFormula Then c = "=IFERROR(--TEXT(" & c & ",""00\:00\" & sep & "00""),"""")"
Next
Application.EnableEvents = True
End Sub
J'utilise la formule de Modeste geedee mais avec -- (qui pèse 2 octets) au lieu de 1* (4 octets).

Fichiers joints pour toutes versions Excel.

Bonne journée.
 

Fichiers joints

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Bonjour le fil, le forum,

En VBA on peut entrer la formule dans la zone des saisies (ici la colonne A) :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sep$, c As Range
sep = Mid(1 / 10, 2, 1) 'séparateur décimal de l'ordi
Application.EnableEvents = False
On Error Resume Next
For Each c In Intersect(Target, Range("A2:A" & Rows.Count), UsedRange) 'si entrées multiples (copier-coller)
  If c <> "" And Not c.HasFormula Then c = "=--TEXT(" & c & ",""00\:00\" & sep & "00"")"
  'sur Excel 2007 et versions suivantes on peut utiliser :
  'If c <> "" And Not c.HasFormula Then c = "=IFERROR(--TEXT(" & c & ",""00\:00\" & sep & "00""),"""")"
Next
Application.EnableEvents = True
[[CODE]End Sub
J'utilise la formule de Modeste geedee mais avec -- (qui pèse 2 octets) au lieu de 1* (4 octets).

Fichiers joints pour toutes versions Excel.

Bonne journée.
:rolleyes: tssss... tsssss....
histoire d'octets en mémoire ...:p
il existe déjà une variable qui renseigne sur le séparateur décimal
Code:
 If c <> "" And Not c.HasFormula Then c = Evaluate("=--TEXT(" & c & ",""00\:00\" & Application.DecimalSeparator & "00"")")
 

job75

XLDnaute Barbatruc
Re Modeste geedee,

Si je teste avec c.HasFormula c'est pour que la macro ne touche pas aux formules entrées...

Si l'on utilise Evaluate ce test n'est plus nécessaire mais voyez ce qui se passe si on revalide.

Et dans ce cas le séparateur décimal à utiliser est toujours le point :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
Application.EnableEvents = False
On Error Resume Next
For Each c In Intersect(Target, Range("A2:A" & Rows.Count), UsedRange) 'si entrées multiples (copier-coller)
  If c <> "" Then c = Evaluate("--TEXT(" & c & ",""00\:00\.00"")")
  'sur Excel 2007 et versions suivantes on peut utiliser :
  'If c <> "" Then c = Evaluate("IFERROR(--TEXT(" & c & ",""00\:00\.00""),"""")")
Next
Application.EnableEvents = True
End Sub
Fichiers (2).

A+
 

Fichiers joints

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Re Modeste geedee,

Si je teste avec c.HasFormula c'est pour que la macro ne touche pas aux formules entrées...
Oui OK entièrement d'accord.;)
Si l'on utilise Evaluate ce test n'est plus nécessaire mais voyez ce qui se passe si on revalide.
c'est parceque la valeur n'est pas conforme à la saisie attendue :
dans une cellule ma saisie 023015 sous cette forme :
02:30,15 et ça de manière automatique ?
Job75 a dit:
Et dans ce cas le séparateur décimal à utiliser est toujours le point :
??? je doute ???:oops:
EVALUATE utilise la syntaxe "feuille de calcul US", mais le format à utiliser reste un format local
Evaluate("TEXT(" & c & ",""00\:00\,00"")")
cependant on précisera le format à afficher via VBA :
Selection.NumberFormat = "mm:ss.00;@"
et dans ce cas c'est VBA qui se charge d'afficher le bon séparateur local !!!
va comprendre ???:po_O:rolleyes:

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
Application.EnableEvents = False
On Error Resume Next
For Each c In Intersect(Target, Range("A2:A" & Rows.Count), UsedRange) 'si entrées multiples (copier-coller)
  If Not (c.HasFormula) Then
        If IsNumeric(c) Then
              If c >=1 And c < 10^8 Then c.Value = Evaluate("TEXT(" & c & ",""00\:00\:00\,00"")"): c.NumberFormat = "[mm]:ss.00"
        End If
  End If
Next
Application.EnableEvents = True
End Sub
 
Dernière édition:

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas