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