H o l a:
Te anexo las macros actualizadas.
En los eventos de la hoja1:
Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
On Error Resume Next
If Not Intersect(Target, Range("B:B")) Is Nothing Then
For Each t In Target
If t.Value <> "" Then
Cells(t.Row, "H").Select
ActiveSheet.Hyperlinks.Add _
Anchor:=Selection, _
Address:="", _
SubAddress:="Hoja1!C" & t.Row, _
TextToDisplay:="Insertar archivo"
End If
Next
Cells(Target.Row, 3).Select
End If
End Sub
'
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
'Por.Dante Amor
Set h2 = Sheets("Hoja2")
linea = ActiveCell.Row
col = Range("I1").Column
h2.Rows(linea).Clear
With Application.FileDialog(msoFileDialogFilePicker)
.Title = "Seleccione uno o varios archivos"
.Filters.Clear
.Filters.Add "archivos pdf", "*.pdf*"
.Filters.Add "archivos de excel", "*.xls*"
.Filters.Add "Todos los archivos", "*.*"
.FilterIndex = 2
.AllowMultiSelect = True
.InitialFileName = "D:\archivos para correos\" 'ThisWorkbook.Path
If .Show Then
For Each ar In .SelectedItems
h2.Cells(linea, col) = ar
diago = InStrRev(ar, "\")
archivo = Mid(ar, diago + 1)
punto = InStrRev(archivo, ".")
archivo = Left(archivo, punto - 1)
Cells(linea, col) = archivo
Cells(linea, "E") = Cells(linea, "E") & " " & archivo
col = col + 1
Next
End If
End With
End Sub
En el módulo:
'***Macro Para enviar correos
Sub correo()
'Por.Dante Amor
col = Range("I1").Column
Set h2 = Sheets("Hoja2")
For i = 2 To Range("B" & Rows.Count).End(xlUp).Row
Set dam = CreateObject("outlook.application").createitem(0)
dam.To = Range("B" & i).Value 'Destinatarios
dam.CC = Range("C" & i).Value 'Con copia
dam.Bcc = Range("D" & i).Value 'Con copia oculta
dam.Subject = Range("E" & i).Value '"Asunto"
Cuerpo = Range("F" & i).Value '"Cuerpo del mensaje"
If Range("G" & i).Value = "" Or Not IsNumeric(Range("G" & i).Value) Then
n = 1
Else
n = Range("G" & i).Value
End If
'dam.SendUsingAccount = dam.Session.Accounts.Item(n) '
'
For j = col To h2.Cells(i, Columns.Count).End(xlToLeft).Column
archivo = h2.Cells(i, j).Value
If archivo <> "" Then dam.Attachments.Add archivo
Next
ruta = "C:\trabajo\fotos\"
arch = "imagen.gif"
dam.Attachments.Add ruta & arch
dam.Display 'El correo se muestra
dam.HtmlBody = _
"<HTML> " & _
"<BODY>" & _
"<P>" & Cuerpo & dam.HtmlBody & "</P>" & _
"<img src=cid:" & arch & " height=40 width=40>" & _
"</BODY> " & _
"</HTML>" 'Con esta parte se agrega la firma
dam. Display 'El correo se muestra
dam. Send 'El correo se envía en automático
Next
MsgBox "Correos enviados", vbInformation, "SALUDOS"
End Sub
Te envié el archivo con las macros.
' : )
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
' : )