Excel convertir 1234 en 12:34

Résolu
jojo_lebarjo -  
jojo_lebarjo Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -

Bonjour,

Je cherche un moyen de passer de #### à ##:##.

Actuellement je saisis mes heures de travail au format ##:##, mais quelques fois j'oublie les : et vous imaginez bien que ça coince un peu.

Du coup je cherche à pouvoir taper mes heures au format #### et que cela le corrige en ##:##.

J'ai essayé le formatage conditionnel, le format de cellule et une formule -> pas moyen.

Est-ce que quelqu'un aurait une idée?

Merci d'avance pour votre aide.


Windows / Firefox 111.0

A voir également:

5 réponses

via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 742
 

Bonjour

On peut faire la conversion à l'aide d'une macro dès l'entrée dans une cellule  à condition de connaître toutes les cellules dans lesquelles peuvent être rentrées des heures

Le plus simple sans macro est d'utiliser la validation de données qui t'oblige à rentrer les heures au format heure :

Pour chaque cellule ou plage de cellule devant recevoir une heure aller dans le ruban dans Données - Outils de données - Validation de données et pour Autoriser  choisir Heure


Cdlmnt

Via


0
yclik Messages postés 3856 Date d'inscription   Statut Membre Dernière intervention   1 560
 

Bonjour

une proposition

si saisie en A2

=SI(NBCAR(A2)=3;TEMPS(GAUCHE(A2;1);DROITE(A2;2);0);TEMPS(GAUCHE(A2;2);DROITE(A2;2);0))
0
Raymond PENTIER Messages postés 58969 Date d'inscription   Statut Contributeur Dernière intervention   17 336
 

Bonjour.

Pour transformer un nombre #### saisi dans la cellule A1 en date ##.## utiliser la formule

=CNUM(GAUCHE(A1;2)&":"&DROITE(A1;2))

Mais pour éviter d'appliquer cette modification à une saisie correcte ##.## il faut ajouter un test

=SI(STXT(A1;3;1)=":";A1;CNUM(GAUCHE(A1;2)&":"&DROITE(A1;2)))


0
jojo_lebarjo Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 

Merci pour vos réponses.

Raymond et Yclik, vos formule transforme mon 1315 en 0.55.... et il faut formater la cellule pour afficher 13:15

Mais j'ai fini par trouver un début de solution!
 

=CONCATENER(GAUCHE(E1;2);":";STXT(E1;3;2))

ou

=CONCATENER(STXT(F1;1;2);":";STXT(F1;3;2))

Ça fonctionne très bien. 1315 se transforme en 13:15. Et le plus beau, c'est que la fonction de calcul fonctionne, même pour les heures.

Maintenant reste à trouver comment utiliser cette fonction pour automatiser ça pour un document...

Merci encore pour votre aide, cela m'a permis d'avancer.

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jojo_lebarjo Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 

Re,

Voilà, voilà.

Après plusieurs essais j'ai fini par trouvé une solution:

Sub FormatageHeure()
    
 'variable pour formater le texte
 Dim entree As Integer
 Dim heure As Integer
 Dim minute As Integer
 Dim r1 As Range
 Dim r2 As Range
 
 'selection de la colonne B
 Range("B2").Select
 
 'sélectionne la cellule
 Set r1 = Selection.Offset(0, 0)
  
  'boucle pour réecrir le texte #### en ##:##
Boucle:
 If Not IsEmpty(r1) Then
 ActiveCell.Offset(0, 0).Select
  entree = ActiveCell.Value
  heure = Left(entree, 2)
  minute = Right(entree, 2)
  ActiveCell.Value = heure & ":" & minute 'excel attribue automatiquement le format hh:mm au contenu.
  ActiveCell.Offset(1, 0).Select 'on sélectionne la cellule suivante
  Set r1 = Selection.Offset(0, 0) 'sans ça, la boucle ne s'arrête jamais et remplis les cellules suivantes. Mais alors le Not isempty....
  GoTo Boucle
 Else
 
 End If
 
 'la même chose pour la colonne C
 Range("C2").Select
 
 Set r2 = Selection.Offset(0, 0)
 
BoucleC:
 If Not IsEmpty(r2) Then
 ActiveCell.Offset(0, 0).Select
  entree = ActiveCell.Value
  heure = Left(entree, 2)
  minute = Right(entree, 2)
  ActiveCell.Value = heure & ":" & minute
  ActiveCell.Offset(1, 0).Select
  Set r2 = Selection.Offset(0, 0)
  GoTo BoucleC
 Else
 
 'Test pour voir si boucles correctes
 'MsgBox "Terminée"
 End If
 
 'Test pour voir les valeurs des variables
 'MsgBox heure & minute

End Sub

En espérant que ça puisse aidé.

0