Cargando

Ir a contenido

X

Enviar correo electronico con cuerpo identico a varias direcciones y adjunto distinto Excel o Access





Solución elegida por el autor
Iniciado por Jenifer Sanz , 15 julio 2019 - 20:20

Buen día, ciertamente puedes mandar un correo con un mismo cuerpo, a distintos destinatarios y con diferentes ficheros adjuntos, pero esto solo lo puedes hacer directamente desde Outlook en tu PC. Lo último, puedes lograrlo activando la librería de esta herramienta, así:

  • Primeramente entra a “Outlook”.
  • Una vez que te encuentres dentro de dicha aplicación, procede a hacer click en “Herramientas”.
  • Luego presiona sobre la alternativa de “Referencias”.
  • Como veras se te abrirá una nueva ventana, en ella tienes que buscar la descripción “Microsoft Outlook (versión) Object Librery” y hacer click sobre ella, para que luego presiones en “Aceptar”.

Al hacer esto último, ya podras enviar los emails a varios destinatarios, aunque para ello tienes que crear un botón utilizando “Control ActiveX”, esto último lo haces siguiendo este tutorial:

  • Entra en la alternativa de “Desarrollador” que se encuentra en la parte de arriba del menú de opciones.
  • Acto seguido dirígete a la opción de “Insertar”.
  • Una vez hecho esto, tienes que seleccionar el tipo de control que deseas asignar (Debes colocar el cursor sobre cada una de estas pestañas para que se te especifique la acción).
  • Finalmente cuando se cree el comando, debes proceder a entrar donde está el comando VBA y elegir el tipo de código que deseas proporcionarle al botón.

Por último, tienes que crear un código VBA con el que se establezcan diferentes enlaces para enviar 5 mensajes distintos a la misma vez, y con capacidad de adjuntar en cada uno de ellos los ficheros que se deseen.

 

Esto último puedes lograrlo con el siguiente comando:

 

Sub seleccionararchivosadjuntos3(nocolumna As Integer)
Application.ScreenUpdating = False
Dim i, j As Integer
Dim numeroArchivos As Integer
Dim hoja As Worksheet
Set hoja = ActiveWorkbook.Worksheets("Ejemplo3")
Dim fldr As FileDialog
Set fldr = Application.FileDialog(msoFileDialogFilePicker)
'determinar cuantos archivos adjuntos hay
numeroArchivos = 0
Do While hoja.Cells(12 + numeroArchivos, nocolumna) <> ""
  numeroArchivos = numeroArchivos + 1
Loop
'preguntar si desea borrar los archivos ya adjuntados (en caso de que los haya)
If numeroArchivos <> 0 Then
  If MsgBox("¿Desea borrar los archivos adjuntados existentes?", vbYesNo) = vbYes Then
      hoja.Cells(12, nocolumna).Resize(10, 1).ClearContents
  End If
End If
'mostrar ventana con archivos a elegir
With fldr
  .Title = "Select a Folder"
  .AllowMultiSelect = True
  If .Show <> -1 Then Exit Sub
   
  If .SelectedItems.Count > 10 - numeroArchivos Then
      MsgBox "Sólo puede adjuntar 10 archivos cómo máximo"
      Exit Sub
  End If
'escribir los archivos en el excel y asignarles un hyperlink
  If .SelectedItems.Count <= 10 - numeroArchivos Then
      For i = 1 To .SelectedItems.Count
          hoja.Cells(11 + numeroArchivos + i, nocolumna).Worksheet.Hyperlinks.Add _
          anchor:=hoja.Cells(11 + numeroArchivos + i, nocolumna), _
          Address:=.SelectedItems(i), _
          TextToDisplay:=.SelectedItems(i)
      Next i
  End If
End With
Application.ScreenUpdating = True
End Sub

 

Y listo, ya solo deberás colocar en cada uno los documentos que desees y enviarlos a la misma vez con el botón que creaste.



  AUTOR PREGUNTA

Publicado 14 julio 2019 - 17:26

Hola:

 

queremos enviar desde excel o access (o un programa específico)una serie de correos con un cuerpo idéntico, con varias direcciones de correo y un fichero adjunto distinto para cada dirección de correo, no es spam, es una distribución de ficheros solicitados por las personas a las que se las mandamos.

 

la idea es poner el cuerpo, idéntico y asignar a cada dirección un fichero especifico para ese correo.

no se cómo hacerlo. solicito su ayuda o un ejemplo en imágenes o similar.


  • 1 personas más tuvieron esta duda Yo también
  • Volver arriba


 

Publicado 15 julio 2019 - 20:20

Buen día, ciertamente puedes mandar un correo con un mismo cuerpo, a distintos destinatarios y con diferentes ficheros adjuntos, pero esto solo lo puedes hacer directamente desde Outlook en tu PC. Lo último, puedes lograrlo activando la librería de esta herramienta, así:

  • Primeramente entra a “Outlook”.
  • Una vez que te encuentres dentro de dicha aplicación, procede a hacer click en “Herramientas”.
  • Luego presiona sobre la alternativa de “Referencias”.
  • Como veras se te abrirá una nueva ventana, en ella tienes que buscar la descripción “Microsoft Outlook (versión) Object Librery” y hacer click sobre ella, para que luego presiones en “Aceptar”.

Al hacer esto último, ya podras enviar los emails a varios destinatarios, aunque para ello tienes que crear un botón utilizando “Control ActiveX”, esto último lo haces siguiendo este tutorial:

  • Entra en la alternativa de “Desarrollador” que se encuentra en la parte de arriba del menú de opciones.
  • Acto seguido dirígete a la opción de “Insertar”.
  • Una vez hecho esto, tienes que seleccionar el tipo de control que deseas asignar (Debes colocar el cursor sobre cada una de estas pestañas para que se te especifique la acción).
  • Finalmente cuando se cree el comando, debes proceder a entrar donde está el comando VBA y elegir el tipo de código que deseas proporcionarle al botón.

Por último, tienes que crear un código VBA con el que se establezcan diferentes enlaces para enviar 5 mensajes distintos a la misma vez, y con capacidad de adjuntar en cada uno de ellos los ficheros que se deseen.

 

Esto último puedes lograrlo con el siguiente comando:

 

Sub seleccionararchivosadjuntos3(nocolumna As Integer)
Application.ScreenUpdating = False
Dim i, j As Integer
Dim numeroArchivos As Integer
Dim hoja As Worksheet
Set hoja = ActiveWorkbook.Worksheets("Ejemplo3")
Dim fldr As FileDialog
Set fldr = Application.FileDialog(msoFileDialogFilePicker)
'determinar cuantos archivos adjuntos hay
numeroArchivos = 0
Do While hoja.Cells(12 + numeroArchivos, nocolumna) <> ""
  numeroArchivos = numeroArchivos + 1
Loop
'preguntar si desea borrar los archivos ya adjuntados (en caso de que los haya)
If numeroArchivos <> 0 Then
  If MsgBox("¿Desea borrar los archivos adjuntados existentes?", vbYesNo) = vbYes Then
      hoja.Cells(12, nocolumna).Resize(10, 1).ClearContents
  End If
End If
'mostrar ventana con archivos a elegir
With fldr
  .Title = "Select a Folder"
  .AllowMultiSelect = True
  If .Show <> -1 Then Exit Sub
   
  If .SelectedItems.Count > 10 - numeroArchivos Then
      MsgBox "Sólo puede adjuntar 10 archivos cómo máximo"
      Exit Sub
  End If
'escribir los archivos en el excel y asignarles un hyperlink
  If .SelectedItems.Count <= 10 - numeroArchivos Then
      For i = 1 To .SelectedItems.Count
          hoja.Cells(11 + numeroArchivos + i, nocolumna).Worksheet.Hyperlinks.Add _
          anchor:=hoja.Cells(11 + numeroArchivos + i, nocolumna), _
          Address:=.SelectedItems(i), _
          TextToDisplay:=.SelectedItems(i)
      Next i
  End If
End With
Application.ScreenUpdating = True
End Sub

 

Y listo, ya solo deberás colocar en cada uno los documentos que desees y enviarlos a la misma vez con el botón que creaste.



 

Publicado 16 julio 2019 - 21:50

Es importante acotar que este método solo puede realizarse desde Outlook, para ello sigue los pasos a continuación.

  • Como fase principal debes ingresar a la herramienta Outlook, Presiona en la sección “Herramientas”, Se desplegara una lista de apartados donde vas a pulsar sobre “Referencias”, veras que aparece una ventana emergente debes presionar la opción “Microsoft Outlook Objet Library”, presiona la opción “Aceptar”. Esto habilitara la herramienta para que puedas enviar correos a varios destinatarios.

Ahora debes interconectar una herramienta llamada Control Active X, con el correo, para ello realiza lo siguiente:

  • Dirígete al “Menu” y selecciona el apartado “Desarrollador”, posteriormente pulsa en “Aceptar”, ahora escoge “Control Avtive X”, luego debes ir a la sección donde se encuentra el comando VBA donde podrás escoger el código que deseas incorporar a Control Active X según sea tu necesidad.

Vale resaltar que para que puedas enviar mensajes distintos a la vez con archivo adjunto,debes generar un código que permita configurar los enlaces necesarios para esta acción, para ello debes copiar el siguiente comando:

  • Sub EmailAttachmentRecipients() 'updateby Extendoffice 20160506 Dim xOutlook As Object Dim xMailItem As Object Dim xRg As Range Dim xCell As Range Dim xEmailAddr As StringDim xTxt As String On Error Resume NexxTxt = ActiveWindow.RangeSelection.Address Set xRg = Application.InputBox("Please select the arresses list:", "Kutools for Excel", xTxt, , , , , 8) If xRg Is Nothing Then Exit Sub Set xOutlook = CreateObject("Outlook.Application") Set xMailItem = xOutlook.CreateItem(0) For Each xCell In xRg If xCell.Value Like "*@*" Then If xEmailAddr = "" Then xEmailAddr = xCell.Value Else xEmailAddr = xEmailAddr & ";" & xCell.Value End If End If Next With xMailItem .To = xEmailAddr .CC = "" .Subject = "".Body = "".Attachments.Add ActiveWorkbook.FullName .Display End With Set xOutlook = Nothing Set xMailItem = Nothing End Sub