Convertir des secondes en heures, minutes et secondes
Papoux123
Messages postés
274
Date d'inscription
Statut
Membre
Dernière intervention
-
Papoux123 -
Papoux123 -
Bonjour,
Peut t'on le faire avec une seule colonne ? C'est a dire que je met un chiffre comme 4545 et il se converti dans le même carreau à 01:15:45
J'aimerai que la colonne entière B5 ai cette commande.
Présentement j'ai un bon résultat en utilisant deux colonnes, celle de gauche dans laquelle je met le nombre en secondes et celle de droite dans laquelle je convertis le nombres de secondes en divisant par 86400, mais j'aimerai ne pas avoir a utiliser deux colonnes. Et le problème aussi en utilisant deux colonnes c'est que si je n'ai pas de chiffre dans la colonne de gauche, il apparaît quand même des 00:00:00 dans la colonne de droite, j'aimerai que s'il n'y a pas de nombres rien n'apparaisse.
P.S. A chaque rangées le nombres de secondes va varier, c'est une banque de données qui enregistre les temps d'arrêts d'une machine.
Est-ce possible et si oui, quel serai le code de la macro?
Merci de votre aide
papoux123
Peut t'on le faire avec une seule colonne ? C'est a dire que je met un chiffre comme 4545 et il se converti dans le même carreau à 01:15:45
J'aimerai que la colonne entière B5 ai cette commande.
Présentement j'ai un bon résultat en utilisant deux colonnes, celle de gauche dans laquelle je met le nombre en secondes et celle de droite dans laquelle je convertis le nombres de secondes en divisant par 86400, mais j'aimerai ne pas avoir a utiliser deux colonnes. Et le problème aussi en utilisant deux colonnes c'est que si je n'ai pas de chiffre dans la colonne de gauche, il apparaît quand même des 00:00:00 dans la colonne de droite, j'aimerai que s'il n'y a pas de nombres rien n'apparaisse.
P.S. A chaque rangées le nombres de secondes va varier, c'est une banque de données qui enregistre les temps d'arrêts d'une machine.
Est-ce possible et si oui, quel serai le code de la macro?
Merci de votre aide
papoux123
A voir également:
- Convertir des secondes en heures minutes et secondes
- Convertir les secondes en heures et minutes - Meilleures réponses
- Convertir seconde en heure excel - Meilleures réponses
- 1 million de secondes - Accueil - Technologies
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Convertir epub en kindle - Guide
- Convertir youtube en mp3 avec audacity - Guide
- Convertir kindle en epub - Guide
13 réponses
Bonsoir
A mettre dans le worksheet de la feuille concernée :
Cdlmnt
"L'imagination est plus importante que le savoir." A. Einstein
A mettre dans le worksheet de la feuille concernée :
Public w As Integer Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 2 Or w = 1 Then w = 0: Exit Sub x = Target.Row y = Target.Column w = 1 hh = Target.Value / 86400 Cells(x, y).Value = hh End Sub
Cdlmnt
"L'imagination est plus importante que le savoir." A. Einstein
Merci et que fait cette macro finalement ?
papoux123
papoux123
Pour tout nombre entré dans la colonne B elle en effectue la division par 86400 et remplace le nombre entré dans la cellule par la nouvelle valeur ( hh = Target.Value / 86400 puis
Cells(x, y).Value = hh)
Bien mettre la colonne B en format Heure
la variable W mise à 1 avant d'effectuer la division c'est pour éviter qu'excel refasse le calcul en entrant la nouvelle valeur dans la cellule (on échappe avec le if w=1 exit sub) sinon ce serait sans fin et résultat 0 dans la cellule !
Cells(x, y).Value = hh)
Bien mettre la colonne B en format Heure
la variable W mise à 1 avant d'effectuer la division c'est pour éviter qu'excel refasse le calcul en entrant la nouvelle valeur dans la cellule (on échappe avec le if w=1 exit sub) sinon ce serait sans fin et résultat 0 dans la cellule !
merci pour l'info c'est très apprécié.
Je ne me souviens plus comment aller mettre le code dans worksheet, quelqu'un pourrais m'éclairer?
Papoux123
Je ne me souviens plus comment aller mettre le code dans worksheet, quelqu'un pourrais m'éclairer?
Papoux123
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 2 Or w = 1 Then w = 0: Exit Sub x = Target.Row y = Target.Column w = 1 hh = Target.Value / 86400 Cells(x, y).Value = hh End Sub
La colonne B correspond a quoi dans le code car je voudrais changer de colonne ?
Papoux123
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
L'image n'est pas très clair et pourtant elle est de bonne dimension.
Voila ce que ça donnes, Est-ce bien dans ThisWorkBook que je dois le mettre et quand on a copié, on a juste a sauvegarder ? Il y à une autre macro dans module 1.
Doit t'on créer Module 2 ?
Excuse moi pour mon ignorance, j'essai d'apprendre.
Merci de m'aider
papoux123
J'avais répondu mais le message a disparu !
Non pas dans this workbook
La macro doit étre liée à la feuille où elle s'applique puisque c'est la modification d'une cellule qui déclenche la macro et qu'elle ne doit pas s'appliquer dans les autres feuilles
Dans l'arborescence au dessus de This workbook il y a les noms des feuilles du classeur
Double cliquer sur le nom de la feuille concernée et mettre le code dans la fenêtre de droite
Je ne sais pas quel est la macro dans module 1
Toutes macro dans un module est accessible de n'importe quel endroit du classeur et dans la liste des Macros dans l'onglet Developpeur
il peut y avoir plusieurs macro dans un même module
On peut classer les macros dans plusieurs modules
Nous sommes tous ignorants et c'est en pratiquant qu'on apprend peu à peu !
Cdlmnt
Non pas dans this workbook
La macro doit étre liée à la feuille où elle s'applique puisque c'est la modification d'une cellule qui déclenche la macro et qu'elle ne doit pas s'appliquer dans les autres feuilles
Dans l'arborescence au dessus de This workbook il y a les noms des feuilles du classeur
Double cliquer sur le nom de la feuille concernée et mettre le code dans la fenêtre de droite
Je ne sais pas quel est la macro dans module 1
Toutes macro dans un module est accessible de n'importe quel endroit du classeur et dans la liste des Macros dans l'onglet Developpeur
il peut y avoir plusieurs macro dans un même module
On peut classer les macros dans plusieurs modules
Nous sommes tous ignorants et c'est en pratiquant qu'on apprend peu à peu !
Cdlmnt
Ça fonctionne mais sur un fichier exel qui n'est pas lié a une base de données. SI je l'utilise dans ma base de donnée, ça ne fonctionne pas. Donc je dois fonctionner sur deux colonnes, la première j'entre mes chiffres venant de ma base de donnée et la seconde ou je fais le calcul en me servant de la colonne de gauche. Ça ca fonctionne sauf que ce que je n'aimes pas c'est que dans ma colonne de droite, j'ai dans toute la colonne des 00:00:00 qui apparaissent même si je n'ai aucune valeur dans la colonne de gauche. Peut t'on effacer les cases qui n'ont pas de comparaison a faire. Estt'il possible si j'ai 00:00:00 de demander que la case soit vide et que la valeur apparaissent seulement si j'ai une valeur de mise dans la colonne de gauche ?
Je sais pas si c'est bien expliqué.
Papoux
Je sais pas si c'est bien expliqué.
Papoux
Ok je n'avais pas compris que la colonne de chiffres provenait d'une copie d'une base de donnée
alors plusieurs solutions :
Soit une macro qui relit toute la colonne de données et fait la conversion mais est ce que le colonne à toujours le même nombre de lignes ?
Soit pour supprimer les 00:00:00 une condition SI dans la formule :
=SI(B1="";"";B1/86400)
alors plusieurs solutions :
Soit une macro qui relit toute la colonne de données et fait la conversion mais est ce que le colonne à toujours le même nombre de lignes ?
Soit pour supprimer les 00:00:00 une condition SI dans la formule :
=SI(B1="";"";B1/86400)
La macro pourrait être celle-ci pour la colonne B
A mettre dans un module et à lancer depuis Macros de l'onglet Développeur
Sub transfo()
Dim DerLigne As Long
DernLigne = Range("B" & Rows.Count).End(xlUp).Row 'derniere ligne non vide de la colonne
For n = 1 To DerLigne 'boucle de la ligne 1 à la dernière
If Range("B" & n).Value<>"" Then 'si la cellule n'est pas vide
hh = Range("B" & n).Value / 86400 ' on fait la division
Range("B" & n).Value = hh ' on remplace la valeur dans la cellule parle résulta
End If
Next n
End Sub
Ne pas oublier de mettre la colonne B en Format Heure et même en Format personnalisé [h]:mm:ss si des durées peuvent être supérieures à 23 h 59
A mettre dans un module et à lancer depuis Macros de l'onglet Développeur
Sub transfo()
Dim DerLigne As Long
DernLigne = Range("B" & Rows.Count).End(xlUp).Row 'derniere ligne non vide de la colonne
For n = 1 To DerLigne 'boucle de la ligne 1 à la dernière
If Range("B" & n).Value<>"" Then 'si la cellule n'est pas vide
hh = Range("B" & n).Value / 86400 ' on fait la division
Range("B" & n).Value = hh ' on remplace la valeur dans la cellule parle résulta
End If
Next n
End Sub
Ne pas oublier de mettre la colonne B en Format Heure et même en Format personnalisé [h]:mm:ss si des durées peuvent être supérieures à 23 h 59
Tous cela fonctionne mais pas dans mon fichier qui fonctionne avec ma banque de données. La première ligne de mon fichier contient les titres correspondant a mes champs.
Il ne semble pas avoir de solution a mon problème on dirais.
papoux123
Il ne semble pas avoir de solution a mon problème on dirais.
papoux123
Est-ce qu'il est possible que ça soit la version d'exel. J'utilise Exel 2010 sur un poste de travail et ça fonctionne mais sur un autre poste avec 2007 ca marche pas.
papoux123
papoux123
Les deux méthodes ne fonctionnent pas avec la banque de données car je l'aurais pris sans problème la deuxième.
papoux123
papoux123
C'est déjà bien gentil de ta part d'avoir investi du temps pour moi. Je t'en remerci.
Une petite question.
Dans Office 2010 quand je met ceci =SI(G1="";"";G1/86400) les deux G1 reste bleu, quand je le met dans Office 2007 le premier G1 est bleu mais le reste est noir.
Est-ce que tu comprend pourquoi ?
Papoux123
Une petite question.
Dans Office 2010 quand je met ceci =SI(G1="";"";G1/86400) les deux G1 reste bleu, quand je le met dans Office 2007 le premier G1 est bleu mais le reste est noir.
Est-ce que tu comprend pourquoi ?
Papoux123
J'ai justement une erreur quand j'inscrit la formule et pourtant je viens d'essayer sur un autre poste de travail avec 2007 et ça fonctionne. Je me demande si le fait que j'utilise Windows XP virtual sur mon portable qui a WIndows 7 si ce n'est pas ça qui cause problème. Car mon autre logiciel qui crée les banques de données ne fonctionne pas sur Windows 7 64 bits et j'ai dû installer Windows XP Virtual pour le faire fonctionner.
Je vais refaire des essais complet avec un autre poste de travail.
Je te reviens avec des nouvelles
Papoux123
Je vais refaire des essais complet avec un autre poste de travail.
Je te reviens avec des nouvelles
Papoux123
Finalement, ça fonctionne très bien sur le poste de travail ou sera installé le logiciel d'acquisition de données.
Un GROS MERCI de m'avoir aider, c'est fortement apprécié.
Vous les français, on se passerai pas de vous, d'ailleurs mon gendre est français :)
Bon week end et au plaisir de se rejaser.
Papoux123
Un GROS MERCI de m'avoir aider, c'est fortement apprécié.
Vous les français, on se passerai pas de vous, d'ailleurs mon gendre est français :)
Bon week end et au plaisir de se rejaser.
Papoux123