Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

macro Conversion nombre en minutes seconde

  • Initiateur de la discussion Initiateur de la discussion zbig
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

zbig

XLDnaute Occasionnel
Bonjour

je cherche à faire une macro qui fonctionnerait dans les colonnes F, G , H qui correspondent à des temps en min sec.
En fait si je veux mettre 1min23 dans ces colonnes , je tape au clavier 123 et la macro indiquerait 1:23
Est ce possible?

merci
 
Re : macro Conversion nombre en minutes seconde

Bonsoir.

Je n'ai malheureusement pas le nom de l'auteur de ce code, à adapter pour les colonnes F,G et H.
A coller dans le module de la feuille concernée :
VB:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim HeurNum As String
    Dim HeurHeur As String
    Dim LongSaisie As Integer

    If Not Intersect(Target, Range("Heures")) Is Nothing Then
        'Si on saisit une formule, on sort
        If Target.HasFormula Then Exit Sub
        
        'Si on saisit du texte, on sort
        If IsNumeric(Target.Value) = False Then Exit Sub

        On Error Resume Next
        Application.EnableEvents = False

        'Initialisation des variables
        HeurNum = Target.Value
        LongSaisie = Len(HeurNum)

        'Test de la longueur de la chaîne saisie
        If LongSaisie = 1 Then
            HeurNum = "000" & HeurNum
        ElseIf LongSaisie = 2 Then
            HeurNum = "00" & HeurNum
        End If
        'Initialisation de la variable retournée
        HeurHeur = Left(HeurNum, Len(HeurNum) - 2) & ":" & Right(HeurNum, 2)

        'Modification de la valeur saisie
        Target = HeurHeur
        Application.EnableEvents = True
        On Error GoTo 0
          Else
    End If


End Sub
 
Re : macro Conversion nombre en minutes seconde

RE,

Et en mettant le code de cette procédure événementielle dans le module de la feuille où se produit l'événement ?

Attention, à adapter : cette macro transforme 123 en 1h23, et non pas 1mn et 23 sec.
Exemple d'adaptation pour transformer 123 en 1mn 23 sec :
Code:
'Initialisation de la variable retournée
       HeurHeur = 0 & ":" & Left(HeurNum, Len(HeurNum) - 2) & ":" & Right(HeurNum, 2)
 
Dernière édition:
Re : macro Conversion nombre en minutes seconde

Re,

Ce code permet la saisie de 1 à 6 chiffres, qui seront transformés en hh:mm:ss. L'affichage dépendra du format de nombre choisi :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)

    Dim HeurNum As String
    Dim HeurHeur As String
    Dim LongSaisie As Integer

    If Not Intersect(Target, Range("F:H")) Is Nothing Then
    'Si on saisit une formule, on sort
        If Target.HasFormula Then Exit Sub

    'Si on saisit du texte, on sort
        If IsNumeric(Target.Value) = False Then Exit Sub

        On Error Resume Next
        Application.EnableEvents = False

    'Initialisation des variables
        HeurNum = Target.Value
        LongSaisie = Len(HeurNum)

    'Test de la longueur de la chaîne saisie
        If LongSaisie = 1 Then
            HeurNum = "00000" & HeurNum
        ElseIf LongSaisie = 2 Then
            HeurNum = "0000" & HeurNum
        ElseIf LongSaisie = 3 Then
            HeurNum = "000" & HeurNum
        ElseIf LongSaisie = 4 Then
            HeurNum = "00" & HeurNum
        ElseIf LongSaisie = 5 Then
            HeurNum = "0" & HeurNum
        ElseIf LongSaisie = 6 Then
            HeurNum = HeurNum
        End If
    'Initialisation de la variable retournée
        HeurHeur = Left(HeurNum, 2) & ":" & Mid(HeurNum, 3, 2) & ":" & Right(HeurNum, 2)

    'Modification de la valeur saisie
        Target = HeurHeur
        Application.EnableEvents = True
        On Error GoTo 0
    Else
    End If

End Sub
 
Re : macro Conversion nombre en minutes seconde

Bonjour

Un nombre à 4 chiffres suffit = "0000"
si je rentre dans une cellule un nombre sans decimal
1 = 1sec résultat affiché =>00:01
10= 10sec => 00:10
100=1min00sec = > 01:00
1000=10min00=> 10:00

le format final est donc "mm:ss".

Zbig
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
266
Réponses
5
Affichages
325
Réponses
2
Affichages
163
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…