OVH Cloud OVH Cloud

Inserer date de MAJ d'un classeur dans un autre

4 réponses
Avatar
Charles LEPERS
j'ai cree une macro qui filtre et organise une base de donnees nommee
output.csv

le resultat du filtrage est dans un nouveau classeur (new.xls)

J aimerais ajouter un code dans ma macro qui permettrait de mettre la
derniere date de mise a jour de la base de donnees (output.csv), dans une
cellule du nouveau classeur (new.xls)
(si possible sans modifier la base de donnees)

c est peu etre simple mais je ne pratique le VBA que depuis une semaine.

d' avance merci pour votre aide.

4 réponses

Avatar
Quetzalcoatl
Bonsoir Charles LEPERS,

Workbooks("New").Activate
Cells(1, 1) = Date

et la date se retrouve en A1 de new.xls

Le jour du quatorze juillet
Je reste dans mon lit douillet
La musique qui marche au pas
Cela ne me dérange pas

--
God be with ye

j'ai cree une macro qui filtre et organise une base de donnees nommee
output.csv

le resultat du filtrage est dans un nouveau classeur (new.xls)

J aimerais ajouter un code dans ma macro qui permettrait de mettre la
derniere date de mise a jour de la base de donnees (output.csv), dans une
cellule du nouveau classeur (new.xls)
(si possible sans modifier la base de donnees)

c est peu etre simple mais je ne pratique le VBA que depuis une semaine.

d' avance merci pour votre aide.


Avatar
Charles LEPERS
bonsoir Quetzalcoatl,

je pense pas que cela soit aussi simple je ne veux pas mettre la date
d'aujourd'hui
mais celle de la deniere date de mise a jour de ma base de donnees.
Par exemple la base de donnees a ete mise a jour le 14 mai a 16h15, je veux
une synthese de cette base (ce que ma macro fait deja) aujourd'hui le 14
juillet, sur ma synthese je veux qu il soit ecrit 14 Mai 16h15.
La formule "date" fait elle cette manipulation ?


"Quetzalcoatl" wrote:

Bonsoir Charles LEPERS,

Workbooks("New").Activate
Cells(1, 1) = Date

et la date se retrouve en A1 de new.xls

Le jour du quatorze juillet
Je reste dans mon lit douillet
La musique qui marche au pas
Cela ne me dérange pas

--
God be with ye

j'ai cree une macro qui filtre et organise une base de donnees nommee
output.csv

le resultat du filtrage est dans un nouveau classeur (new.xls)

J aimerais ajouter un code dans ma macro qui permettrait de mettre la
derniere date de mise a jour de la base de donnees (output.csv), dans une
cellule du nouveau classeur (new.xls)
(si possible sans modifier la base de donnees)

c est peu etre simple mais je ne pratique le VBA que depuis une semaine.

d' avance merci pour votre aide.










Avatar
Quetzalcoatl
Bonsoir Charles LEPERS,

Oupsss ! Je m'aperçois que j'ai fait l'hypothèse, non confirmée, que "mise à
jour de la base de données" = "organisation de la base de données".

Je te propose alors plutôt qqchose du type :

Workbooks("new.xls").Worksheets("new").Cells(1, 1).Value = _
Workbooks("output.csv").BuiltinDocumentProperties(12)

(pas essayé)

avec comme hypothèses :
- les fichiers "new.xls" et "output.csv" sont tous deux ouverts lorsque le code
ext exécuté
- il existe une feuille portant le nom "new" dans le classeur "new.xls", et tu y
récupères la date de mise à jour de "output.csv" en cellule A1.

--
Avete amici
Avatar
Charles LEPERS
bonjour Quetz,

Tout d'abord merci pour cette formule qui m a permis de decouvrir beaucoup
de chose.
Malheureusement je pense que le "BuiltinDocumentProperties" ne marche que
dans le module "Thisworkbook" du fichier dont on veut la propriete. (hesites
pas a me dire si je me trompe).

Voila ce que j'ai tente :
J ai cree un nouveau module sur le workbook("macro.xls") de ma macro de
traitement de donnees (appele : module2), voila ce que je met dans ce module2:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets(1).[A2] = "Dernier enregistrement : le " _
& Format(ActiveWorkbook.BuiltinDocumentProperties(12), _
"dd/mm/yyyy hh:mm")
Date = Range("A2").Value
Range("A2").Select
Selection.Copy
End Sub

lors du deroulement de la macro ce module 2 se copie dans le "Thisworkbook"
du fichier base de donnees (output.csv).
Ainsi je pensais recuperer en copie la date de derniere sauvegarde de
output.csv pour pouvoir la copier dans mon workbook de destination j'ai
verifie que le "thisworkbook" de output.csv etait bien rempli avec le code
ci-dessus, c est bon.
Mais dans l execution de ma macro lorsque je ferme le fichier output.csv un
message d erreur apparait : "Automation error" & "Unspecified error"
(j ai egalement verifier que ma variable date etait bien remplie, c est bon)

J ai bien essaye egalement quelques autres petites modif du code de
"Thisworkbook" (genre au lieu au lieu de "before_close" jai essaye "_open"
etc...) mais rien a faire !!!

J espere avoir ete clair dans mon explication (sinon dis le moi).
Peux-tu encore m'aider a eclaircir ce nuage tenebreu qu'est pour moi le VBA ?
D'avance merci,

Charles.

"Quetzalcoatl" wrote:

Bonsoir Charles LEPERS,

Oupsss ! Je m'aperçois que j'ai fait l'hypothèse, non confirmée, que "mise à
jour de la base de données" = "organisation de la base de données".

Je te propose alors plutôt qqchose du type :

Workbooks("new.xls").Worksheets("new").Cells(1, 1).Value = _
Workbooks("output.csv").BuiltinDocumentProperties(12)

(pas essayé)

avec comme hypothèses :
- les fichiers "new.xls" et "output.csv" sont tous deux ouverts lorsque le code
ext exécuté
- il existe une feuille portant le nom "new" dans le classeur "new.xls", et tu y
récupères la date de mise à jour de "output.csv" en cellule A1.

--
Avete amici