Macro trouvée dans Normal.dot

Résolu/Fermé
Nicolas_Bob Messages postés 3 Date d'inscription lundi 27 janvier 2020 Statut Membre Dernière intervention 29 janvier 2020 - Modifié le 27 janv. 2020 à 19:01
Nicolas_Bob Messages postés 3 Date d'inscription lundi 27 janvier 2020 Statut Membre Dernière intervention 29 janvier 2020 - 29 janv. 2020 à 13:59
Bien le bonjour,

Je suis intervenu sur un ordinateur qui avait un message d'erreur à chaque fois qu'il ouvrait un fichier Word (.doc ou .docx). Il s'agissait d'un message d'erreur de Visual Basic (Qui permet donc de déboguer pour identifier l'erreur).

J'ai donc pu voir que cela provenait d'un fichier nommé "Normal" qui semblait ouvert, et contenant un module avec un code dedans. Il est signé par une personne que nous ne connaissons pas (Et daté d'il y a pas mal d'années).

J'ai réinitialisé le fichier "Normal.dot" et le problème a disparu. Néanmoins, j'aimerais savoir ce que fait exactement le programme (Je ne m'y connais pas suffisamment pour être sûr. J'ai l'impression que c'est une aide pour le publipostage mais je ne vois pas que ça foutrait ici, et pourquoi ça débarquerait aujourd'hui seulement). Pourrait-il s'agir de quelque chose de pas très gentil ?

Voici ci-dessous le code, je masque juste la note de l'auteur supposé.

Sub AutoOpen()
'
' AutoOpen Macro
' Macro créée le xx/xx/xx par xxxxxxxxx
'
Dim NomMatrice As Object
Dim NomCatalog As Object


Set NomMatrice = ActiveDocument.Fields.Parent

With ActiveDocument.MailMerge.DataSource
   
    .ActiveRecord = wdFirstRecord
    
End With

With ActiveDocument.MailMerge
    .Destination = wdSendToNewDocument
    .Execute
End With

ActiveDocument.Fields.Update
Set NomCatalog = ActiveDocument
    Selection.EndKey Unit:=wdStory

   If ActiveWindow.View.SplitSpecial = wdPaneNone Then
        ActiveWindow.ActivePane.View.Type = wdPageView
    Else
        ActiveWindow.View.Type = wdPageView
    End If
    ActiveWindow.ActivePane.VerticalPercentScrolled = 0

Documents(NomMatrice).Close saveChanges:=wdDoNotSaveChanges

Cfini:
End Sub


C'est donc la partie ".ActiveRecord = wdFirstRecord" qui buggait, avec une "Erreur d'exécution '5852' : L'objet demandé n'est pas disponible". J'imagine que jusque là, la macro se finissait simplement sans erreur depuis toutes ces années. D'où mon inquiétude.

Sauriez-vous m'aider à identifier ce fonctionnement ?

Merci beaucoup d'avance si vous pouvez m'éclairer.

Très cordialement.

3 réponses

yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 1 471
27 janv. 2020 à 22:06
bonjour,
le fichier "normal" s'ouvre quand Word démarre, il contient des éléments, comme du code, qui peuvent être utilisés quel que soit le fichier sur lequel Word travaille.
je n'ai pas passé assez de temps pour analyser le code, mais il me semble largement inoffensif. comme tu écris, cela faisait du publipostage à partir du document ouvert.
la présence de ce code dans normal.dot est sans doute causée par une erreur de la personne qui a, il y a longtemps, créé ce code.
Word, malheureusement, propose, par défaut, de sauver le code dans normal.dot, pas dans le fichier en cours. ou bien la personne voulait-elle vraiment faire cela quel que soit le fichier ouvert.
personnellement, ce que je trouve inquiétant, c'est qu'un fichier normal.dot dont l'origine est oubliée se retrouve sur cet ordinateur, et, sans doute, sur d'autres.
1
Nicolas_Bob Messages postés 3 Date d'inscription lundi 27 janvier 2020 Statut Membre Dernière intervention 29 janvier 2020
28 janv. 2020 à 12:07
Ca me rassure de ne pas être le seul à penser qu'il s'agit d'un code inoffensif, je vais tout de même laisser la question une journée de plus si quelqu'un saurait confirmer.

J'ignorer cette histoire de sauvegarde dans le Normal.dot, ça peut en effet expliquer la présence de ce truc.

Merci pour ton retour, en tout cas ;)
0
madmyke Messages postés 52770 Date d'inscription dimanche 20 janvier 2008 Statut Modérateur Dernière intervention 16 avril 2024 12 041
28 janv. 2020 à 14:04
Je confirme, pour les deux.
0
Nicolas_Bob Messages postés 3 Date d'inscription lundi 27 janvier 2020 Statut Membre Dernière intervention 29 janvier 2020
29 janv. 2020 à 13:59
OK merci beaucoup, je clôture la question ;)
0