Saltar al contenido

Agregar direcciones de correo según filtro


Recommended Posts

publicado

Buenas a todo el foro.

En una macro para enviar correos mediante outlook como esta.

With OutMail
    .To = "ejemplo@gmail.com"
         '.To = "ejemplo1@gmail.com"
         
         .CC = ""
     
         .BCC = ""

         .Subject = "Correo de prueba"
         .Body = ""

En el rango J2:J20 tengo correos diferentes y aplicando un filtro, me gustaria agregar a CC los correo/s que resulten en ese rango del filtro aplicado, no se si me explico.

Gracias por adelantado

ejemplo.xlsm

publicado

Podrías hacer lo siguiente:

  • Crear una variable para almacenar los correos de CC concatenados.
  • Crear un rango que contenga los datos filtrados en la columna J.
  • Recorrer el rango y concatenar los correos en la variable de CC, separados por punto y coma (;).
  • Asignar la variable de CC al campo CC del correo.

Prueba así a ver si te funciona:

Dim correoCC As String

With ActiveSheet ' especificar hoja donde está el rango J2:J20

    
    .Range("J2:J20").AutoFilter Field:=1, Criteria1:="condición de filtro"
     
    Dim rngCC As Range
    Set rngCC = .Range("J2:J20").SpecialCells(xlCellTypeVisible)
    
    
    Dim celda As Range
    For Each celda In rngCC
        correoCC = correoCC & celda.Value & "; "
    Next celda
    
    
    correoCC = Left(correoCC, Len(correoCC) - 2)
End With


With OutMail
    .To = "ejemplo@gmail.com"
    .CC = correoCC ' asignar correos de CC
    .BCC = ""
    .Subject = "Correo de prueba"
    .Body = ""
End With

Nota: reemplazar "condición de filtro" en la línea .Range("J2:J20").AutoFilter Field:=1, Criteria1:="condición de filtro" con la condición que desees para aplicar el filtro.

Saludines

publicado
hace 52 minutos , Israel Cassales dijo:

Podrías hacer lo siguiente:

  • Crear una variable para almacenar los correos de CC concatenados.
  • Crear un rango que contenga los datos filtrados en la columna J.
  • Recorrer el rango y concatenar los correos en la variable de CC, separados por punto y coma (;).
  • Asignar la variable de CC al campo CC del correo.

Prueba así a ver si te funciona:

Dim correoCC As String

With ActiveSheet ' especificar hoja donde está el rango J2:J20

    
    .Range("J2:J20").AutoFilter Field:=1, Criteria1:="condición de filtro"
     
    Dim rngCC As Range
    Set rngCC = .Range("J2:J20").SpecialCells(xlCellTypeVisible)
    
    
    Dim celda As Range
    For Each celda In rngCC
        correoCC = correoCC & celda.Value & "; "
    Next celda
    
    
    correoCC = Left(correoCC, Len(correoCC) - 2)
End With


With OutMail
    .To = "ejemplo@gmail.com"
    .CC = correoCC ' asignar correos de CC
    .BCC = ""
    .Subject = "Correo de prueba"
    .Body = ""
End With

Nota: reemplazar "condición de filtro" en la línea .Range("J2:J20").AutoFilter Field:=1, Criteria1:="condición de filtro" con la condición que desees para aplicar el filtro.

Saludines

No sabes cuanto te  lo agradezco @Israel Cassales No lo veia demasiado dificil, era mas la forma de enfocarlo,

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.