Condividi:        

[macro excel] allegare foglio attivo a 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

[macro excel] allegare foglio attivo a mail

Postdi fab jovi » 20/07/10 10:53

Ciao ragazzi

ho un problema a cui non riesco a verire a capo.
Vorrei inviare il file excel su cui sto lavorando a una mail, con la macro riesco ad arrivare a creare la mail ma non trovo il modo per creare l'allegato, mi potreste gentilmente dare una mano? Dove sbaglio?

la macro finora scritta è:
Codice: Seleziona tutto
Sub Macro2()
'
Dim OutApp As Object
Dim OutMail As Object
Dim EmailAddr As String
Dim Subj As String
Dim BodyText As String

EmailAddr = "xxxxx@xxxx.com"  '
Subj = "Ciao"

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

With OutMail
.to = EmailAddr
.CC = ""
.BCC = ""
.Subject = Subj
.Body = BodyText
'.Attachments.Add ActiveWorkbook.FullName
.Display 'or use .send
End With

Set OutMail = Nothing
Set OutApp = Nothing
End Sub


Nota: Eliminato post delle ore 11:51 in quanto identico a questo - Mod Flash30005
fab jovi
Utente Junior
 
Post: 12
Iscritto il: 20/07/10 10:03

Sponsor
 

Re: [macro excel] allegare foglio attivo a mail

Postdi Anthony47 » 20/07/10 22:18

Ciao fab Jovi e benvenuto nel forum.
Hai provato se una macro composta da
Codice: Seleziona tutto
ActiveWorkbook.SendMail recipients:="nomr@dominio.it"
fa quello che ti serve?

In alternativa, togli l' "apostrofo" in testa alla riga '.Attachments.Add ActiveWorkbook.FullName

Per favore inserisci le righe di codice nei tag CODE (selezioni il testo, premi Code), rende il tutto piu' leggibile.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [macro excel] allegare foglio attivo a mail

Postdi fab jovi » 21/07/10 09:19

Grazie 1000!

Adesso funziona tutto, grazie ancora!
fab jovi
Utente Junior
 
Post: 12
Iscritto il: 20/07/10 10:03

Re: [macro excel] allegare foglio attivo a mail

Postdi fab jovi » 21/07/10 09:32

Anthony47 sei stato gentilissimo!

A diff di quanto scritto sopra mi sono accorto che però mi viene allegato alla mail il file "vuoto" non con le modifiche apportate. Secondo te/voi c'è un modo per ovviare a questo problema?

Grazie ancora.
fab jovi
Utente Junior
 
Post: 12
Iscritto il: 20/07/10 10:03

Re: [macro excel] allegare foglio attivo a mail

Postdi Anthony47 » 21/07/10 09:44

Forse... devi salvare il file prima i inviarlo.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [macro excel] allegare foglio attivo a mail

Postdi sprinterone » 07/10/10 13:33

Anthony47 ha scritto:Ciao fab Jovi e benvenuto nel forum.
Hai provato se una macro composta da
Codice: Seleziona tutto
ActiveWorkbook.SendMail recipients:="nomr@dominio.it"
fa quello che ti serve?

In alternativa, togli l' "apostrofo" in testa alla riga '.Attachments.Add ActiveWorkbook.FullName

Per favore inserisci le righe di codice nei tag CODE (selezioni il testo, premi Code), rende il tutto piu' leggibile.

Ciao

Scuate l'intromissione, ma cosi viene allegato tutto il file .
Non e' possibile allegare solo il Foglio attivo anziche' il File .xls (composto da piu' fogli) che lo comprende ?
Grazie
Giancarlo
Avatar utente
sprinterone
Utente Junior
 
Post: 51
Iscritto il: 26/01/10 10:24
Località: Monselice

Re: [macro excel] allegare foglio attivo a mail

Postdi Anthony47 » 07/10/10 22:57

Per inviare il singolo foglio la cosa piu' veloce e' che ti fai una copia del singolo foglio come nuovo file e poi invii quel file; qualcosa come:
Codice: Seleziona tutto
ActiveSheet.Copy
    ActiveWorkbook.SaveAs Filename:="C:\pippo\NomeFile.xls"   '<<<Nome di comodo
    ActiveWorkbook.SendMail recipients:="nomr@dominio.it"
    ActiveWorkbook.Close

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [macro excel] allegare foglio attivo a mail

Postdi sprinterone » 09/10/10 09:22

Grazie per la risposta,
ho provato la tua soluzione ma non e' quello che cerco.
Mi spiego meglio: e' possibile inserire direttamente nel bodyText della mail il contenuto di un foglio excel (composto da qualche riga di testo e dei dati ricavati da altre tabelle collegate)?
Spero di essere stato piu' preciso
Giancarlo
Avatar utente
sprinterone
Utente Junior
 
Post: 51
Iscritto il: 26/01/10 10:24
Località: Monselice

Re: [macro excel] allegare foglio attivo a mail

Postdi Anthony47 » 10/10/10 20:40

Allora guarda queste due discussioni su come si puo' inserire un testo direttamente nella mail:
viewtopic.php?t=62073#p476348
viewtopic.php?f=26&t=87457&p=497085#p497073

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [macro excel] allegare foglio attivo a mail

Postdi sprinterone » 14/10/10 09:27

Grazie della dritta, avevo gia' spulciato nei topic ma senza esito.
Codice: Seleziona tutto
     EmailAddr = Range("K4").Value
    Subj = Workbooks("FATTURA-provaINVIO MAIL.xls").Worksheets("sollecito").Range("A1").Value

    Body = TestoEmail
    TestoEmail = ""
    For RR = 17 To 33
    If Cells(RR, 3).Value = "" Then GoTo avanti
            TestoEmail = TestoEmail & Cells(RR, 3).Value & vbCrLf
avanti:
BodyText = BodyText & vbCrLf
Next RR

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

    With OutMail
    .To = EmailAddr
    .CC = ""
    .BCC = ""
    .Subject = "SOLLECITO di PAGAMENTO"
    .Body = BodyText
    .Attachments.Add ActiveWorkbook.FullName
    .Display
    .send
    End With

Questo e' quello che ho inserito nella macro, cercando di seguire tutte le vostre modifiche, ma mi allega tutto il file xls e non mi scrive invece nel body della mail solo il testo del foglio "sollecito" come vorrei.... dove sbaglio?
Giancarlo
Avatar utente
sprinterone
Utente Junior
 
Post: 51
Iscritto il: 26/01/10 10:24
Località: Monselice

Re: [macro excel] allegare foglio attivo a mail

Postdi Anthony47 » 14/10/10 13:58

Il "BodyText" (quello che va nel body della mail) te lo devi calcolare concatenando le tue informazioni ("qualche riga di testo e dei dati ricavati da altre tabelle collegate"; descritto cosi' non posso dirti di piu'); poi dovrai eliminare l' istruzione che allega il file corrente (cioe' la riga .Attachments.Add ActiveWorkbook.FullName).

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [macro excel] allegare foglio attivo a mail

Postdi sprinterone » 15/10/10 00:14

Ok..... dopo la cazziata...mi spiego meglio:
qualche riga di testo e dei dati ricavati da altre tabelle collegate"

su un foglio xls ho del testo ripartito dalla cella A17 fino alla I33.
Ogni riga e' un unica cella (come avevo letto di fare).
Il tutto vorrei inserirlo nel body della mail.
Riesci a darmi una dritta ?
Grazie
Giancarlo
Avatar utente
sprinterone
Utente Junior
 
Post: 51
Iscritto il: 26/01/10 10:24
Località: Monselice

Re: [macro excel] allegare foglio attivo a mail

Postdi Anthony47 » 16/10/10 01:35

Devi farti un piccolo loop che cicla tra le celle (non ho capito quante sono) e concatena in BodyText il contenuto di ogni cella con le celle precedenti, mettendo qualche "spazio" o qualche "vbCrLf" dove servono per leggibilita' del testo.
Se posti uno screenshot del tuo foglio, da cui si vedano gli indirizzi delle celle coinvolte, (vedi viewtopic.php?f=26&t=80395#p466013) posso essere piu' esplicito.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [macro excel] allegare foglio attivo a mail

Postdi sprinterone » 16/10/10 11:51

Ciao Antony, grazie della risposta.
Codice: Seleziona tutto
http://yfrog.com/58sollecito.jpg

I campi data, n° fattura , importo e la data finale sono collegati ad altro foglio xls, ma gia' sarebbe per me un miracolo
riportare in body il testo :neutral:
Non so proprio fre il "loop" .....e' una grazia che abbia capito che il vbrecc.. srrve per spaziare nel body le righe.
Mi puoi spiegare come si crea?

ps. se inserisco img non vedo il collegamento nell'anteprima messaggio.... ho usato Code.
Giancarlo
Avatar utente
sprinterone
Utente Junior
 
Post: 51
Iscritto il: 26/01/10 10:24
Località: Monselice

Re: [macro excel] allegare foglio attivo a mail

Postdi Anthony47 » 16/10/10 15:02

Al link pubblicato mi risponde "No input file specified. "...

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [macro excel] allegare foglio attivo a mail

Postdi sprinterone » 16/10/10 16:40

Codice: Seleziona tutto
http://yfrog.com/51sollecitoj

riprova, questo dovrebbe funzionare.
grazie
Giancarlo
Avatar utente
sprinterone
Utente Junior
 
Post: 51
Iscritto il: 26/01/10 10:24
Località: Monselice

Re: [macro excel] allegare foglio attivo a mail

Postdi Anthony47 » 16/10/10 19:24

Partiamo dalla macro citata nel tuo post viewtopic.php?f=26&t=87336&p=503469#p503251

Qualche commento preventivo a questa macro:
Innanzitutto ti segnalo che nel codice "abbozzi" due calcoli diversi del testo della mail: (1) quando compili la variabile TestoEmail (ad esempio TestoEmail = TestoEmail & Cells(RR, 3).Value & vbCrLf) e (2) quando compili la variabile BodyText (ad esempio BodyText = BodyText & vbCrLf)); ma quando poi arrivi "al dunque" (istruzione .Body = BodyText) usi la variabile meno popolata, cioe' BodyText (che e' stata riempita solo di Cr/Lf, cioe' di "ritorno a capo").
Noi useremo arbitrariamente la variabile BodyText.

Come pure abbozzi il calcolo del "subject" della mail con l' istruzione Subj = Workbooks("FATTURA-provaINVIO MAIL.xls").Worksheets("sollecito").Range("A1").Value ma poi usi una stringa fissa come Subject (istruzione .Subject = "SOLLECITO di PAGAMENTO")
Assumo che la stringa fissa sia sufficiente.

Infine prendi l' indirizzo di destinazione nella cella K4; assumo che questo sia corretto, anche se nell' immagine il contenuto di K4 non e' visibile.

Cio' detto, supponiamo che tu voglia mettere nel body della mail il contenuto delle celle A20, A21, A22, E22, F22, G22, H22 e I22 del "foglio attivo".

Sostituirai tutta la prima parte della macro, con queste istruzioni:

Codice: Seleziona tutto
BodyText = ""
BodyText = Range("A20").Text & vbCrLf
BodyText = BodyText & Range("A21").Text & " " & Range("A22").Text & vbCrLf
BodyText = BodyText & "N° " & Range("E22").Text & " " & Range("F22").Text & " "
BodyText = BodyText & Range("G22").Text & " " & Range("H22").Text & " "
BodyText = BodyText & Range("I22").Text & vbCrLf
'altre istruzioni per altre celle
'
Set OutApp = CreateObject("Outlook.Application")   'ESISTENTE
'etc etc     'La macro continua

So che ci sono altre celle che vuoi inserire in "BodyText", devi solo continuare con istruzioni simili a quelle che ti ho scritto io, scegliendo se in coda al testo di una cella vuoi inserire uno "spazio" (es & " ") o un "ritorno a capo" (es & vbCrLf).
Qualcuno osservera' la rozzezza del meccanismo (una sequenza di istruzioni per concatenare al testo calcolato il testo di una nuova cella), invece di creare un array con gli indirizzi delle celle e poi un loop For I=LBound(MioArray,1) to UBound(MioArray,1) /Next I; ovviamente l' ho fatto apposta:
1, perche' cosi' l' utente sceglie dove mettere gli spazi e dove mettere il ritorno a capo
2, perche' cosi' mi limito a dare uno spunto invece che una soluzione bella e pronta :D

Prova e fai sapere.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [macro excel] allegare foglio attivo a mail

Postdi sprinterone » 16/10/10 19:48

Caspita....devo studiare un sacco!!! :lol:
Grazie 1000, dopo cena scappo al lavoro ma al ritorno mi rileggo la tua risposta (giustamente mi hai dato delle dritte, non pretendo la "pappa pronta", altrimenti non capirei che sto cercando di fare) e vedro' di far fruttare i tuoi consigli.
Buona serata e buon w.e.
Giancarlo
Avatar utente
sprinterone
Utente Junior
 
Post: 51
Iscritto il: 26/01/10 10:24
Località: Monselice

Re: [macro excel] allegare foglio attivo a mail

Postdi sprinterone » 18/10/10 22:45

Ciao Anthony, ho messo a frutto i tuoi input....che dire....fantastico!! :lol:
Grazie a persone come te , disponibile a stuzzicare la curiosita' in erba degli incapaci come il sottoscritto, sono riuscito a semplificarmi la vita ancora un pochino di piu'.
Ovvio, non manchero' di "rompere " ancora , in futuro!!!!! :D
Giancarlo
Avatar utente
sprinterone
Utente Junior
 
Post: 51
Iscritto il: 26/01/10 10:24
Località: Monselice

Re: [macro excel] allegare foglio attivo a mail

Postdi ricky53 » 18/10/10 23:16

Ciao,
visto che alla fine ne sei uscito e con onore grazie alle dritte ricevuta ma anche grazie al tuo impegno.

Puoi inviare a tutti gli utenti del forum il prodotto finale ???
Grazie.

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "[macro excel] allegare foglio attivo a mail":


Chi c’è in linea

Visitano il forum: Nessuno e 34 ospiti