2013-05-02 4 views
0

J'ai le code VBA suivant pour insérer la date dans le format du code à l'emplacement des signets. Il insérait la date chaque fois que j'ouvrais le fichier sans supprimer l'ancien texte Boookmark alors j'ai ajouté le texte de suppression en haut du code mais maintenant il supprime le format et il insère le texte est-il un moyen de garder le formatage?Word (2010) Mettre à jour la date et conserver le formatage en utilisant la macro

Sub AutoOpen() 
' 
' AutoOpen Macro 
' 
' 
ActiveDocument.Bookmarks("MyDate").Range.Delete 
ActiveDocument.Bookmarks("MyDate1").Range.Delete 
ActiveDocument.Bookmarks("MyDate2").Range.Delete 
ActiveDocument.Bookmarks("MyDate3").Range.Delete 
ActiveDocument.Bookmarks("MyDate4").Range.Delete 
ActiveDocument.Bookmarks("MyDate5").Range.Delete 
ActiveDocument.Bookmarks("MyDate6").Range.Delete 

     With ActiveDocument.Bookmarks("MyDate").Range 
     .InsertBefore Format(Date + 1, "dddd dd mmmm yyyy") 
     End With 

    With ActiveDocument.Bookmarks("MyDate1").Range 
     .InsertBefore Format(Date + 2, "dddd dd mmmm yyyy") 
    End With 

    With ActiveDocument.Bookmarks("MyDate2").Range 
     .InsertBefore Format(Date + 3, "dddd dd mmmm yyyy") 
    End With 

    With ActiveDocument.Bookmarks("MyDate3").Range 
     .InsertBefore Format(Date + 4, "dddd dd mmmm yyyy") 
    End With 

    With ActiveDocument.Bookmarks("MyDate4").Range 
     .InsertBefore Format(Date + 5, "dddd dd mmmm yyyy") 
    End With 

    With ActiveDocument.Bookmarks("MyDate5").Range 
     .InsertBefore Format(Date + 6, "dddd dd mmmm yyyy") 
    End With 

    With ActiveDocument.Bookmarks("MyDate6").Range 
     .InsertBefore Format(Date + 7, "dddd dd mmmm yyyy") 
    End With 
End Sub 
+0

L'extrait supérieur de votre code supprime les signets afin que vous ne puissiez pas exécuter les sections de 'Avec ...' ci-dessous. Ai-je manqué quelque chose ou avez-vous manqué une partie de votre code? –

+0

KazJaw, le code s'exécute tel quel. Les signets restent et la sortie du Withs fonctionne et fait ce qu'il dit, il sort la date au format du code aux endroits définis par chaque signet. Ce qui précède est le code complet que j'ai dans le document. – RebelCom

Répondre

0

Lorsque vous dites 'formatage' voulez-vous dire la mise en forme de date ou gras/italique, etc?

Dans tous les cas, votre code ne fonctionne pas pour moi; Lorsque vous supprimez la plage, le signet est associé à ce dernier. Les pistes suivantes pour moi, et les formats correctement les dates à chaque fois que je le lance:

Dim tempRng As Range 

Set tempRng = ActiveDocument.Bookmarks("MyDate").Range 
tempRng.Text = Format(Date + 1, "dddd dd mmmm yyyy") 
ActiveDocument.Bookmarks.Add "MyDate", tempRng 

Set tempRng = ActiveDocument.Bookmarks("MyDate1").Range 
tempRng.Text = Format(Date + 2, "dddd dd mmmm yyyy") 
ActiveDocument.Bookmarks.Add "MyDate1", tempRng 

Set tempRng = ActiveDocument.Bookmarks("MyDate2").Range 
tempRng.Text = Format(Date + 3, "dddd dd mmmm yyyy") 
ActiveDocument.Bookmarks.Add "MyDate2", tempRng 

Vous pouvez continuer pour le reste de vos marque-pages ou de jeter le tout dans une boucle.

Questions connexes