Arjuna Aircraft Ident.: F-MBSD | Sinon, j'ai un souci...
J'ai plusieurs macros.
Lorsque j'ouvre le fichier depuis un lien internet, j'obtiens un message comme quoi le fichier contient des macros, et que je ne dois pas le charger parceque c'est pas sûr. (normal)
J'ignore le message pour charger les macros.
Par contre, je n'ai pas le second avertissement pour activer ou non les macros.
Lorsque je prends le fichier sur lequel je me suis basé, j'ai rigoureusement le même code au niveau du fichier word lui-même, et pour la macro, je ne vois pas de différence (en fait, j'ai fait un copier/coller de tous les modules et j'ai shooté/remplacé les parties concernées).
Par contre, ce fichier m'ouvre le premier message 5 fois de suis (un peu chiant ) et ensuite me propose d'activer les macros !
Le pire de tout, c'est que mon fichier, même sans ce message contient les macros. Les macros automatiques (document_open, document_new, document_close) sont inutilisables (mais le code est présent) alors que la macro "à la main" "autosave" peut être appelée en faisant ALT+F8, et tourne normalement !!!
Personne ne sais d'où ça peut venir ?
Ca fait 25 fois que je refais le document, que je le tortille dans tous les sens, mais pas moyen.
Voici le code de la macro, tel qu'il est chargé depuis mon lien :
Code :
- Private Const PassiveConnection As Boolean = True
- Private Const FtpServer As String = "garlic"
- Private Const strLogon As String = "integre"
- Private Const strPwd As String = "integre"
- Option Explicit
- Sub RemoteSave()
- Dim DocType, Login, Customer As String
- Dim Today As Date
- Dim DispDate, DispHour As String
- Dim Temp, usr As String
- Dim FileName, FilePath, TempPath As String
- Dim hOpen, hConnection As Long
- Dim bRet As Boolean
- Dim WSHShell, fso
- Dim inet As InternetExplorer
- Set inet = New InternetExplorer
-
- DocType = ActiveDocument.BuiltInDocumentProperties(wdPropertyTitle)
- Login = ActiveDocument.BuiltInDocumentProperties(wdPropertyAuthor)
- If Login = "" Then
- Login = Environ("username" )
- End If
- Customer = ActiveDocument.BuiltInDocumentProperties(wdPropertySubject)
- ActiveDocument.BuiltInDocumentProperties("Subject" ) = ""
- Today = Now
- DispDate = Right("20" & Year(Today), 4) & Right("00" & Month(Today), 2) & Right("00" & Day(Today), 2)
- DispHour = Hour(Today) & "h" & Right("00" & Minute(Today), 2)
- Set WSHShell = CreateObject("Wscript.Shell" )
- usr = WSHShell.Regread("HKEY_CURRENT_USER\Volatile Environment\HOMEPATH" )
- Set WSHShell = Nothing
-
- Temp = Environ("TEMP" )
-
- FileName = DocType & "_" & Customer & "_" & Replace(Login, " ", "-" ) & "_" & DispDate & "-" & DispHour & ".doc"
- FilePath = Temp & "\" & FileName
- TempPath = Replace(FilePath, ".doc", "_tmp.doc" )
- ActiveDocument.SaveAs FilePath, wdFormatDocument, True
- ActiveDocument.SaveAs TempPath, wdFormatDocument, True
-
- hOpen = InternetOpen("Template", INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
- hConnection = InternetConnect(hOpen, FtpServer, INTERNET_DEFAULT_FTP_PORT, strLogon, strPwd, INTERNET_SERVICE_FTP, IIf(PassiveConnection, INTERNET_FLAG_PASSIVE, 0), 0)
- FtpSetCurrentDirectory hConnection, "/opt/generix/interface/crm/template/"
- FtpPutFile hConnection, FilePath, FileName, FTP_TRANSFER_TYPE_UNKNOWN, 0
- InternetCloseHandle hConnection
- InternetCloseHandle hOpen
-
- ActiveDocument.SaveAs FilePath, wdFormatDocument, True
- Set fso = CreateObject("Scripting.FileSystemObject" )
- fso.DeleteFile (fso.GetFile(TempPath))
- Set fso = Nothing
-
- inet.Visible = False
- inet.Navigate "http://gemseas-devl.euro.med.ge.com:8081/sales/autotext/registerdoc.asp?cus=" & Customer & "&usr=" & Login & "&typ=" & DocType & "&tps=" & DispDate & Replace(DispHour, "h", "" ) & "&fic=" & FileName
- Do While Not inet.ReadyState = READYSTATE_COMPLETE
- DoEvents
- Loop
- Set inet = Nothing
- End Sub
- Private Sub Document_Close()
- On Error Resume Next
- CustomizationContext = NormalTemplate
- ' Cancel the keyboard shortcut "Ctrl+Shift+A"
- KeyBindings.Key(KeyCode:=BuildKeyCode(wdKeyControl, _
- wdKeyShift, wdKeyS)).Clear
- ' Remove the "Save Document" command from the right-click menu
- Application.CommandBars("Text" ).Controls("Save Document" ).Delete
- If MsgBox("Do you want to save your job before closing the file ?", vbYesNo, "Save changes" ) = vbYes Then
- RemoteSave
- End If
- End Sub
- Private Sub Document_Open()
- MsgBox ("Ca va marcher un jour ?" )
- Dim NewControl As CommandBarControl
- ' Assign the keyboard shortcut "Ctrl+Shift+A"
- CustomizationContext = NormalTemplate
- KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyControl, _
- wdKeyShift, wdKeyS), KeyCategory:=wdKeyCategoryMacro, _
- Command:="ThisDocument.RemoteSave"
- ' Add the "Insert Date" command to the right-click menu
- Set NewControl = Application.CommandBars("Text" ).Controls.Add
- With NewControl
- .Caption = "Save Document"
- .OnAction = "ThisDocument.RemoteSave"
- .BeginGroup = False
- End With
- End Sub
- Private Sub Document_New()
- Dim NewControl As CommandBarControl
- ' Assign the keyboard shortcut "Ctrl+Shift+A"
- CustomizationContext = NormalTemplate
- KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyControl, _
- wdKeyShift, wdKeyS), KeyCategory:=wdKeyCategoryMacro, _
- Command:="ThisDocument.RemoteSave"
- ' Add the "Insert Date" command to the right-click menu
- Set NewControl = Application.CommandBars("Text" ).Controls.Add
- With NewControl
- .Caption = "Save Document"
- .OnAction = "ThisDocument.RemoteSave"
- .BeginGroup = False
- End With
- End Sub
|
PS: J'ai évidement essayé de me mettre en sécurité minimale, ça ne change rigoureusement rien (mise à part qu'en minimum, je n'ai plus du tout de message d'alerte) Message édité par Arjuna le 09-11-2004 à 15:13:26
|