Condividi:        

[Excel] Macro invio 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

[Excel] Macro invio mail

Postdi oxygen84 » 05/09/11 16:27

Ciao a tutti!
E' il mio primo post su questo forum, anche se devo dire che è da molto che vi leggo in quanto siete una grande risorsa per chi lavora con excel. Quindi prima di tutto complimenti a tutti quelli che favoriscono la diffusione della conoscenza.

Veniamo alla mia domanda.
Utilizzo excel per inviare email a dei fornitori, che poi mi inviano le fatture.
In sostanza, seguendo varie discussioni precedenti del forum, ho creato una tabella con questi campi:
Mail del fornitore / periodo di riferimento /Ragione Sociale / unità / importo / scadenza fattura.

Codice: Seleziona tutto
Private Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long

Sub SendEMail()
    Dim Email As String, Subj As String
    Dim Msg As String, URL As String
       
        Email = Cells(1, 1)
       
'       Message subject
        Subj = "Competenze  " & Cells(1, 3) & " - " & Cells(1, 2) & " 2011"

'       Compose the message
        Msg = "Salve," & vbCrLf & vbCrLf & "vi confermo il numero di unità del mese di " & Cells(1, 2) & ", pari a " & _
        Cells(1, 4) & " e corrispondenti a € " & Cells(1, 5) & "." & vbCrLf & vbCrLf & _
        "Potete emettere fattura con scadenza " & Cells(1, 6) & "." & vbCrLf & vbCrLf & _
        "Cordiali saluti." & vbCrLf & vbCrLf
       
               
'       Replace carriage returns with %0D%0A (hex)
        Msg = Application.WorksheetFunction.Substitute(Msg, vbCrLf, "%0D%0A")

'       Create the URL
        URL = "mailto:" & Email & "?subject=" & Subj & "&body=" & Msg

'       Execute the URL (start the email client)
        ShellExecute 0&, vbNullString, URL, vbNullString, vbNullString, vbNormalFocus

End Sub


In sostanza, i fornitori ricevono una mail così:

Salve,

vi confermo il numero di unità del mese di Agosto, pari a 123 e corrispondenti a € 300.

Potete emettere fattura con scadenza 10/10/2011.

Cordiali saluti.




Ho piazzato il pulsante di avvio della macro su ogni riga della tabella, trascinandolo in basso,
e faccio l'invio manuale, in quanto a volte mi capita di dover aggiungere info nel testo della mail.
Ora, scritta così, la macro funziona alla perfezione, ma solo per la prima riga della tabella.
Dato che i riferimenti nella macro stessa sono alle celle della riga 1,
mi tocca ogni volta eliminare la riga 1, e inviare la mail successiva.
Come devo modificare la macro in modo che ogni riga abbia il suo pulsante indipendente e non devo eliminare ogni volta le righe precedenti?

grazie
oxygen84
Newbie
 
Post: 4
Iscritto il: 05/09/11 15:44

Sponsor
 

Re: [Excel] Macro invio mail

Postdi Anthony47 » 05/09/11 23:36

Ciao oxygen84, benvenuto nel forum.
Ma quindi hai tanti pulsanti, uno per ogni riga, e vuoi poter scegliere quale mail (di quale riga) inviare?
Se e' cosi', allora nella macro cambia tutti i Cells(1, nn) in Cells(II, nn) e poi nella macro, subito prima di Email = Cells(1, 1) (che avrai trasformato in Email=Cells(II, 1)) inserisci
Codice: Seleziona tutto
II = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row
In questo modo la macro fara' riferimento ai dati presenti sulla riga su cui giace il pulsante che azioni; fa testo l' angolo in alto a sx, quindi occhio alla posizione.

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

Re: [Excel] Macro invio mail

Postdi oxygen84 » 07/09/11 11:26

grazie mille Anthony!
funziona perfettamente!
oxygen84
Newbie
 
Post: 4
Iscritto il: 05/09/11 15:44


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Macro invio mail":


Chi c’è in linea

Visitano il forum: Nessuno e 68 ospiti

cron