MACRO ou FUNCTION ? chiffre avec décimale

legall

XLDnaute Nouveau
Bonjour à toute et à tous,

J'aimerai savoir s'il étais possible dans Excel 2003 de faire une function ou autre chose permettant d'avoir :

lorsqu'on entre 18,37 dans une cellule il s'affiche dans l'autre : 18 minutes et 37 secondes (ou 18'37" ou 00:18:37)... ?

Car quand je le fais (18,37) il me donne : 08:52:48 (puisque j'ai mis la celleule avec (m:ss) et il affiche dans le résultat : 52:48

Merci d'avance pour vos soultions.

Legall
 

13GIBE59

XLDnaute Accro
Re : MACRO ou FUNCTION ? chiffre avec décimale

Bonjour legall.

Si ton nombre est en A1, tu peux essayer :

Code:
=GAUCHE(A1;2)&"minutes " &"et " & DROITE(A1;2) &" secondes"
A plus.
 

Fo_rum

XLDnaute Accro
Re : MACRO ou FUNCTION ? chiffre avec décimale

Salut

pour éviter avec 18 d'avoir 18 minutes 18 secondes,
=SI(ESTERREUR(ENT(A1));"";ENT(A1)&" minute"&SI(ENT(A1)>1;"s ";" ")&ENT(A1*100-ENT(A1)*100)&" seconde"&SI(ENT(A1*100-ENT(A1)*100)>1;"s";""))
ou
=SI(ESTERREUR(ENT(A1));"";ENT(A1)&"' "&ENT(A1*100-ENT(A1)*100)&"''")
ou fonction personnalisée (VBA)
Code:
Function DM(cel As Range)
  Application.Volatile
  If IsNumeric(cel) Then
    DM = Int(cel) & "' " & Int(cel * 100 - Int(cel) * 100) & "''"
  Else
    DM = ""
  End If
End Function
 

Fichiers joints

Dernière édition:

legall

XLDnaute Nouveau
Re : MACRO ou FUNCTION ? chiffre avec décimale

Merci cela marche !

Par contre si je souhaite faire en sorte que cla se passe dans la même cellule où on rentre le chiffre avec la décimale et obtenir le résultat (affichage) en mintes comment faire ?

D'avance et encore merci.

Legall
 

youky(BJ)

XLDnaute Barbatruc
Re : MACRO ou FUNCTION ? chiffre avec décimale

Bonjour le fil,
J'ai vu les réponses et comme mon fichier est fait d'une autre façon et en VBA
Voiçi de quoi tester (macro en Worksheet_Change)
Bruno
 

Fichiers joints

Guiv

XLDnaute Occasionnel
Re : MACRO ou FUNCTION ? chiffre avec décimale

Bonjour legall, et tous,

Par contre si je souhaite faire en sorte que cla se passe dans la même cellule où on rentre le chiffre avec la décimale et obtenir le résultat (affichage) en mintes comment faire ?
Une solution adaptée d'un code de Wilfried42:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)

[COLOR="SeaGreen"]'aide saisie heures d'après une macro de Wilfried42[/COLOR]
    If Not Intersect(Target, Range("A1")) Is Nothing Then    [COLOR="SeaGreen"]'plage à adapter[/COLOR]
        On Error Resume Next
        If Not IsNumeric(Target) Or Int(Target) > 60 Or Target - Int(Target) > 60 Then
            MsgBox "erreur de saisie"
            Exit Sub
        Else
            Dim tps As Single
            tps = Target.Value * 100
            Application.EnableEvents = Not Application.EnableEvents
            Target = Format(CDate("00:" & CStr(Int(tps / 100)) & ":" & CStr(tps Mod 100)), "[$-F400]h:mm:ss AM/PM")

            Application.EnableEvents = Not Application.EnableEvents
        End If

    End If

End Sub
EDIT: je n'avais pas regardé le code de Bruno dans le post précédent, c'est très semblable...

Cordialement,
Guiv
 
Dernière édition:

legall

XLDnaute Nouveau
Re : MACRO ou FUNCTION ? chiffre avec décimale

re-bonjour,

hola... ça vole haut pour moi...

Je ne sais pas utiliser les macros surtout celle-ci. Par exemple; où la saisir ?

Sinon, n'y-a-t-il pas une méthode plus simple pour insérer une function dans une cellule où on puisse saisir les données et obtenir le résultat dans cette même cellule ?

Par exemple :
Si je rentre dans A1 le chiffre 24,11 j'obtiens 24'11" avec uniquement :
Code:
=SI(ESTERREUR(ENT(A1));"";ENT(A1)&"' "&ENT(A1*100-ENT(A1)*100)&"''")
Merci

Legall :)
 

Guiv

XLDnaute Occasionnel
Re : MACRO ou FUNCTION ? chiffre avec décimale

Re,
Pour obtenir ton résultat dans la cellule où tu saisis, tu sera obligé de passer par une macro évènementielle.
Clic droit sur l'onglet de ta feuille/Visualiser le code (ouvre l'éditeur VBE)
Copie le code dans la fenêtre de droite
Le mien s'applique aux saisies en A1 seulement, celui de youki à toute la colonne A, mais tu peux adapter la plage que tu veux en remplaçant:
Code:
If Not Intersect(Target, [COLOR="Red"][B]Range("A1")[/B][/COLOR]) Is Nothing Then
par
Code:
If Not Intersect(Target, [COLOR="Red"][B]Range("B56")[/B][/COLOR]) Is Nothing Then
ou
Code:
If Not Intersect(Target, [COLOR="Red"][B]Range("C3:F18")[/B][/COLOR]) Is Nothing Then
par exemple

Cordialement,
Guiv
 

legall

XLDnaute Nouveau
Re : MACRO ou FUNCTION ? chiffre avec décimale

Je vous remercie... mais je n'arrive pas !

Lorsuqe je saisi 24,11 il me donne 12:24:11 AM et ce que j'iamerai c'est simplement : 24'11''

J'utilisais le code suivant :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("D2")) Is Nothing Then
        On Error Resume Next
        If Not IsNumeric(Target) Or Int(Target) > 60 Or Target - Int(Target) > 60 Then
            MsgBox "erreur de saisie"
            Exit Sub
        Else
            Dim tps As Single
            tps = Target.Value * 100
            Application.EnableEvents = Not Application.EnableEvents
            Target = Format(CDate("00:" & CStr(Int(tps / 100)) & ":" & CStr(tps Mod 100)), "[$-F400]h:mm:ss AM/PM")

            Application.EnableEvents = Not Application.EnableEvents
        End If
    End If
End Sub
Si je pouvais le faire sur toute la colone "D" à partir de D2 jusqu'à D10...

Encore merci...

PS : ci-joint le fichier de ce que je cherche à faire (suivi nage)
 

Fichiers joints

legall

XLDnaute Nouveau
Re : MACRO ou FUNCTION ? chiffre avec décimale

C'est plus ou moins cela.

En effet cela marche mais je ne peux pas l'utiliser pour les calculs des autres cellules (à doite) qui elles osnt basés sur le chiffre décimal (24,11).

Comment faire pour que les cellules puissent "traduire" en décimal les heures 00:00:00 ?

Merci

L
 

tototiti2008

XLDnaute Barbatruc
Re : MACRO ou FUNCTION ? chiffre avec décimale

Bonjour à tous,

C'est un peu une question éternelle

Pourquoi taper 24,11 pour des minutes/secondes ?
tout le monde sait que les minutes/secondes ne fonctionnent pas sur un système décimal, mais non, il faut toujours qu'on veuille taper 24,11 alors que tout le monde sait que c'est faux.

c'est comme si je voulais taper 22,15 pour 22 mois et 15 jours, et que tout Excel se mette à compter faux comme moi :(
 

Guiv

XLDnaute Occasionnel
Re : MACRO ou FUNCTION ? chiffre avec décimale

Re, bonjour tototiti
Pourquoi taper 24,11 pour des minutes/secondes ?
tout le monde sait que les minutes/secondes ne fonctionnent pas sur un système décimal, mais non, il faut toujours qu'on veuille taper 24,11 alors que tout le monde sait que c'est faux.
C'est pas faux, mais ça peut simplifier la saisie (plutôt que de taper 00:12:45 ou 12'45", ça va plus vite au clavier numérique)
Et puis c'est toujours amusant de "torturer" un peu Excel

Legall, ci-joint ton fichier avec les formules adaptées.
Cordialement,
Guiv
 

Fichiers joints

tototiti2008

XLDnaute Barbatruc
Re : MACRO ou FUNCTION ? chiffre avec décimale

Bonjour à tous,

oui, mais bon c'était histoire de raler... et c'est quand même faux (pas buté le toto ;))

si A1 contient 24,11

Code:
=TEMPSVAL("00:"&SUBSTITUE(A1;",";":"))
 

legall

XLDnaute Nouveau
Re : MACRO ou FUNCTION ? chiffre avec décimale

C'est génial ! Vous êtes très fort !!! Chapeau bas...

Merci Guiv et aussi à tous les autres...

Faux ou pas l'important c'est d'arriver à concrétiser une idée ou un projet (pour ceux qui en ont).

Merci encore
___________________________________

c'est en butant qu'on devient buteur alors !?

:D
 

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