Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ciao Roberto,
La macro funziona alla perfezione,
Bene! Mi fa piacere che funziona.
sto mettendo a confronto i vari esempi per capire meglio la modalità di programmazione e imparare qualcosa di più, ma non mi è facile,
Bravo! In questo modo si impara!
inoltre sto cercando di cambiare l'impostazione della visualizzazione nel body della mail, come ad esempio mettere l'immagine sotto la dicitura ma non ci riesco, ho provato a cambiare l'ordine delle istruzione ma non risolvo niente.
ma sono sicuro che prima o poi ci riuscirò
Nel caso che dovesse essere poi anziché prima, potresti voler provare la seguente versione:
'=========>>
Option Explicit
'--------->>
Public Sub EmailConImmagineSottoFirma()
Dim OutApp As Object
Dim OutMail As Object
Dim WB As Workbook
Dim SH As Worksheet
Dim rCell As Range
Dim Rng As Range
Dim sStr As String, aStr As String, sImmagine As String
Dim LRow As Long
Const sPercorsoFileImmagine ="C:\AB\FOTO" '<<=== Modifica
Const sFileImmagine ="Logo.jpg" '<<=== Modifica
Const sFoglio As String = "FE" '<<=== Modifica
Set WB = ThisWorkbook
Set SH = WB.Sheets(sFoglio)
With SH
LRow = LastRow(SH, .Columns("AC:AC"))
Set Rng = .Range("AC4:AC" & LRow)
End With
sImmagine = "'" & sPercorsoFileImmagine & sFileImmagine & "'"
For Each rCell In Rng.Cells
If rCell.Value Like "?*@?*.?*" Then
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.Display '<<=== NON modifica!!
.To = rCell.Value
.CC = ""
.BCC = ""
.Subject = rCell.Offset(0, 3).Value
aStr = rCell.Offset(0, 4).Value & Space(1) _
& rCell.Offset(0, -1).Value
.HTMLBody = aStr & "<br>" & .HTMLBody
.HTMLBody = .HTMLBody & "<HTML><img src=" _
& sImmagine & " alt='' width=300 height=300></HTML>"
.Display
End With
Set OutMail = Nothing
End If
Next rCell
XIT:
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
'--------->>
Public Function LastRow(SH As Worksheet, _
Optional Rng As Range)
If Rng Is Nothing Then
Set Rng = SH.Cells
End If
On Error Resume Next
LastRow = Rng.Find(What:="*", _
after:=Rng.Cells(1), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
On Error GoTo 0
End Function
'<<=========
Visto che abbiamo viaggiato abbastanza lontano dall'ambito della tua domanda iniziale, e che ad ogni passo, hai riconosciuto ciascun codice diverso come pienamente rispondente alla domanda in questione, al fine di chiudere questo thread, vorrei gentilmente chiederti di segnare la risposta, o le risposte rilevante come Risposta. In questo modo, tu aiuterai anche coloro che potrebbero cercare soluzioni ai problemi simili negli archivi della Community.
Se questo thread dovesse ispirare altre strade di codice o altre domande, saremo lieti di rispondere a eventuali nuovi thead.
Alla prossima.
===
Regards,
Norman