Problemi con una Macro in Microsoft Outlook 2003

mercoledì 30 gennaio 2008 - 16.38

francesco.cignini Profilo | Newbie

Ciao a tutti,
non sono pratico di visual basic e di Macro e ho questo problema...
Ho una macro per outlook 2003 che mi permette di archivia nel mio sistema di gestione documentale direttamente dal mio client outlook.
Sfortunatamente la macro non funziona...
Ecco il codice...

Public allegati As String
Public windir As String
Public myMessage As MailItem
Public myWord As Object
Public DocPrinc As String
'Dati della pratica selezionata
Public c_N_Pratica As String
Public c_Cliente As String
Public c_CodCliente As String
Public c_Responsabile As String
Public c_ResposnabileOperativo As String
Public c_OggettoPratica As String
Public c_Classe As String
Public c_Tipo As String
Public c_Data As String


Sub MsoToArc()

Dim buffer As String
Dim idConv As Long
Dim iCount, error As Long
Dim TipoDoc As String
Dim myOlApp As Object
Dim TipoDocumento As String
Dim DatiS As String
Dim OggettoDocumento As String




On Error GoTo ViewError




'1 creazione degli oggetti
Set myOlApp = CreateObject("Outlook.Application")
'Set myWord = CreateObject("Word.Application")
Set myMessage = myOlApp.ActiveInspector.CurrentItem




'2 Allegati del messaggio
Set myattacment = myMessage.Attachments
'3 Directory temporanea di archidoc
windir = Environ("temp") + "\ARCHTEMP\"
If windir = "" Then
windir = Environ("windir") + "\Temp\ARCHTEMP\"
End If

'4 Scrittura degli allegati nella lista
For Each Item In myattacment
UserForm1.ListaAllegati.AddItem myattacment.Item(Item.Index).DisplayName
Next

'4 bis Carico la combo per il tipo pratica
UserForm1.Combo_TipoPratica.AddItem "Bilancio"
UserForm1.Combo_TipoPratica.AddItem "Dichiarazioni"

'5 Visualizzazione del form per la scelta delle opzioni
UserForm1.Show

c_Data = CStr(myMessage.CreationTime)


TipoDocumento = UserForm1.Combo_TipoPratica.Text
'Dati$ = ";PI_:" & c_N_Pratica
Dati$ = ";DD_:" & c_Data
Dati$ = Dati$ + ";C1_:" & c_N_Pratica & "|" & c_Cliente & "|" & c_Responsabile & "|" & c_ResposnabileOperativo
Dati$ = Dati$ + ";C2_:" & c_Classe & "|" & "|" & c_Tipo
Dati$ = Dati$ + ";C3_:" & c_OggettoPratica
Dati$ = Dati$ + ";C4_:||NO"
OggettoDocumento = "Destinatario: " & myMessage.To & " Oggetto: " & myMessage.Subject
'6 Inizio della tranzazione DDE
DDETerminateAll
'7 Questa istruzione serve per visualizzare la scheda di inserimento e spedirla automaticamente
'N.B.: Se si vuole che quando si esegue la macro venga aperta solamente la scheda di inserimento e
'non venga spedito il documento in automatico, basta commentare la riga segnata a fianco dal numenro 9
'e decomentare la riga segnata con il numero 11
'idConv = DDEInitiate("Archidoc", "Insertion window and send") '8
'9 Questa istruzione serve per visualizzare la scheda di inserimento
'idConv = DDEInitiate("Archidoc", "Insertion window and send") '10
idConv = DDEInitiate("Archidoc", "Insertion window")
'11 Esecuzione comando DDE
DDEExecute idConv, _
"AM_:Pratiche Clienti;DM_:" & TipoDocumento & Dati$ & _
";FI_:" & DocPrinc & ";ALL_:" & UserForm1.allegati & ";O_:" & OggettoDocumento
DDETerminate (idConv)

'orig
'DDEExecute idConv, _
' "AM_:TEST;DM_:Macro;FI_:" & DocPrinc & ";ALL_:" & UserForm1.allegati & ";O_:" & myMessage.Subject
'DDETerminate (idConv)
'12 Fine tranzazione DDE

'13 Distruzione del form
Unload UserForm1

'14 Gestione errori
ViewError:
error = Err.Number
If error = 91 Then
MsgBox ("Nessun messaggio aperto.")
Else
If Not Err.Description = "" Then
MsgBox (Err.Description)
End If
End If


'15 Distruzione degli oggetti
'myWord.Application.Quit
Set myWord = Nothing
Set myOlApp = Nothing
Set myMessage = Nothing
End
End Sub

'1 Create Objects
'2 enclosures of the message
'3 Archidoc Temp directory
'4 add enclosures to the list
'5 view form for selecting options
'6 start DDE transaction
'7 this instruction displays the insertion card and sends it automatically
'N.B.: if you want the macro to open the insertion card, without sending the
'document automatically, just comment line no. 8 and remove the comment mark from
'line no. 10
'9 this instruction displays the insertion card
'11 Execute the DDE command
'12 end of DDE transaction
'13 destroy form
'14 error management
'15 destroy object


l'errore che mi ritorna è "il componente active x non è in grado di trovare l'oggetto"
non riesco a venirne fuori viste anche le mie poche competenze (leggete pure nulle) in materia...
Aiuto.

Francesco
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5