1 macro sur Excel 1997

Résolu/Fermé
DBD - 30 nov. 2008 à 11:31
 DBD - 2 déc. 2008 à 21:30
Bonjour,



J'aurais besoin d'une macro pour Excel 1997-2003 pour le suivi des mise à jour de 20 fichiers Excel.
Il faudrait qu'à chaque fois que je ferme un des 20 classeurs qui se trouve sur le réseau elle m'enregistre dans un autre classeur Excel qui s'appelle "Gestion des mises à jour TBD_CDC_V1" sur la feuille "Mises à jour TBD_CDC_V1"
le nom du classeur, le jour, le mois l'année, et l'heure de la dernière mise à jour .
M'expliquer si possible où placer cette macro dans VBA pour que ça fonctionne.

Merci beaucoup et bon dimanche à tous.
Cordialement

DBD.
A voir également:

3 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
30 nov. 2008 à 13:02
bonjour,

Ci joint maquette:
https://www.cjoint.com/?lEm5oBMES7

les macros seront à incorporer dans les 20 classeurs

n'hésites pas pour explications supp.
1
Merci beaucoup Michel,

Je vais essayer de mettre tout ça en place demain au boulot et je te tiendrai au courant.
Si j'ai bien compris, j'insère dans un module VBA pour chaque classeur le code que tu m'as envoyé.
La macro va t'elle se lancer toute seule ou il faut que je crée un bouton et que je l'exécute?
Merci bcp.
@+
0
Bonsoir Michel,

J'ai bien respecté les consignes que tu m'as données et j'ai eu 3 messages d'erreurs en voulant exécuter la macro.
Je t'ai fait des impressions écran que j'ai collées sur la Feuil2 pour que tu jettes un oeil et me conseiller.
Désolé pour le dérangement.

http://www.cijoint.fr/cjlink.php?file=cj200812/cij2uy0Ps8.xls


Merci Bcp.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310 > DBD
1 déc. 2008 à 19:13
Bonsoir,

Mais non, tu n'as pas DU TOUT lu et suivi ce que je t'avais marqué

1/ ce n'est une image dans la PJ mais le classeur "mise_a_jour" !!!

2/ Je t'ai écrit ceci hier post n° 5 ET EN GRAS

Ensuite je colle la seconde macro dans le classeur qui doit recevoir toutes les informations et qui s'appelle : "Gestion_des_ mises_ à_ jour_ TBD_CDC_V1.xls"
NON
C'est dans chaque classeur source comme ce que je t'ai transmis


ET je vois dans le classeur mise à jour cette macro, en plus dans le module feuil1 voir post3:
2/ la macro "cafter"
que tu trouves dans module1


dans class_1.xls il ya les macros à leur place où elles devront être dans les 20 Classeurs source: tu copies donc ces macros à partir des macros et non à partir des zones de texte

désespérant...
J"abandonne

Ciao
0
DBD > michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
2 déc. 2008 à 21:30
Bonsoir Michel,

Avant tout mille excuses pour hier !
J’ai vu que tu étais découragé (pour ne pas employer une autre expression) quand tu as vu que je n’avais rien compris au travail que tu m’as envoyé.
Je tiens à te rassurer, tout s’est bien passé aujourd’hui et je suis content d’y être parvenu.
C’est certainement grâce au coup de pied dans le… que tu m’as donné hier. - )))))))))
J’ai pu mettre en place les fichiers et l’enregistrement des mises à jour se fait très bien.
Par contre, je voudrais te demander une faveur pour que la macro réponde bien à mes besoins.
Je me suis rendu compte qu’elle me renseignait le fichier « Mise _à_jour_TBD_CDC.xls » même quand on consultait un fichier sans y avoir fait d’enregistrement.
Or ce que je voudrais savoir, c’est quand les fichiers ont été modifiés puis enregistrés.
Est-il possible de dissocier les 2 ?
C’est ma dernière requête.

Salutations très cordiale.
Dan
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
30 nov. 2008 à 16:30
re,

Tu as 2 macros à insérer dans les classeurs sources:

1/ la macro "Workbook before close"
que tu peux trouver en faisant un clic droit sur l'onglet et que tu copies colles dans tes autres classeurs source dans le moduke "thisworkbook"

2/ la macro "cafter"
que tu trouves dans module1

Pour créer un module, dans VBE (alt+F11 pour accèder à VBE) menu insertion -module

l'astuce est de copier ces 2 macros sur une feuille Word et de coller classeur source par classeur source

n'oublie pas de mettre les classeurs en macro-sécurité moyenne ou basse

Tu peux faire un essai maintenant avec ce que je t'ai transmis "pour piger"; l'inscription dans ton classeur "mise_a_jour_etc" est automatique dès que tu fermes un classeur source ("before close")
0
Bonsoir Michel,

Je récapépette:

1° Je place la macro "Cafter":

Private Sub Workbook_BeforeClose(Cancel As Boolean)
source = ThisWorkbook.Name
Cafter
End Sub

dans tous mes classeurs ( les 20) à l'intérieur du répertoire "ThisWorkbook" de VBA.

2° Ensuite je colle la seconde macro dans le classeur qui doit recevoir toutes les informations et qui s'appelle : "Gestion_des_ mises_ à_ jour_ TBD_CDC_V1.xls"

Const classeur As String = "Gestion_des_ mises_ à_ jour_ TBD_CDC_V1.xls"
Const chemin As String = "D:\documents\" ' a adapter à l'emplacement de "classeur"
Public source As String
Sub cafter()
Dim conn As Object
Dim rqt As Object
Dim moment As Date
Set conn = CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & chemin & classeur & ";Extended Properties=""Excel 8.0;"""
moment = Now()
source = Left(source, Len(source) - 4)
' travail demandé: insère dans les champs de "db_taupe" (cellules nommées) le nom du classeur et le moment
texte_SQL = "INSERT INTO db_taupe (nom_classeur,date_utilisation) VALUES ('" & (source) & "','" & (moment) & "' )"
' éxécute le travail demandé
Set rqt = CreateObject("ADODB.Recordset")
Set rqt = conn.Execute(texte_SQL)
rqt.Close
Set rqt = Nothing
conn.Close
Set conn = Nothing
End Sub

3° Peux-tu m'expliquer dans quel classeur je mets "Insertion Nom définir" et les plages?

Désolé
Merci beaucoup
@+
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
30 nov. 2008 à 19:06
re,

dans le classeur "mise à jour" d'ailleurs, tu trouves cà dans la feuil1 où je t'ai expliqué... hé,oui!



Ensuite je colle la seconde macro dans le classeur qui doit recevoir toutes les informations et qui s'appelle : "Gestion_des_ mises_ à_ jour_ TBD_CDC_V1.xls"

NON
C'est dans chaque classeur source comme ce que je t'ai transmis
0
Bonsoir Michel,

Merci pour ton aide précieuse.
Demain au taf, j'orchestre tout ça!
Bonne soirée.
Cordialement
Dan.
0