OVH Cloud OVH Cloud

Fonction personnelle

5 réponses
Avatar
Dédé
Afin de mettre dans une cellule la date du dernier=20
entegistrement du fichier, j'ai du cr=E9=E9 une fonction.


Public Function DateEnregistrement()
' Permet d'ins=E9rer la date d'enregistrement dans une=20
cellule

Application.Volatile
Dim fs, f, s
Set fs =3D CreateObject("Scripting.FileSystemObject")
Set f =3D fs.GetFile(ActiveWorkbook.Name)
s =3D f.DateLastModified
=20
=20
DateEnregistrement =3D s

End Function

Ca marche, mais petit probl=E8me : qqfois, au lieu d'avoir=20
le r=E9sultat, j'ai #Valeur! dans la cellule.

Qui peut me tuyauter et me dire pourquoi?
Peut-=EAtre y a-t-il plus simple?
Merci =E0 tous...

5 réponses

Avatar
michdenis
Bonjour Dédé,

Est-ce que ton fichier a déjà été enregistré lorsque tu obtiens "Valeur" ?

La propriété existe seulement après le premier enregistrement .


Salutations!


"Dédé" a écrit dans le message de news:0a2a01c340c8$33504000$
Afin de mettre dans une cellule la date du dernier
entegistrement du fichier, j'ai du créé une fonction.


Public Function DateEnregistrement()
' Permet d'insérer la date d'enregistrement dans une
cellule

Application.Volatile
Dim fs, f, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(ActiveWorkbook.Name)
s = f.DateLastModified


DateEnregistrement = s

End Function

Ca marche, mais petit problème : qqfois, au lieu d'avoir
le résultat, j'ai #Valeur! dans la cellule.

Qui peut me tuyauter et me dire pourquoi?
Peut-être y a-t-il plus simple?
Merci à tous...
Avatar
Dédé
Bien sur. Le fichier a été enregistré.

Ca marche.. mais justement pas systématiquement.
Où est l'erreur?
Que manqu-t-il dans ma fonction?



-----Message d'origine-----
Bonjour Dédé,

Est-ce que ton fichier a déjà été enregistré lorsque tu
obtiens "Valeur" ?


La propriété existe seulement après le premier
enregistrement .



Salutations!


"Dédé" a écrit dans le message de
news:0a2a01c340c8$33504000$

Afin de mettre dans une cellule la date du dernier
entegistrement du fichier, j'ai du créé une fonction.


Public Function DateEnregistrement()
' Permet d'insérer la date d'enregistrement dans une
cellule

Application.Volatile
Dim fs, f, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(ActiveWorkbook.Name)
s = f.DateLastModified


DateEnregistrement = s

End Function

Ca marche, mais petit problème : qqfois, au lieu d'avoir
le résultat, j'ai #Valeur! dans la cellule.

Qui peut me tuyauter et me dire pourquoi?
Peut-être y a-t-il plus simple?
Merci à tous...


.



Avatar
michdenis
Bonjour Dédé,

J'ai testé la fonction suivante et elle semble fonctionner correctement sur un fichier enregistré.
Je n'arrive pas à reproduire ce que tu obtiens "Valeur".
Est-ce que tu connais précisément les circonstances qui génèrent ce résultat " Valeur" ?

'--------------------------
Function ModDateFile()

Application.Volatile
Dim fs, f, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(ActiveWorkbook.Name)
s = f.DateLastModified
ModDateFile = s

End Function
'--------------------------


Salutations!



"Dédé" a écrit dans le message de news:036901c34154$fb75b740$
Bien sur. Le fichier a été enregistré.

Ca marche.. mais justement pas systématiquement.
Où est l'erreur?
Que manqu-t-il dans ma fonction?



-----Message d'origine-----
Bonjour Dédé,

Est-ce que ton fichier a déjà été enregistré lorsque tu
obtiens "Valeur" ?


La propriété existe seulement après le premier
enregistrement .



Salutations!


"Dédé" a écrit dans le message de
news:0a2a01c340c8$33504000$

Afin de mettre dans une cellule la date du dernier
entegistrement du fichier, j'ai du créé une fonction.


Public Function DateEnregistrement()
' Permet d'insérer la date d'enregistrement dans une
cellule

Application.Volatile
Dim fs, f, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(ActiveWorkbook.Name)
s = f.DateLastModified


DateEnregistrement = s

End Function

Ca marche, mais petit problème : qqfois, au lieu d'avoir
le résultat, j'ai #Valeur! dans la cellule.

Qui peut me tuyauter et me dire pourquoi?
Peut-être y a-t-il plus simple?
Merci à tous...


.



Avatar
Alain CROS
Bonjour.

Tu obtiens #Valeur! quand ton répertoire a changé par exemple avec une commande ChDir "C:"
De plus tu ne libères pas les variables dans ta fonction alors à chaque recalcule de la feuille, ta mémoire disponible diminue.
Essaye comme ça.

Public Function DateEnregistrement()
Application.Volatile
Dim fs, f
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(ActiveWorkbook.FullName)
DateEnregistrement = f.DateLastModified
set f = Nothing
set fs = Nothing
End Function

Alain CROS.

"Dédé" a écrit dans le message de news: 0a2a01c340c8$33504000$
Afin de mettre dans une cellule la date du dernier
entegistrement du fichier, j'ai du créé une fonction.


Public Function DateEnregistrement()
' Permet d'insérer la date d'enregistrement dans une
cellule

Application.Volatile
Dim fs, f, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(ActiveWorkbook.Name)
s = f.DateLastModified


DateEnregistrement = s

End Function

Ca marche, mais petit problème : qqfois, au lieu d'avoir
le résultat, j'ai #Valeur! dans la cellule.

Qui peut me tuyauter et me dire pourquoi?
Peut-être y a-t-il plus simple?
Merci à tous...
Avatar
Dédé
Ben justement non.. çà me paraît aléatoire.
J'arrive pas à comprendre pourquoi

Mais j'obtiens bien l'erreur : "#Valeur!"
signe d'une erreur .. mais laquelle? mystère!!!


-----Message d'origine-----
Bonjour Dédé,

J'ai testé la fonction suivante et elle semble
fonctionner correctement sur un fichier enregistré.

Je n'arrive pas à reproduire ce que tu obtiens "Valeur".
Est-ce que tu connais précisément les circonstances qui
génèrent ce résultat " Valeur" ?


'--------------------------
Function ModDateFile()

Application.Volatile
Dim fs, f, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(ActiveWorkbook.Name)
s = f.DateLastModified
ModDateFile = s

End Function
'--------------------------


Salutations!



"Dédé" a écrit dans le message de
news:036901c34154$fb75b740$

Bien sur. Le fichier a été enregistré.

Ca marche.. mais justement pas systématiquement.
Où est l'erreur?
Que manqu-t-il dans ma fonction?



-----Message d'origine-----
Bonjour Dédé,

Est-ce que ton fichier a déjà été enregistré lorsque tu
obtiens "Valeur" ?


La propriété existe seulement après le premier
enregistrement .



Salutations!


"Dédé" a écrit dans le message de
news:0a2a01c340c8$33504000$

Afin de mettre dans une cellule la date du dernier
entegistrement du fichier, j'ai du créé une fonction.


Public Function DateEnregistrement()
' Permet d'insérer la date d'enregistrement dans une
cellule

Application.Volatile
Dim fs, f, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(ActiveWorkbook.Name)
s = f.DateLastModified


DateEnregistrement = s

End Function

Ca marche, mais petit problème : qqfois, au lieu d'avoir
le résultat, j'ai #Valeur! dans la cellule.

Qui peut me tuyauter et me dire pourquoi?
Peut-être y a-t-il plus simple?
Merci à tous...


.




.