Format nombre sur Excel

Résolu/Fermé
Anthony G Messages postés 21 Date d'inscription mercredi 6 février 2013 Statut Membre Dernière intervention 6 juin 2018 - 11 févr. 2013 à 14:31
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 - 12 févr. 2013 à 21:59
Bonjour,

J'aurais besoin de votre aide car je me suis plongé dans des analyses de données en format temps.
Lorsque je récupère celles ci, elles sont au format 00:00.00 et 00.00 et ne sont donc pas reconnues en tant que "nombre".
Quel format devrais je mettre pour traduire ces données "temps" en format "temps standard" 00;00,00 pour pouvoir ensuite les traiter (faire des moyennes, soustraction, etc..).

J'ai déjà trouvé pas mal de réponses mais aucunes ne correspondent vraiment à mon cas. Petit détail, je suis à présent sur Mac (petite précision au cas où cela change quelque chose).


A voir également:

6 réponses

eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
12 févr. 2013 à 00:13
Effectivement, ça pose un problème.
Ca aurait pu être fait par formule mais ça t'obligerait à l'écrire sur toute une colonne et de finir par un copier-collage spécial valeur. Ce qui fait qcq manip...

Je te propose une macro.
Sélectionner la plage à convertir et lancer la macro convertirTemps (ou l'appeler par son raccourci Ctrl+t).
Tu peux traiter sur toutes les feuilles
D'un autre classeur aussi si celui-ci est ouvert, ou bien y coller la macro dans un module (Mise à jour d'une procédure).

https://www.cjoint.com/c/CBmae17QilH

eric
1
Anthony G Messages postés 21 Date d'inscription mercredi 6 février 2013 Statut Membre Dernière intervention 6 juin 2018
12 févr. 2013 à 10:02
Eriic, je tiens à te remercier pour la macro c'est super.

Ca va me permettre de traiter tout ceci beaucoup plus rapidement.

Dernière petite question: Si je souhaite mettre mes formats temps en mm:ss,00 au lieu de hh:mm:ss,00 comment dois je procéder?

J'ai essayer de modifier le format dans la macro mais il me dit qu'il y a une erreur de syntaxe...

Merci à tous!
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
12 févr. 2013 à 11:15
Bonjour,

c.NumberFormat = "mm:ss.00"
Avec peut-être une , pour toi
Si vraiment ça résiste crées-le d'abord dans les formats personnalisés sur une cellule.

Si tu dois t'en servir souvent copie la macro dans un classeur vide et enregistre-le en macro complémentaire (*.xlam). Elle sera toujours disponible. (garde un exemplaire en .xlsx si tu as d'autres ajouts ou modif à faire plus tard.

eric
0
Anthony G Messages postés 21 Date d'inscription mercredi 6 février 2013 Statut Membre Dernière intervention 6 juin 2018
12 févr. 2013 à 19:17
Bonsoir Eric,

J'ai réussi à modifier le format et je t'en remercie.

Par contre je n'arrive pas à copier la macro dans un nouveau fichier, en tant que macro complémentaire..
C'est la première fois que je touche aux macros...

Si jamais tu a un peu de temps pour me donner les étapes à faire, ce serait génial.

Merci pour tout

Anthony
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
12 févr. 2013 à 20:03
- Nouveau fichier
- Alt+F11 pour ouvrir vbe
- clic-droit dans le projet à gauche, insertion module
- coller le code :
Sub convertirTemps()
' traite la plage sélectionnée.
' les temps 'Texte' sont convertis en temps numérique
' 1:02.70 => 1:02.70
' 30.84 => 00:30.84
' les temps numériques affichés avec : sont conservés
'
    Dim c As Range, t As Variant, t2 As Variant
    For Each c In Selection
        If (Not IsNumeric(c) And InStr(c.Text, ":") > 0) Or (IsNumeric(c) And InStr(c.Text, ":") = 0) Then
            t = c.Value
            t = Replace(Replace(t, Chr(160), ""), " ", "")
            Select Case Len(t) - Len(Replace(t, ":", ""))
            Case 0
                t = "0:0:" & t
            Case 1
                t = "0:" & t
            End Select
            c = t
            c.NumberFormat = "mm:ss.00"
        End If
    Next c
End Sub
(j'ai ajouté qcq contrôles)
- retourner sur la feuille
- Alt+F8, 'Options...', choisir le raccourci clavier Ctrl+t
- enregistrer sous... une sauvegarde au format *.xlsm
- enregistrer sous... au format Macro Complémentaire Excel (*.xlam) (ne pas changer le répertoire choisi par excel)

eric
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
12 févr. 2013 à 21:43
PS: un fichier *.xlam est chargé systématiquement à l'ouverture d'excel, il n'est pas visible.
Par contre ses macros et fonctions sont toujours disponibles pour les autres classeurs.
Dans l'onglet Développeur / Compléments' on peut activer/désactiver les macros complémentaires.
eric
0
PHILOU10120 Messages postés 6367 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 2 avril 2024 795
11 févr. 2013 à 14:43
Bonjour

Utiliser le format heure hh:mm:ss le séparateur sont les deux points sur PC pour MAC ?
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
11 févr. 2013 à 15:20
Bonjour,

et ne sont donc pas reconnues en tant que "nombre".
Donc c'est du texte.
Copier une cellule vide, sélectionner la plage et : collage spécial Addition.
Mettre en suite le format désiré.

eric
0
tontong Messages postés 2548 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 15 mars 2024 1 054
11 févr. 2013 à 15:38
Bonjour,
Si le séparateur de décimales est la virgule il faut commencer par remplacer le point par une virgule. Ceci peut être fait avec Remplacer ou une formule avec substitue.
0

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

Posez votre question
Anthony G Messages postés 21 Date d'inscription mercredi 6 février 2013 Statut Membre Dernière intervention 6 juin 2018
11 févr. 2013 à 16:15
Merci de votre aide mais malgré les solutions proposées, je n'y arrive toujours pas.

Mon souhait est de passer d'un format "texte" 00:00.00 à un format "nombre" 00:00,00
0
tontong Messages postés 2548 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 15 mars 2024 1 054
11 févr. 2013 à 16:32
Sur PC:
Edition Remplacer Rechercher . (point) Remplacer par , (virgule)
Ou bien en B2=SUBSTITUE(A2;".";",")
Ensuite comme le préconise eriiic:Copier une cellule vide, sélectionner la plage et : collage spécial Addition.
Mettre en suite le format désiré.


À condition qu'une espace (Car 32 ou Car 160) ne perturbe pas.
0
Anthony G Messages postés 21 Date d'inscription mercredi 6 février 2013 Statut Membre Dernière intervention 6 juin 2018
11 févr. 2013 à 21:32
Merci tontong pour ces explications très claires! Ca marche à merveille!
0
Anthony G Messages postés 21 Date d'inscription mercredi 6 février 2013 Statut Membre Dernière intervention 6 juin 2018
11 févr. 2013 à 21:43
Heuu... Encore un petit problème...

Je ne peux pas traduire mes temps de ss.00 en mm:ss,00
Cela fonctionne très bien avec un format d'origine sous forme mm:ss.00 mais pas ss.00
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
11 févr. 2013 à 22:04
Déposer le fichier xls (réduit au nécessaire et anonymisé) sur cjoint.com et coller ici le lien fourni.
Préciser les cellules concernées.

eric
0
Anthony G Messages postés 21 Date d'inscription mercredi 6 février 2013 Statut Membre Dernière intervention 6 juin 2018
11 févr. 2013 à 22:38
https://www.cjoint.com/?3BlwKYXPcei

Voici le lien du document. Les cellules concernées sont les colonnes D

Merci de votre aide!
0