OVH Cloud OVH Cloud

date d'ouverture fichier

26 réponses
Avatar
magic-dd
Bonjour

comment recuperer la date d'ouverture du classeur Excel meme si celui ci n'=
est pas enregistr=E9

exemple

j'ouvre un classeur sur le reseau, la date du jour s'inscrit dans une cellu=
le, je n'enregistre pas mon classeur mais la date reste celle inscrite

6 réponses

1 2 3
Avatar
magic-dd
MichD

Quel travail formidable

j'ai donc mon classeur contenant au moins une feuille nommée Commentaires

des que je change le contenu de la cellule B2 je dois avoir la date de modi f

Mais ou, je ne voius rien s'inscrire et aucune possibilité de faire du pa s à pas dans la complémentaire

je suis vraiment désolé de te demander cela mais que dois je faire pour avoir la date en cellule A50 et le Nom en B50 de la feuille 1

merci encore une fois de plus de cette patience que tu me portes


Le mardi 6 août 2013 19:09:24 UTC+2, MichD a écrit :
Une dernière remarque :



Afin que les usagers ne puissent pas modifier le nom de

la feuille "Commentaires", il serait bon que tu protèges

le classeur!



MichD

---------------------------------------------------------------
Avatar
MichD
| Mais ou, je ne voius rien s'inscrire

La date de la modification est inscrite dans un "NOM" masqué
(insertion / nom / définir) ayant comme intitulé "LaDate"

Si tu avais pris le temps de copier la procédure que je t'ai
donné dans ton classeur de macros personnelles, tu n'aurais
eu qu'à appeler la procédure pour voir la valeur de "LaDate"
dans une boîte de message. Cela s'applique à tous les fichiers
ayant une feuille commentaire...

'------------------------------------------
Sub Date_Dernière_Modification_B2()
Dim X As Variant
On Error Resume Next
X = Evaluate("LaDate")
If IsError(X) Then
Err.Clear
Else
MsgBox Format(CDbl(Evaluate("LaDate")), "DD MMM YYYY H:MM:SS")
End If
End Sub
'------------------------------------------

| et aucune possibilité de faire du pas à pas dans la complémentaire

Le projetVBA du fichier de la macro complémentaire n'est pas protégé.
Tu mets des points d'arrêt sur chacune des procédures. Lorsqu'elles sont
appelées, il s'agit d'utiliser la touche F8 pour le pas-à-pas. À la limite,
tu
cliques sur le ThisWorkbook du projetVBA de la macro complémentaire,
et dans les propriétés, tu mets la valeur "IsAddin" = False
Les feuilles du fichier de la macro complémentaire vont s'afficher comme
n'importe quel classeur. Dans la feuil1 de ce fichier, tu peux suivre
l'évolution de ce qui est affiché. Lorsque tu as tout compris, tu remets
la propriété "isAddin" = True pour masquer les feuilles.

| dois je faire pour avoir la date en cellule A50 et le Nom en B50 de la
feuille 1

Si j'ai bien compris, en B50, tu veux avoir le nom de la première feuille du
classeur??

Rien de plus facile, il s'agit de modifier légèrement le code du module de
classe
dans le fichier de la macro complémentaire.

L'information que tu veux en A50 et B50 de la première feuille s'inscrit au
moment
de la fermeture du classeur. C'est l'événement que j'ai choisi puisque
l'usager peut
modifier plusieurs fois la cellule B2 lors d'une même séance de travail. Si
une
modification est apportée à la cellule B2, la date et l'heure inscrite
seront celles au
moment où l'usager ferme le classeur.

Dans le module de classe, remplace cette procédure par celle-ci.
Le code ajouté est spécifié.

'------------------------------------------------------
Private Sub AppXl_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As
Boolean)

Dim NomClasseur As String, X As Variant

With ThisWorkbook ' (classeur de la macro complémentaire)
With .Worksheets("Feuil1")
'Extraire le nom du classeur
NomClasseur = Wb.Name
'Identifie la ligne où est contenu de nom du classeur
X = Application.Match(NomClasseur, .Range("A:A"), 0)
'teste si le nom du classeur a été trouvé
If IsNumeric(X) Then
'Vérifie si depuis l'ouverture du fichier la valeur
'de la cellue B2 a été modifié
If .Range("C" & X) <> .Range("B" & X) Then
'Si oui, on enregistre la date de fermeture du fichier
'en créant un nom (Name) LaDate , contenant la date +
l'heure

'***************Code ajouté*****************
With Wb.Worksheets(1)
.Range("A50").NumberFormat = "DD MMM YYYY H:MM:SS"
.Range("A50").Value = Now()
.Range("A50").Value = .Name
End With
'*******************************************
'Afin de s'assurer de conserver cette donnée, le fichier
'est enregistré automatiquement.
Wb.Save
End If
End If
End With
End With
End Sub
'------------------------------------------------------

Tu es sûrement pressé par le temps, mais il faudra quand même que
tu prennes un peu de temps pour comprendre comme cela fonctionne.

IMPORTANT - IMPORTANT :
Lorsque tu fais une modification à un fichier de macros complémentaires,
tu dois le sauvegarder manuellement en utilisant la commande à cet
effet lorsque le fichier est le fichier actif dans la fenêtre VBA.
N'oublie pas cela est aussi vrai pour la modification que je t'ai demandé
de faire dans le message précédent. Si tu ne le fais pas toi-même, tu
n'auras pas de message d'Excel demandant si tu désires sauvegarder
les modifications faites.

Après avoir fait les 2 changements au code du fichier de la macro
complémentaire, enregistre-le et ferme totalement le classeur.
Dès l'ouverture, le fichier de la macro complémentaire sera en vigueur.


MichD
---------------------------------------------------------------
Avatar
magic-dd
Bonjour MichD

Quel reveil heureux

je viens de comprendre enfin ( dur de la feuille le Magic-dd) que ladate et ait en fait un nom comme on le fait d'une zonne nommée.

tout fonctionne parfaitement desormais

juste à verifier le nom d'utilisateur qui ne fonctionne pas parfaitement car j'obtiens le nom de la feuille en A50 plutot que l'utilisateur.

pour le reste, je vais profiter de mes vacances pour etuduer cela

merci beaucoup encore, tu m'enleves un arbre du pied

bonne journée


Le mardi 6 août 2013 22:25:19 UTC+2, MichD a écrit :
| Mais ou, je ne voius rien s'inscrire



La date de la modification est inscrite dans un "NOM" masqué

(insertion / nom / définir) ayant comme intitulé "LaDate"



Si tu avais pris le temps de copier la procédure que je t'ai

donné dans ton classeur de macros personnelles, tu n'aurais

eu qu'à appeler la procédure pour voir la valeur de "LaDate"

dans une boîte de message. Cela s'applique à tous les fichiers

ayant une feuille commentaire...



'------------------------------------------

Sub Date_Dernière_Modification_B2()

Dim X As Variant

On Error Resume Next

X = Evaluate("LaDate")

If IsError(X) Then

Err.Clear

Else

MsgBox Format(CDbl(Evaluate("LaDate")), "DD MMM YYYY H:MM:SS")

End If

End Sub

'------------------------------------------



| et aucune possibilité de faire du pas à pas dans la complémentair e



Le projetVBA du fichier de la macro complémentaire n'est pas protég é.

Tu mets des points d'arrêt sur chacune des procédures. Lorsqu'elles s ont

appelées, il s'agit d'utiliser la touche F8 pour le pas-à-pas. À la limite,

tu

cliques sur le ThisWorkbook du projetVBA de la macro complémentaire,

et dans les propriétés, tu mets la valeur "IsAddin" = False

Les feuilles du fichier de la macro complémentaire vont s'afficher comm e

n'importe quel classeur. Dans la feuil1 de ce fichier, tu peux suivre

l'évolution de ce qui est affiché. Lorsque tu as tout compris, tu rem ets

la propriété "isAddin" = True pour masquer les feuilles.



| dois je faire pour avoir la date en cellule A50 et le Nom en B50 de la

feuille 1



Si j'ai bien compris, en B50, tu veux avoir le nom de la première feuil le du

classeur??



Rien de plus facile, il s'agit de modifier légèrement le code du modu le de

classe

dans le fichier de la macro complémentaire.



L'information que tu veux en A50 et B50 de la première feuille s'inscri t au

moment

de la fermeture du classeur. C'est l'événement que j'ai choisi puisqu e

l'usager peut

modifier plusieurs fois la cellule B2 lors d'une même séance de trava il. Si

une

modification est apportée à la cellule B2, la date et l'heure inscrit e

seront celles au

moment où l'usager ferme le classeur.



Dans le module de classe, remplace cette procédure par celle-ci.

Le code ajouté est spécifié.



'------------------------------------------------------

Private Sub AppXl_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As

Boolean)



Dim NomClasseur As String, X As Variant



With ThisWorkbook ' (classeur de la macro complémentaire)

With .Worksheets("Feuil1")

'Extraire le nom du classeur

NomClasseur = Wb.Name

'Identifie la ligne où est contenu de nom du classeur

X = Application.Match(NomClasseur, .Range("A:A"), 0)

'teste si le nom du classeur a été trouvé

If IsNumeric(X) Then

'Vérifie si depuis l'ouverture du fichier la valeur

'de la cellue B2 a été modifié

If .Range("C" & X) <> .Range("B" & X) Then

'Si oui, on enregistre la date de fermeture du fichier

'en créant un nom (Name) LaDate , contenant la date +

l'heure



'***************Code ajouté*****************

With Wb.Worksheets(1)

.Range("A50").NumberFormat = "DD MMM YYYY H:MM:SS"

.Range("A50").Value = Now()

.Range("A50").Value = .Name

End With

'*******************************************

'Afin de s'assurer de conserver cette donnée, le fichie r

'est enregistré automatiquement.

Wb.Save

End If

End If

End With

End With

End Sub

'------------------------------------------------------



Tu es sûrement pressé par le temps, mais il faudra quand même que

tu prennes un peu de temps pour comprendre comme cela fonctionne.



IMPORTANT - IMPORTANT :

Lorsque tu fais une modification à un fichier de macros complémentair es,

tu dois le sauvegarder manuellement en utilisant la commande à cet

effet lorsque le fichier est le fichier actif dans la fenêtre VBA.

N'oublie pas cela est aussi vrai pour la modification que je t'ai demand é

de faire dans le message précédent. Si tu ne le fais pas toi-même, tu

n'auras pas de message d'Excel demandant si tu désires sauvegarder

les modifications faites.



Après avoir fait les 2 changements au code du fichier de la macro

complémentaire, enregistre-le et ferme totalement le classeur.

Dès l'ouverture, le fichier de la macro complémentaire sera en vigueu r.





MichD

---------------------------------------------------------------
Avatar
magic-dd
bien remis en place la complementaire, j'ai modifié le module de classe p our la recuperation de nom

'***************Code ajouté*****************
With Wb.Worksheets(1)
.Range("b50").NumberFormat = "DD MMM YYYY H:MM:SS"
.Range("b50").Value = Now()
.Range("A50").Value = Environ("username")
End With

tout est parfait

je ne sais pas d'ou tu es car sinon nous aurions trinqué à cette nouvel le victoire

merci MichD

Le mercredi 7 août 2013 09:53:23 UTC+2, magic-dd a écrit :
Bonjour MichD



Quel reveil heureux



je viens de comprendre enfin ( dur de la feuille le Magic-dd) que ladate etait en fait un nom comme on le fait d'une zonne nommée.



tout fonctionne parfaitement desormais



juste à verifier le nom d'utilisateur qui ne fonctionne pas parfaitemen t car j'obtiens le nom de la feuille en A50 plutot que l'utilisateur.



pour le reste, je vais profiter de mes vacances pour etuduer cela



merci beaucoup encore, tu m'enleves un arbre du pied



bonne journée





Le mardi 6 août 2013 22:25:19 UTC+2, MichD a écrit :

> | Mais ou, je ne voius rien s'inscrire

>

>

>

> La date de la modification est inscrite dans un "NOM" masqué

>

> (insertion / nom / définir) ayant comme intitulé "LaDate"

>

>

>

> Si tu avais pris le temps de copier la procédure que je t'ai

>

> donné dans ton classeur de macros personnelles, tu n'aurais

>

> eu qu'à appeler la procédure pour voir la valeur de "LaDate"

>

> dans une boîte de message. Cela s'applique à tous les fichiers

>

> ayant une feuille commentaire...

>

>

>

> '------------------------------------------

>

> Sub Date_Dernière_Modification_B2()

>

> Dim X As Variant

>

> On Error Resume Next

>

> X = Evaluate("LaDate")

>

> If IsError(X) Then

>

> Err.Clear

>

> Else

>

> MsgBox Format(CDbl(Evaluate("LaDate")), "DD MMM YYYY H:MM:SS")

>

> End If

>

> End Sub

>

> '------------------------------------------

>

>

>

> | et aucune possibilité de faire du pas à pas dans la complémenta ire

>

>

>

> Le projetVBA du fichier de la macro complémentaire n'est pas protég é.

>

> Tu mets des points d'arrêt sur chacune des procédures. Lorsqu'elles sont

>

> appelées, il s'agit d'utiliser la touche F8 pour le pas-à-pas. À la limite,

>

> tu

>

> cliques sur le ThisWorkbook du projetVBA de la macro complémentaire,

>

> et dans les propriétés, tu mets la valeur "IsAddin" = False

>

> Les feuilles du fichier de la macro complémentaire vont s'afficher co mme

>

> n'importe quel classeur. Dans la feuil1 de ce fichier, tu peux suivre

>

> l'évolution de ce qui est affiché. Lorsque tu as tout compris, tu r emets

>

> la propriété "isAddin" = True pour masquer les feuilles.

>

>

>

> | dois je faire pour avoir la date en cellule A50 et le Nom en B50 de l a

>

> feuille 1

>

>

>

> Si j'ai bien compris, en B50, tu veux avoir le nom de la première feu ille du

>

> classeur??

>

>

>

> Rien de plus facile, il s'agit de modifier légèrement le code du mo dule de

>

> classe

>

> dans le fichier de la macro complémentaire.

>

>

>

> L'information que tu veux en A50 et B50 de la première feuille s'insc rit au

>

> moment

>

> de la fermeture du classeur. C'est l'événement que j'ai choisi puis que

>

> l'usager peut

>

> modifier plusieurs fois la cellule B2 lors d'une même séance de tra vail. Si

>

> une

>

> modification est apportée à la cellule B2, la date et l'heure inscr ite

>

> seront celles au

>

> moment où l'usager ferme le classeur.

>

>

>

> Dans le module de classe, remplace cette procédure par celle-ci.

>

> Le code ajouté est spécifié.

>

>

>

> '------------------------------------------------------

>

> Private Sub AppXl_WorkbookBeforeClose(ByVal Wb As Workbook, Cancel As

>

> Boolean)

>

>

>

> Dim NomClasseur As String, X As Variant

>

>

>

> With ThisWorkbook ' (classeur de la macro complémentaire)

>

> With .Worksheets("Feuil1")

>

> 'Extraire le nom du classeur

>

> NomClasseur = Wb.Name

>

> 'Identifie la ligne où est contenu de nom du classeur

>

> X = Application.Match(NomClasseur, .Range("A:A"), 0)

>

> 'teste si le nom du classeur a été trouvé

>

> If IsNumeric(X) Then

>

> 'Vérifie si depuis l'ouverture du fichier la valeur

>

> 'de la cellue B2 a été modifié

>

> If .Range("C" & X) <> .Range("B" & X) Then

>

> 'Si oui, on enregistre la date de fermeture du fichier

>

> 'en créant un nom (Name) LaDate , contenant la date +

>

> l'heure

>

>

>

> '***************Code ajouté*****************

>

> With Wb.Worksheets(1)

>

> .Range("A50").NumberFormat = "DD MMM YYYY H:MM:S S"

>

> .Range("A50").Value = Now()

>

> .Range("A50").Value = .Name

>

> End With

>

> '*******************************************

>

> 'Afin de s'assurer de conserver cette donnée, le fich ier

>

> 'est enregistré automatiquement.

>

> Wb.Save

>

> End If

>

> End If

>

> End With

>

> End With

>

> End Sub

>

> '------------------------------------------------------

>

>

>

> Tu es sûrement pressé par le temps, mais il faudra quand même que

>

> tu prennes un peu de temps pour comprendre comme cela fonctionne.

>

>

>

> IMPORTANT - IMPORTANT :

>

> Lorsque tu fais une modification à un fichier de macros complémenta ires,

>

> tu dois le sauvegarder manuellement en utilisant la commande à cet

>

> effet lorsque le fichier est le fichier actif dans la fenêtre VBA.

>

> N'oublie pas cela est aussi vrai pour la modification que je t'ai deman dé

>

> de faire dans le message précédent. Si tu ne le fais pas toi-même , tu

>

> n'auras pas de message d'Excel demandant si tu désires sauvegarder

>

> les modifications faites.

>

>

>

> Après avoir fait les 2 changements au code du fichier de la macro

>

> complémentaire, enregistre-le et ferme totalement le classeur.

>

> Dès l'ouverture, le fichier de la macro complémentaire sera en vigu eur.

>

>

>

>

>

> MichD

>

> ---------------------------------------------------------------
Avatar
MichD
| je ne sais pas d'ou tu es

L'autre côté de la marre, au Québec!

MichD
---------------------------------------------------------------
Avatar
magic-dd
Le mercredi 7 août 2013 11:48:03 UTC+2, MichD a écrit :
| je ne sais pas d'ou tu es



L'autre côté de la marre, au Québec!



MichD

---------------------------------------------------------------



Alors je leverai un toast à ta santé

je suis de bordeaux

merci encore
1 2 3