Excel - Continuar enviando correos con celda vacía

 
Vista:
sin imagen de perfil
Val: 18
Ha disminuido su posición en 4 puestos en Excel (en relación al último mes)
Gráfica de Excel

Continuar enviando correos con celda vacía

Publicado por Fernando (6 intervenciones) el 14/03/2021 20:07:48
Hola, tengo una macro que envía correos desde excel a outllook, el problema es que la columna de destinatarios (Para:) siempre tendrá un correo, pero la columna de copia no (CC:) ya que algunos solicitan copia y otros no, al ser de esta forma, cuando ejecuto la macro, esta corre cuando en ambas columnas hay correos, pero si en la columna de copia no encuentra un correo se detiene y outlook arroja una ventana con correos donde sugiere elegir uno, como no quiero ninguno de los correos que sugiere entonces pongo cancelar y continua con el envío hasta que encuentra otra celda vacía y otra vez se detiene y hace lo mismo, aparte, cuando le doy cancelar, ya no envía al destinatario que correspondía, sino que se pasa al otro, es decir , ya no envía el correo al destinatario que no tiene copia, cómo podría solucionarlo?, dejo mi código, archivo y unas fotos para que se pueda entender mejor, saludos y gracias por su ayuda.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Sub Enviar_Correos()
 
ThisWorkbook.Sheets("Sheet2").Select
 
x = ThisWorkbook.Sheets("Sheet2").Range("c6").Value
For i = 1 To x
ThisWorkbook.Sheets("Sheet2").Range("c7").Value = i
 
Dim cambio As String
Dim cortar As String
 
Sheets("Sheet2").Select
cambio = Range("B10").Select
ActiveCell.FormulaR1C1 = "=+VLOOKUP(R[-3]C[1],Sheet1!R2C1:R5000C3,3,0)"
 
cortar = Sheets("Sheet2").Range("b16:o86").SpecialCells(xlCellTypeVisible).Copy
 
Sheets("Correo").Select
    Rows("5:5").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Delete Shift:=xlUp
    Range("A5").Select
    Sheets("Sheet2").Range("b16:o86").SpecialCells(xlCellTypeVisible).Copy
    Sheets("Correo").Select
    Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    ActiveSheet.Paste
    Rows("5:5").Select
    Selection.RowHeight = 24
    Range("A1").Select
 
ActiveWorkbook.EnvelopeVisible = True
    With ActiveSheet.MailEnvelope
 
        .Item.To = ThisWorkbook.Sheets("Sheet2").Range("c2").Value
        .Item.CC = ThisWorkbook.Sheets("Sheet2").Range("c3").Value
        .Item.Subject = ThisWorkbook.Sheets("Sheet2").Range("c3").Value
        .Introduction = ""
        .Item.Send
 
 
    End With
 
Next i
 
End Sub

Captura
thumbnail_IMG_5693
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Continuar enviando correos con celda vacía

Publicado por Antoni Masana (2478 intervenciones) el 15/03/2021 18:00:16
El problema es que la celda C3 de la hoja Sheet2 deberia estar en blanco y no tener un CERO.
Es un problema de formato.

La salución que he encontrado la he puesto en la macro.
Otra cosa que veo mal es que en el asunto pones la dirección de correo del destinatario de Item.CC.
Pon mejor un texto identificativo del contenido del correo, yo personalmente recibo un correo en el que el asunto tiene mi correo y lo borro.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Sub Enviar_Correos()
    ThisWorkbook.Sheets("Sheet2").Select
 
    x = ThisWorkbook.Sheets("Sheet2").Range("c6").Value
 
    For i = 1 To x
        ThisWorkbook.Sheets("Sheet2").Range("c7").Value = i
 
        Dim cambio As String
        Dim cortar As String
 
        Sheets("Sheet2").Select
        cambio = Range("B10").Select
        ActiveCell.FormulaR1C1 = "=+VLOOKUP(R[-3]C[1],Sheet1!R2C1:R5000C3,3,0)"
 
        cortar = Sheets("Sheet2").Range("b16:o86").SpecialCells(xlCellTypeVisible).Copy
 
        Sheets("Correo").Select
        Rows("5:5").Select
        Range(Selection, Selection.End(xlDown)).Select
        Range(Selection, Selection.End(xlDown)).Select
        Range(Selection, Selection.End(xlDown)).Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Delete Shift:=xlUp
        Range("A5").Select
 
        Sheets("Sheet2").Range("b16:o86").SpecialCells(xlCellTypeVisible).Copy
 
        Sheets("Correo").Select
        Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        ActiveSheet.Paste
        Rows("5:5").Select
        Selection.RowHeight = 24
        Range("A1").Select
 
       Item_To = ThisWorkbook.Sheets("Sheet2").Range("c2").Value
       Item_CC = ThisWorkbook.Sheets("Sheet2").Range("c3").Value
       Descrip = ThisWorkbook.Sheets("Sheet2").Range("c3").Value
 
       If Len(Item_CC) < 3 Then Item_CC = ""
 
        ActiveWorkbook.EnvelopeVisible = True
        With ActiveSheet.MailEnvelope
            .Item.To = Item_To
            .Item.CC = Item_CC
            .Item.Subject = Item_CC ' <--- Aqui tendria que ir el asunto y NO el correo
            .Introduction = ""
            .Item.Send
        End With
    Next i
End Sub

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 18
Ha disminuido su posición en 4 puestos en Excel (en relación al último mes)
Gráfica de Excel

Continuar enviando correos con celda vacía

Publicado por Fernando (6 intervenciones) el 15/03/2021 21:23:06
Estimado Antoni, gracias por tu respuesta, he usado tu sugerencia y el problema ahora ya no es el 0, sino que en el mailenvelope, en CC se están quedando los mails anteriores, por lo que si el segundo destinatario no tiene copia, coge los del primero por que se están quedando ahí "por defecto", creo que la solución sería que usando alguna función de búsqueda, ésta, al no encontrar nada, arroje vacío y no 0, ya que al ser vacío entonces ese vacío es el que copiaría en el campo CC del mailenvelope y correría normal, hasta el momento no consigo una formula que me arroje vacío, pero un vacío real y no alguna combinación que lleve "", ya que he probado algunas y en la celda uno ve vacío o nada (es decir para la vista de uno mismo) pero al ejecutar la macro toma un valor de 0 y vuelvo al mismo problema, yo compruebo si la celda está realmente vacía con la función ESBLANCO, pero hasta el momento no consigo una función o alguna otra combinación con la que pueda dejar la celda C3 en sheet2 vacía, te agradeceré si puedes ayudarme tu o alguien más ya que es lo único que me falta para decir "listo por fin terminé", gracias por tu apoyo, saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Continuar enviando correos con celda vacía

Publicado por Antoni Masana (2478 intervenciones) el 15/03/2021 23:01:12
Mañana revisare los correos de la prueba que he realizado.
He cambiado los [email protected] por mi correo y ha funcionado sin error.
Revisare los correos para ver que pasa cuando el CC esta vacío o se le supone.
Yo he comprobado que la longitud sea mayor de 3, que para ser exactos debería ser mayor o igual porque parto de la suposición que a@a es una dirección de correo valido, también se podría validar que el texto tenga la arroba '@'
Repasare porque sale el CERO que es raro porque si la celda de origen esta vacía la función BUSCARV() debería devolver el mismo valor.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 18
Ha disminuido su posición en 4 puestos en Excel (en relación al último mes)
Gráfica de Excel

Continuar enviando correos con celda vacía

Publicado por Fernando (6 intervenciones) el 16/03/2021 12:25:17
Estimado Antoni, gracias, estaré atento, saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar