Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Word]Macro x Invio del doc attivo tramite mail

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Word]Macro x Invio del doc attivo tramite mail

Postdi ildruido » 27/12/11 15:06

Buongiorno a tutti,
ho cercato nei vari post ma pur trovando qualcosa di simile non ho trovato la soluzione.

Ecco il problema:
Devo costruire un documento word “blindato” con alcuni campi liberi (testo, elenco a discesa, ecc) che deve essere inviato facilmente ad una determinata casella di posta.
L’utente, che sarà variabile, alla fine della compilazione del documento dovrà cliccare su un bottone e inviare così il documento come allegato di una mail ad una lista di indirizzi predefiniti e a se stessi in CC…

Un ulteriore plus sarebbe quello di poter variare automaticamente l’oggetto con un valore preso da uno dei campi del documento lasciati editabili!

Il codice preso a questo link viewtopic.php?t=83940 funziona ma non mi allega il documento di word attivo.

Grazie in anticipo a chi potrà aiutarmi ;)
Max
ildruido
Newbie
 
Post: 3
Iscritto il: 27/12/11 15:04

Sponsor
 

Re: [Word]Macro x Invio del doc attivo tramite mail

Postdi Anthony47 » 28/12/11 02:48

Ciao ildruido, benvenuto nel forum.
Quale delle versioni di macro nel link citato hai usato? Poi dici "non mi allega il documento di word attivo": vuoi dire che la mail parte senza nessun allegato, o cosa?

Inoltre ti suggerirei di valutare l' uso della "Proprietà RoutingSlip", per cui nell' help on line del vba di word c' e' un esempio gia' completo.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Word]Macro x Invio del doc attivo tramite mail

Postdi ildruido » 28/12/11 18:57

Ciao Anthony, grazie sia per il benvenuto che per le info ;)
la macro a cui faccio riferimento è la prima, quella postata da Flash30005.
La mail parte con i destanatari, l'oggetto e l'eventuale testo preimpostato nella macro ma senza allegati.

Sono proprio alle prime armi, ho alle spalle qualche semplice macro di excel ma su word sono completamente a digiuno.
La routingslip non la conosco, domattina me la studio un po' e vediamo se fa al caso mio ;)

Max
ildruido
Newbie
 
Post: 3
Iscritto il: 27/12/11 15:04

Re: [Word]Macro x Invio del doc attivo tramite mail

Postdi Anthony47 » 28/12/11 23:28

Nella prima macro di Flash in realta' manca proprio l' inserimento di un allegato; dovrai quindi inserire subito dopo .body = BodyText qualcosa come
Codice: Seleziona tutto
.Attachments.Add ThisDocument.FullName


Pero' ovviamente il documento dovra' essere stato salvato, altrimenti probabilmente invierai il documento di partenza, o l' ultima revisione salvata dall' utente; se il doc va salvato con lo stesso nome del doc di partenza allora ti bastera' inserire un
Codice: Seleziona tutto
Thisworkbook.Save

prima della macro di invio mail.
Con RoutngSlip invece mi sembra che venga comunque allegata la versione "corrente" del doc; una ragione in piu' per provare prima quel metodo, partendo dall' esempio presente nell' help on line.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Word]Macro x Invio del doc attivo tramite mail

Postdi ildruido » 29/12/11 09:28

Stamane ho provato ad aggiungere la stringa per allegare il doc e funziona, anche senza la necessità di dover salvare il dcumento :) ;)

Ecco il codice completo legato ad un pulsante di comando:
Codice: Seleziona tutto
Private Sub InviaDocumento_Click()
Dim OutApp As Object
Dim OutMail As Object
Dim EmailAddr As String
Dim Subj As String
Dim BodyText As String

EmailAddr = "nome.cognome@xxx.xx"
Subj = "testo oggetto"

BodyText = "testo corpo messaggio"

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

With OutMail
.to = EmailAddr
.CC = ""
.BCC = ""
.Subject = Subj
.body = BodyText
.Attachments.Add ThisDocument.FullName
.send
End With

MsgBox ("Documento inviato!")

Set OutMail = Nothing
Set OutApp = Nothing
End Sub


Già così sono a buon punto, ora mi manca solo di inserire il mittente in cc... automaticamente.

Ho provato a dare un'occhiata alla Routingslip e credo che la proprietà giusta potrebbe essere "returnwhendone".
Non riesco però a farla funzionare.

Sicuramente sbaglando, ho provato ad aggiungere quanto trovato nell'help:
Codice: Seleziona tutto
If ActiveDocument.HasRoutingSlip = True Then
    With ActiveDocument.RoutingSlip
        .Delivery = wdOneAfterAnother
        .ReturnWhenDone = True
    End With
End If

ma mi da questo errore:
Run-time 5892 - Metodo 'HasRoutingSlip' dell'oggetto '_Document' non riuscito

:oops:
ildruido
Newbie
 
Post: 3
Iscritto il: 27/12/11 15:04

Re: [Word]Macro x Invio del doc attivo tramite mail

Postdi Anthony47 » 30/12/11 12:12

L' esempio che trovo nell' help on line del metodo RoutingSlip e' questo:
Codice: Seleziona tutto
Documents("Status.doc").HasRoutingSlip = True
With Documents("Status.doc").RoutingSlip
    .Subject = "Status Doc "
    .AddRecipient Recipient:="Don Funk"      'Oppure: utente@dominio.it
    .AddRecipient Recipient:="Frida Ebbeson"  'Idem
    .Delivery = wdAllAtOnce   '  wdAllAtOnce / wdOneAfterAnother
'altre posibili opzioni:
    .ReturnWhenDone = True
    .TrackStatus = True
    .Protect = wdAllowOnlyRevisions   'Vedi scelte
'fine aggiunte
End With
Documents("Status.doc").Route

Valuta tu la scelta tra wdAllAtOnce e wdOneAfterAnother, come pure delle altre possibili opzioni (che ho aggiunto io come esempio).

Per quanto riguarda il cc nella macro con Outlook, potresti leggere il nome dell' utente che sta' lavorando il documento [es utente= Environ("userName")] oppure il domain name [se sei in un dominio; usare Environ("DomainName")] e partendo da questo dato inserire un cc attingendo a una tabella di equivalenza. Rimanendo la mail nella Sent mailbox questa opzione potrebbe pero' anche essere inutile.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[Word]Macro x Invio del doc attivo tramite mail":


Chi c’è in linea

Visitano il forum: Nessuno e 18 ospiti