XL 2010 récupération d'info à partir du nom du fichier

philmaure

XLDnaute Impliqué
Bonjour,

J'ai un fichier qui s'appelle (exemple) Test2016-09-23-15-54-19.XLS

Existe t il une solution pour récupérer la date et l'heure pour l'indiquer à l'intérieur du fichier Excel ?
dans mon fichier test : en colonne B et C

Merci pour votre aide
Cdlt
Philmaure
 

Pièces jointes

  • test.xlsx
    16.4 KB · Affichages: 26

vgendron

XLDnaute Barbatruc
c'est pour ca que j'avais mis en D19 un nom qui corresponde
avec ton nouveau fichier, suffit d'adapter
en B2
=DATE(STXT(NOMCLASSEUR();NBCAR(NOMCLASSEUR())-22;4);STXT(NOMCLASSEUR();NBCAR(NOMCLASSEUR())-17;2);STXT(NOMCLASSEUR();NBCAR(NOMCLASSEUR())-14;2))
et en C2
=TEMPS(STXT(NOMCLASSEUR();NBCAR(NOMCLASSEUR())-11;2);STXT(NOMCLASSEUR();NBCAR(NOMCLASSEUR())-8;2);STXT(NOMCLASSEUR();NBCAR(NOMCLASSEUR())-5;2))
 

Paf

XLDnaute Barbatruc
Bonjour philmaure, vgendron,

un essai macro :

Code:
Sub Recup()
dim DateT as string, d
DateT = ThisWorkbook.Name
d = Split(Left(Right(DateT, 23), 19), "-")
With Worksheets("Rapport 1")
.Range("B2") = DateSerial(d(0), d(1), d(2))
.Range("C2") = TimeSerial(d(3), d(4), d(5))
.Range("C2").NumberFormat = "[$-F400]h:mm:ss AM/PM" ' à adapter
End With
End Sub

A+
 

Paf

XLDnaute Barbatruc
re,

la macro renvoie une erreur sur la ligne
.Range("B2") = DateSerial(d(0), d(1), d(2))

Pourtant ça tourne sur le classeur joint au post 3

et pour la reponse de Paf j'ai toujours une erreur Nom ?

il doit y avoir confusion de qui a envoyé quoi ??


Un essai par fonctions personnalisées

en B2 : =RecupDate() , en C2 : =RecupHeure()

dans un module standard

Code:
Function RecupDate()
DateT = ThisWorkbook.Name
d = Split(Left(Right(DateT, 23), 19), "-")
RecupDate = DateSerial(d(0), d(1), d(2))
End Function

Function RecupHeure()
DateT = ThisWorkbook.Name
d = Split(Left(Right(DateT, 23), 19), "-")
RecupHeure = TimeSerial(d(3), d(4), d(5))
End Function

ou bien si on veut date et heure dans la même cellule:

en B2 : =RecupDateHeure()

dans un module standard :
Code:
Function RecupDateHeure()
DateT = ThisWorkbook.Name
d = Split(Left(Right(DateT, 23), 19), "-")
RecupDateHeure = CDbl(DateSerial(d(0), d(1), d(2))) + CDbl(TimeSerial(d(3), d(4), d(5)))
End Function

A+
 

Paf

XLDnaute Barbatruc
re,

le classeur est il toujours de la forme :
Test2016-09-23-15-54-19.XLS

tout caractère en plus ou en moins fera planté dateserial et timeserial qui ne reconnaitont plus le découpage comme élément de date ( ou time).

A+

Edit : le problème sera le même sur les formules
 

philmaure

XLDnaute Impliqué
re,

oui je fais les tests avec le meme fichier.
J'ai trouve un contournement. Je récupère le nom du fichier dans une cellule avec la formule :
=STXT(CELLULE("filename";A1);TROUVE("[";CELLULE("filename";A1))+1;SOMME(TROUVE({"[";"]"};CELLULE("filename";A1))*{-1;1})-5)

puis je récupère l'heure avec la fonction Droite

Je suis certain que les solutions proposées fonctionnent mais je trouve pas d'où vient le pb. Je continue à chercher.

Si je peux abuser est ce que la macro fonctionne chez vous sur mon fichier ?

Cdlt
Philmaure
 

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 908
Membres
103 982
dernier inscrit
krakencolas