OVH Cloud OVH Cloud

Macro / Génération de dcuments / Désactiver les macros

4 réponses
Avatar
Denel
Bonjour,

J'ai créé un .dot qui génére des courriers mes macros ne devrait pas être
dans mes
documents générés et pourtant elle le sont quand même :)

Comment remédier à ce problême ?


Voila le code de la macro contenu dans le .dot :

Private Sub Document_New()
Dim myConn
Dim myConn1
Dim myRecordset
Dim mySql
' instanciation des objets ADO
Set myConn = CreateObject("ADODB.Connection")
Set myConn1 = CreateObject("ADODB.Connection")
Set myRecordset = CreateObject("ADODB.Recordset")
Set myRecordsetDetail = CreateObject("ADODB.Recordset")
Set myRecordsetResponsableClient = CreateObject("ADODB.Recordset")

' Définir les propriétés de la connexion
myConn.Open = "Provider=SQLOLEDB.1;Data Source=AFI13012M; Initial
Catalog=Afirec ;user id = 'Applixxxx';password='xxxxx'"
myConn1.Open = "Provider=SQLOLEDB.1;Data Source=AFI13012M; Initial
Catalog=Afirec ;user id = 'Applixxxxx';password='xxxx'"

' Définir la requète SQL
mySql = "SELECT * FROM [DU CLIENTS]"

'Ouvrir la connexion
myRecordset.Open mySql, myConn
myRecordset.MoveFirst

Do While Not myRecordset.EOF
'On Error Resume Next

' Définir la requète SQL pour la liste des responsables clients
mySqlResponsableClient = "SELECT * FROM RESPONSABLECLIENT WHERE ClienAux =
'" & myRecordset.Fields.Item("ClienComptAux").Value & "'"

'Ouvrir la connexion pour la liste des responsables
myRecordsetResponsableClient.Open mySqlResponsableClient, myConn1
myRecordsetResponsableClient.MoveFirst

nom.Caption = myRecordset.Fields.Item("MailiNom").Value
Adresse1.Caption = myRecordset.Fields.Item("MailiAdrs1").Value
Adresse2.Caption = myRecordset.Fields.Item("MailiAdrs2").Value
adresse3.Caption = myRecordset.Fields.Item("MailiAdrs3").Value
ville.Caption = myRecordset.Fields.Item("MailiVille").Value
Solde.Caption = myRecordset.Fields.Item("Solde").Value

' On Remplit la zone de texte contenant les détails
Responsable.Caption =
myRecordsetResponsableClient.Fields.Item("ClienNomRespon").Value


' ON AFFICHE LES DETAILS
mySqlDetail = "SELECT * FROM [DU CLIENTS DETAILS]WHERE ClienComptAux = '" &
myRecordset.Fields.Item("ClienComptAux").Value & "'"
myRecordsetDetail.Open mySqlDetail, myConn

myRecordsetDetail.MoveFirst

Tables(1).Rows.Select
Do While Not myRecordsetDetail.EOF
' On Remplit la zone de texte contenant les détails
Selection.TypeText
(myRecordsetDetail.Fields.Item("ClienComptRefer").Value)
Selection.MoveRight Unit:=wdCell
Selection.TypeText
(myRecordsetDetail.Fields.Item("ClienComptDate").Value)
Selection.MoveRight Unit:=wdCell
Selection.TypeText (myRecordsetDetail.Fields.Item("ClienEncaiNet").Value
& " Euros")
Selection.InsertRowsBelow 1

myRecordsetDetail.MoveNext


Loop
myRecordsetDetail.Close

ActiveDocument.SaveAs
("\\afi13012dc2\Permanents\RelanceAutomatique\Relance1\" & "relance du " &
Day(Date) & "_" & Month(Date) & "_" & Year(Date) & "_" &
myRecordset.Fields.Item("MailiNom").Value & ".doc")


' On ferme le recordset responsable client
myRecordsetResponsableClient.Close

myRecordset.MoveNext



Loop
myRecordset.Close

myConn.Close
myConn1.Close
End Sub

4 réponses

Avatar
geo
Bonjour

-----Message d'origine-----
Bonjour,

J'ai créé un .dot qui génére des courriers mes macros ne
devrait pas être

dans mes
documents générés et pourtant elle le sont quand même :)


Qu'est-ce qui te fait dire qu'elles y sont ?

Avatar
Denel
Lorsque j'ouvre les documents générés, j'ai la boite de dialogue me
demandant si je veut executer la macro..


Qu'est-ce qui te fait dire qu'elles y sont ?
Avatar
Geo
Bonjour Denel


Lorsque j'ouvre les documents générés, j'ai la boite de dialogue me
demandant si je veut exécuter la macro..


Ah mais ce n'est pas une preuve :-)
Les macros sont probablement dans ton modèle de base : normal.dot
et quand tu ouvres un document, Word va chercher les macros dans les
modèles sans te le dire.
Pour en avoir le coeur net, plusieurs solutions :
- envoyer ton document à quelqu'un qui a un modèle sans amcro,
- renommer ton modèle, Word en refera un sans macro,
- vérifier dans vbe où sont tes macros :
Alt + F11 pour passer dans VBe
CTRL + R pour ouvrir l'explorateur de projet (ou l'activer)
Tu vois dans la hiérarchie :

Normal
Microsoft Word Objets
feuilles
Modules
nom des modules de macro
les macros
Project (nom de ton document)
Microsoft Word Objets
etc. mais pas de Modules, donc pas de macros.


--

A+

Avatar
Frédéric Denel
J'ai vérifié mais les macros d'origine du .dot se retrouve bien dans les
.doc générés et je voudrais savoir comment éviter cela :)