[OK] Implémentation automatisée d'une date de sauvegarde

Discussions et dépannage concernant Word (Toutes versions).

Modérateur : Modérateurs

Répondre
Maximat
Membre
Membre
Messages : 22
Enregistré le : 02 juin 2005, 23:00:00
Localisation : Strasbourg

[OK] Implémentation automatisée d'une date de sauvegarde

Message par Maximat » 27 janv. 2007, 12:08:20

Bonjour et encore meilleurs voeux à tous. Mes excuses aux gens que j'ai laissé en plan. Ma santé a été défaillante un certain temps (pff les vieux !!) :s ;) Le fichier qui concernait les horaires était pas mal, mais devenu depuis obsolète en ce qui me concerne. Et la sauvegarde automatisée de .doc fonctionne toujours. L'avantage par rapport aux "informations de sauvegarde" est évident, puisqu'à la fin de la session de travail on a autant de fois son texte que d'incréments.

Pour ma question, le titre dit quasiment tout : y a-t-il moyen d'implémenter automatiquement date et heure de sauvegarde à la suite d'un titre de texte avant le .doc ? Je crois me souvenir qu'au bon vieux temps du Basic et de msdos c'était possible. J'ai cherché dans les sujets du forum, je n'ai rien trouvé. Ai-je mal cherché ? SOS en tout cas.
Forme :
Montitredetexte J M A H M S .doc
Le bénéfice d'une solution de ce genre est évident pour chercher la dernière version de son texte (mettre de l'ordre chez quelqu'un d'aussi brouillon que moi, p.ex.) d'autant que cette datation dans le titre restera constante (la prochaine sauvegarde aura un titre différent puisqu'elle aura été effectuée à un autre moment) alors que la date jointe par Word se modifie automatiquement à chaque ouverture d'un fichier même si on n'a rien fait et qu'on ne sauvegarde pas.

Cordialement à tous
Max
Modifié en dernier par Maximat le 10 mars 2007, 21:07:53, modifié 2 fois.

nouv
Membre actif
Membre actif
Messages : 277
Enregistré le : 02 juin 2005, 23:00:00
Localisation : Lyon

Message par nouv » 28 janv. 2007, 12:28:36

bonjour maximat,
contente de savoir que la macro de numérotation fonctionne toujours !
je te propose donc cette nouvelle macro à mettre dans un module de normal.dot pour qu'elle soit accessible dans tous tes documents et y a plus qu'à faire un ptit bouton dans la barre d'outils pour y accéder quand tu veux enregistrer :

Code : Tout sélectionner

Sub MonEnregistrement()

'1 récupère le nom du fichier existant
'si pas de .doc : fichier jamais enregister on va vers FES - Ficher enregistrer sous)
'sinon test si il y a déjà une date dans le nom (utilisation d'un séparateur quelconque)
    
    anciennom = ActiveDocument.Name 'récupère le nom actuel du document
    positionextension = InStr(anciennom, ".doc") 'indique la position de l'extension .doc
    If positionextension = 0 Then GoTo FES 'pas d'extension on va vers FES

'il faut virer le .doc et la date déjà existante
    monnom = Left(anciennom, positionextension - 1) 'vire le .doc du nom

    positionseparateur = InStr(monnom, "¤") 'indique la position du séparateur choisi ¤
    If positionseparateur = 0 Then GoTo Enregistreavecnom 'si pas de séparateur, le nom n'a pas de date on va vers l'enregistrement
    
'on vire la date déjà existante sur le nom
    monnom = Left(monnom, positionseparateur - 1)
    MsgBox monnom

Enregistreavecnom: 'procédure d'enregistrement avec la date

'madate correspond à la date et monheure à l'heure actuelle et on vire les / et :
    madate = Date
    monheure = Time()
    dateenregistrement = Left(madate, 2) & "-" & Mid(madate, 4, 2) & "-" & Right(madate, 2) & "à" & Left(monheure, 2) & "h" & Mid(monheure, 4, 2)
'nomcomplet regroupe le nom et la date
    nomcomplet = monnom & "¤" & dateenregistrement
    MsgBox nomcomplet

'et il ne reste plus qu'à enregistrer sous ce format là
If nomcomplet = monnom Then Exit Sub 'au cas ou l'on double clic sur le bouton enregistrement
    ActiveDocument.SaveAs FileName:=nomcomplet 'on enregistre le document
    Exit Sub
FES:
'monnom correspond à la boite de dialogue Input box ci-dessous
    monnom = InputBox("tape le nom du document", "enregistre avec la date")
    GoTo Enregistreavecnom
End Sub
Attention toutefois j'ai utilisé le même séparateur que pour la macro faite précédemment c'est à dire "¤", si les deux macros doivent cohéxister, il serait bon de mettre un autre séparateur

à plus
><>

Maximat
Membre
Membre
Messages : 22
Enregistré le : 02 juin 2005, 23:00:00
Localisation : Strasbourg

Message par Maximat » 28 janv. 2007, 16:40:25

Pour autant que je puisse décoder ce programme, la solution semble élégante, je sais je me répète, mais c'est peut-être une perception extrasensorielle de la programmatrice :D .
Comme on dit chez moi: "A certains stades, il faut essayer plutôt qu'étudier !" Je me lance et je t'informerai dès que l'affaire roulera.
Ne t'inquiète pas si je ne te réponds pas avant fin de semaine prochaine, je ne serai pas "branché" systématiquement pendant quelques jours. :)
Merci à toi en attendant. Au fait, tu as trouvé un job depuis le temps, j'espère ?
Max

Maximat
Membre
Membre
Messages : 22
Enregistré le : 02 juin 2005, 23:00:00
Localisation : Strasbourg

Bon ben voilà

Message par Maximat » 29 janv. 2007, 10:43:05

Je suis coincé à la maison pour raison de santé. Alors j'essaye de faire marcher ta suggestion. Je dois encore faire quelque chose de travers. Ma bécane est normale. Mais moi... ? :plor
Si je pouvais abuser de ta patience :-? :s je te demanderais la procédure de mise en place de cette macro. En échange je te réserve un exemplaire dédicacé de mon prochain bouquin. Normal, tu m'as aidé à rendre mon traitement de texte confortable :lunet ;)
Cordialement et anginement,
Max

nouv
Membre actif
Membre actif
Messages : 277
Enregistré le : 02 juin 2005, 23:00:00
Localisation : Lyon

Message par nouv » 31 janv. 2007, 19:58:41

slt,

pour la 1ère question : je passe ma vie en intérim mais pour l'instant ça me va.
Pour la procédure :
1 - copie de la macro
tu ouvres Word
ALT+F11 pour accéder à VBasic
à gauche dans la partie "Projet" tu as "Normal" et "Project document 1"
sur "Normal" tu as un dossier "Modules"
clic bouton droit sur Modules + Insertion module
Dans la fenêtre de droite tu colles le code du message précédent
un coup de disquette pour enregistrer et tu fermes la fenêtre VBA

2 - mise en place d'un menu pour enregister
Sur le document word,
clic droit sur le menu + Personnaliser
Onglet "Commandes" -
Dans la liste "Catégorie" (à gauche) clic sur Macro
Dans la liste "Commandes"(à droite) reste cliqué sur "Normal.Module1.MonEnregistrement" et glisse le jusqu'à la barre des menus (à droite du ?)
Avant de Fermer tu vérifies qu'en bas de la fenêtre, il y ait bien marqué
Enregistrer dans "normal.dot"
et tu quittes Word et s'il te demande d'enregistrer normal.dot tu dis oui

et voilà
ha ! j'ai vu que j'avais laissé la boite de message qui indique le nom du document, supprime la ligne

Code : Tout sélectionner

    MsgBox monnom
à+

Maximat
Membre
Membre
Messages : 22
Enregistré le : 02 juin 2005, 23:00:00
Localisation : Strasbourg

Message par Maximat » 02 févr. 2007, 18:23:16

Tu es géniale ! :D Chose promise... mon prochain bouquin, signé ! :lunet
Bref, l'affaire est dans le sac et elle roule, comme on dit. Juste un petit souci. Les copies ne sont pas sauvegardées dans le répertoire de travail, mais dans "Mes documents". C'est faisable autrement ?
Merci beaucoup en attentant.
Max

nouv
Membre actif
Membre actif
Messages : 277
Enregistré le : 02 juin 2005, 23:00:00
Localisation : Lyon

Message par nouv » 03 févr. 2007, 21:14:45

slt,

OK pour le bouquin, quant au répertoire de travail, est-il toujours identique ?

><>

Maximat
Membre
Membre
Messages : 22
Enregistré le : 02 juin 2005, 23:00:00
Localisation : Strasbourg

Précision

Message par Maximat » 03 févr. 2007, 22:01:25

Salut,
Le fichier devrait simplement revenir dans le répertoire d'où je l'ai extrait. S'il s'appelle Iamzebest.doc et vient, par exemple, de C:/Ecritures/Roman/ il doit pouvoir, après le travail, et appui sur la nouvelle touche, devenir C:/Ecritures/Roman/Iamzebest*03-02-07à22h32.doc
Cordialement et encore merci
Max

P.S. : Si je réadapte le programme de "Sauvegarde automatique", quel séparateur dois-je utiliser, tu disais qu'il pourrait y avoir un problème à utiliser le même pour les deux macros ?

nouv
Membre actif
Membre actif
Messages : 277
Enregistré le : 02 juin 2005, 23:00:00
Localisation : Lyon

Message par nouv » 04 févr. 2007, 16:27:11

salut,

je n'ai pas mis le code entre balise, sinon je ne peux pas modifier les couleur !
donc, il suffit de rajouter les deux lignes en rouge, la 1ère récupère le répertoire d'où provient le fichier, la suivante ajoute au nom du fichier le répertoire en question et la troisième enregistre

Sub MonEnregistrement()
'0 récupère le répertoire actuel du fichier
repertoireactuel = ActiveDocument.Path
'1 récupère le nom du fichier existant
'si pas de .doc : fichier jamais enregister on va vers FES - Ficher enregistrer sous)
'sinon test si il y a déjà une date dans le nom (utilisation d'un séparateur quelconque)

anciennom = ActiveDocument.Name 'récupère le nom actuel du document
positionextension = InStr(anciennom, ".doc") 'indique la position de l'extension .doc
If positionextension = 0 Then GoTo FES 'pas d'extension on va vers FES

'il faut virer le .doc et la date déjà existante
monnom = Left(anciennom, positionextension - 1) 'vire le .doc du nom

positionseparateur = InStr(monnom, "¤") 'indique la position du séparateur choisi ¤
If positionseparateur = 0 Then GoTo Enregistreavecnom 'si pas de séparateur, le nom n'a pas de date on va vers l'enregistrement

'on vire la date déjà existante sur le nom
monnom = Left(monnom, positionseparateur - 1)

Enregistreavecnom: 'procédure d'enregistrement avec la date

'madate correspond à la date et monheure à l'heure actuelle et on vire les / et :
madate = Date
monheure = Time()
dateenregistrement = Left(madate, 2) & "-" & Mid(madate, 4, 2) & "-" & Right(madate, 2) & "à" & Left(monheure, 2) & "h" & Mid(monheure, 4, 2)
'nomcomplet regroupe le nom et la date
nomcomplet = monnom & "¤" & dateenregistrement

'et il ne reste plus qu'à enregistrer sous ce format là
If nomcomplet = monnom Then Exit Sub 'au cas ou l'on double clic sur le bouton enregistrement
nomfinal = repertoireactuel + "\" + nomcomplet 'ajoute le répertoire en cours avec le nom
ActiveDocument.SaveAs FileName:=nomfinal 'on enregistre le document

Exit Sub
FES:
'monnom correspond à la boite de dialogue Input box ci-dessous
monnom = InputBox("tape le nom du document", "enregistre avec la date")
GoTo Enregistreavecnom
End Sub

Quant à la question subsidiaire : quel séparateur choisir ? il faut trouver un caractère qui ne sera pas utilisé de manière certaine dans un titre genure # § £ etc...
Dans la macro tu sélectionnes le texte de ta macro, tu vas dans le menu Edition Remplacer tu tapes ¤ dans la zone recherche, tu tapes le caractères que tu as choisi dans la zone remplacer et tu clic texte sélectionné et remplacer tout

à+

Maximat
Membre
Membre
Messages : 22
Enregistré le : 02 juin 2005, 23:00:00
Localisation : Strasbourg

ça marche du feu de dieu

Message par Maximat » 09 févr. 2007, 12:29:12

Comme dit le titre ! Pas de problèmes. Tout fonctionne et les textes rentrent dans les répertoires idoines. J'ai transposé sur le portable qui me suit partout : nickel-chrome. J'ai essayé pendant trois jours, avec toutes les maladresses possibles, rien à dire.
Merci, et grandement, à toi
Max

PS : un souci qui n'a plus rien à voir avec cette série de questions. J'ai récemment dû reformater mon desktop. Là, j'en ai profité pour récupérer l'ancienne macro de "sauvegarde automatisée" sur le portable, et vlan ! plus rien à faire. Ce n'est certainement pas ton programme qui m... ça doit être moi qui ne pige pas les procédures d'installation. Mais je ne veux pas abuser de ton temps avec mes maladresses, l'essentiel est que les deux macros soient fonctionnelles sur le portable.
Encore merci
M

cemp
Membre hyperactif
Membre hyperactif
Messages : 2117
Enregistré le : 02 juin 2005, 23:00:00
Localisation : Lyon

Message par cemp » 09 févr. 2007, 12:41:43

Bonjour,

cette macro est très très pratique... J'en utulisais une quasi identique pour access, mais pour word, celle-ci me convient parfaitement !

Merci pour le travail !

;)
<Cemp>

404

nouv
Membre actif
Membre actif
Messages : 277
Enregistré le : 02 juin 2005, 23:00:00
Localisation : Lyon

Message par nouv » 10 févr. 2007, 08:55:46

bonjour,

merci cemp,

quant à toi maximat,
je te rappelle que sur la macro de numérotation des documents tu as deux parties distinctes
une partie dans : "This document" avec 3 macros
une partie dans : "module" avec 2 macros

je ne sais pas comment tu as fait pour transférer la macro ! mais est-ce que les 5 ont bien été transférés ?

><>

Maximat
Membre
Membre
Messages : 22
Enregistré le : 02 juin 2005, 23:00:00
Localisation : Strasbourg

Message par Maximat » 10 mars 2007, 20:59:18

Vu ! Merci !
Mais j'essayerai après mon retour du soleil. Marre, je me casse. Au fait je signe le contrat d'édition au mois de mai. Un exemplaire t'est réservé, comme promis.
Cordialement
Max

PS : On peut considérer le sujet clos, non ?

LANNIE
Membre hyperactif
Membre hyperactif
Messages : 1314
Enregistré le : 02 juin 2005, 23:00:00

Message par LANNIE » 17 mars 2007, 12:11:47

Merci nouv pour toutes ces infos
Elles me seront très utiles à moi aussi
Bon WE à tous et à toutes
Image

Répondre

Retourner vers « Word »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 7 invités