Problème Macro Excel
poussin
-
poussin -
poussin -
Bonjour,
J'essaye (en vain) de créer une macro Excel qui me permet de convertir un tableau de Timestamp en date et heure compréhensible par l'Homme.
Le problème est que lorsque je passe la variable test en paramètre, un message d'erreur s'affiche indiquant "Incompatibilité du type"
Par contre, lorsque je passe en paramètre directement la valeur du Timestamp (exemple : 1255502257.881) là il n'y a aucun problème, la fonction s'exécute parfaitement...
Pouvez-vous m'aidez svp !!!
Cordialement.
J'essaye (en vain) de créer une macro Excel qui me permet de convertir un tableau de Timestamp en date et heure compréhensible par l'Homme.
Sub Test_V1()
Dim test As Double
test = ActiveCell.Value
Cells(ActiveCell.Row, 1).Value = Timestamp_To_Date(test)
End Sub
Function Timestamp_To_Date(TimeStamp As Double) As Date
Timestamp_To_Date = DateAdd("s", TimeStamp, CDate("01/01/1970"))
End Function
Le problème est que lorsque je passe la variable test en paramètre, un message d'erreur s'affiche indiquant "Incompatibilité du type"
Par contre, lorsque je passe en paramètre directement la valeur du Timestamp (exemple : 1255502257.881) là il n'y a aucun problème, la fonction s'exécute parfaitement...
Pouvez-vous m'aidez svp !!!
Cordialement.
A voir également:
- Problème Macro Excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
13 réponses
Function Timestamp_To_Date(TimeStamp As Double) As Date
Timestamp_To_Date = DateAdd("s", TimeStamp, CDate("01/01/1970"))
End Function
heu! ce ne serais pas l'inverse...?
tu donnes une date et la fonction te calcul l'écart (différence) en seconde et donc te donnes un double en sortie
Function Timestamp_To_Date(TimeStamp As date) As double
Timestamp_To_Date = DateAdd("s", TimeStamp, CDate("01/01/1970"))
End Function
Timestamp_To_Date = DateAdd("s", TimeStamp, CDate("01/01/1970"))
End Function
heu! ce ne serais pas l'inverse...?
tu donnes une date et la fonction te calcul l'écart (différence) en seconde et donc te donnes un double en sortie
Function Timestamp_To_Date(TimeStamp As date) As double
Timestamp_To_Date = DateAdd("s", TimeStamp, CDate("01/01/1970"))
End Function
Je viens d'essayer et là, peut importe le paramètre que j'envoie dans la fonction, ça ne fonctionne pas :s
As-tu essayé ce que je t'ai donné?
essaye ça! et donne moi ton résultat....
sub test()
dim X as date
dim y as variant
x=cdate("15/10/2009")
y=Timestamp_To_Date(x)
End Sub
Function Timestamp_To_Date(TimeStamp As date) As double
Timestamp_To_Date = DateAdd("s", TimeStamp, CDate("01/01/1970"))
End Function
essaye ça! et donne moi ton résultat....
sub test()
dim X as date
dim y as variant
x=cdate("15/10/2009")
y=Timestamp_To_Date(x)
End Sub
Function Timestamp_To_Date(TimeStamp As date) As double
Timestamp_To_Date = DateAdd("s", TimeStamp, CDate("01/01/1970"))
End Function
Le résultat de la fonction que tu m'as proposé est le suivant : 25569,46413
le résultat que j'attendais était une date au format jj/mm/aaaa hh:mm:ss
le résultat que j'attendais était une date au format jj/mm/aaaa hh:mm:ss
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je crois que j'ai mal compris ce que tu souhaitais faire....
je n'ai pas le temps de regarder mais si j'ai un momment...
je n'ai pas le temps de regarder mais si j'ai un momment...
en fait, j'ai un tableau de Timestamp que je dois convertir en date et heure compréhensible mais je n'y arrives pas
peux-tu faire voir ton fichier sans données confidentielles sur ci-joint.fr
sinon
je ne connais pas le format de timestamp.
montre les données explique ce que tu veux obtenir.
si je peux t'aider...
A+
sinon
je ne connais pas le format de timestamp.
montre les données explique ce que tu veux obtenir.
si je peux t'aider...
A+
Voila un exemple de mon problème :
J'ai une colonne de Timestamp comme ceci :
1255424354.687
1255424354.724
1255424354.862
...
Et je souhaite obtenir un format compréhensible comme ceci :
13/10/2009 10:59:14
13/10/2009 10:59:14
13/10/2009 10:59:14
...
J'ai fait cette conversion à partir d'un site internet qui propose de le convertir mais vu le nombre d'enregistrement je ne pourrais pas les convertir tous un par un...
J'ai une colonne de Timestamp comme ceci :
1255424354.687
1255424354.724
1255424354.862
...
Et je souhaite obtenir un format compréhensible comme ceci :
13/10/2009 10:59:14
13/10/2009 10:59:14
13/10/2009 10:59:14
...
J'ai fait cette conversion à partir d'un site internet qui propose de le convertir mais vu le nombre d'enregistrement je ne pourrais pas les convertir tous un par un...
j'ai regardé ta fonction initiale
elle fonctionne dans les deux cas en vba et sur la feuille.
il ne faut pas de point ( 1255424354.687 ) il y un point
ce qu'il faut 1255424354,687 une virgule
sinon j'ai remaqué une différence de 2 heures entre ta fonction et un convertisseur en ligne
autre chose je pense qu'il est préférable d'utiliser un double plutôt qu'un long
A+
elle fonctionne dans les deux cas en vba et sur la feuille.
il ne faut pas de point ( 1255424354.687 ) il y un point
ce qu'il faut 1255424354,687 une virgule
sinon j'ai remaqué une différence de 2 heures entre ta fonction et un convertisseur en ligne
autre chose je pense qu'il est préférable d'utiliser un double plutôt qu'un long
A+
Tu sais je suis vraiment pas doué en vba...
Es ce que tu peux me donner ce que tu as fait pour que cela fonctionne ?
Es ce que tu peux me donner ce que tu as fait pour que cela fonctionne ?
http://www.cijoint.fr/cjlink.php?file=cj200910/cijDj459tM.xls
voilà l'essai que j'ai fait
j'ai mis un format dans les cellules
voilà l'essai que j'ai fait
j'ai mis un format dans les cellules
Super ca marche !!!!
Tu avais raison c'était bien les . qui faisait tout foirer ^^
Par contre, il y a bien une différence de 2h es ce que tu sais comment y remédier ?
Tu avais raison c'était bien les . qui faisait tout foirer ^^
Par contre, il y a bien une différence de 2h es ce que tu sais comment y remédier ?
Finalement j'ai trouvé comment régler ce problème de 2h manquante, j'ai rajouté dans la fonction 7200 secondes
En tout cas merci beaucoup de ton aide :D
Function Timestamp_To_Date(TimeStamp As Double) As Date
TimeStamp = TimeStamp + 7200
Timestamp_To_Date = DateAdd("s", TimeStamp, CDate("01/01/1970"))
End Function
En tout cas merci beaucoup de ton aide :D