Excel - Duda Macro Envió a Correo VBA

 
Vista:
Imágen de perfil de Mx WaR HaBiB
Val: 12
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Duda Macro Envió a Correo VBA

Publicado por Mx WaR HaBiB (4 intervenciones) el 04/03/2020 18:51:24
Buenos Días

Primera vez que entro a este foro, de antemano gracias por el tiempo que me brinden en responder.

Me gustaría un poco de apoyo en el siguiente código en un botón:

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
Private Sub CommandButton5_Click()
 
Dim Filtro As String
Dim IndiceFiltro As Integer
Dim Titulo As String
Dim NombreArchivo As Variant
 
Filtro = "Archivos PDF (*.pdf),*.pdf," & _
"Archivos de Excel (*.xlsx;*.xlsm),*.xmlsx;*.slxm," & _
"Todos los Archivos (*.*),*.*"
 
IndiceFiltro = 3
 
Titulo = "Seleccionar Archivos - Mx"
 
NombreArchivo = Application.GetOpenFilename(Filtro, IndiceFiltro, Titulo)
If NombreArchivo <> False Then
    Range("G4") = NombreArchivo
 
Else
MsgBox "No Seleccionaste Archivos"
End If
 
Dim olApp As Outlook.Application
Set olApp = CreateObject("Outlook.Application")
 
Dim olMail As Outlook.MailItem
Set olMail = olApp.CreateItem(olMailItem)
 
With olMail
    .To = "xxxxxxxxxx@gmail.com"
    .Subject = "Correo de Prueba"
    .Body = "Saludos"
    .Attachments.Add Range ("G4") ' "NombreArchivo" '"C:\Archivo.pdf"
    .Send
End With
 
End Sub

al correr dicha macro me arroja el siguiente error:

Captura-error-excel1

al depurar el código veo que todo se centra el error en la parte que dice: .Attachments.Add Range ("G4")

lo cual se me hace ilógico puesto que si en vez de "Range ("G4")" que es donde tengo el valor de la dirección del archivo que selecciono ejemplo: "C:\Archivo.pdf"

la macro si funciona y envía el correo sin problema.

adjunto archivo para su apoyo.

muchas gracias! de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.146
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Duda Macro Envió a Correo VBA

Publicado por Antoni Masana (1456 intervenciones) el 04/03/2020 19:32:59
Estos serian los cambios:

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
Sub CommandButton5_Click()
 
    Dim Filtro As String
    Dim IndiceFiltro As Integer
    Dim Titulo As String
    Dim NombreArchivo As Variant
 
    Filtro = "Archivos PDF (*.pdf),*.pdf," & _
             "Archivos de Excel (*.xlsx;*.xlsm),*.xmlsx;*.slxm," & _
             "Todos los Archivos (*.*),*.*"
    IndiceFiltro = 3
    Titulo = "Seleccionar Archivos - Mx"
 
    NombreArchivo = Application.GetOpenFilename(Filtro, IndiceFiltro, Titulo)
    If NombreArchivo = False Then
        MsgBox "No Seleccionaste Archivos"
    End If
 
    Dim olApp As Outlook.Application
    Set olApp = CreateObject("Outlook.Application")
 
    Dim olMail As Outlook.MailItem
    Set olMail = olApp.CreateItem(olMailItem)
 
    With olMail
        .To = "xxxxxxxxxx@gmail.com"
        .Subject = "Correo de Prueba"
        .Body = "Saludos"
        If NombreArchivo <> False Then .Attachments.Add NombreArchivo
        .Send
    End With
 
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
1
Comentar
Imágen de perfil de Mx WaR HaBiB
Val: 12
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Duda Macro Envió a Correo VBA

Publicado por Mx WaR HaBiB (4 intervenciones) el 04/03/2020 19:44:29
Estimado Antoni, buen día

con los cambios que hiciste esta funcionando por completo... Muchas gracias por eso.

pero seria mucho pedir ¿en decirme que estaba mal en mi sintaxis?

aun no acabo de entender por que no funcionaba con lo que habia descrito.

gracias nuevamente si no puedes responder no pasa nada con lo que diste quedo resuelto.

Saludos!

Atte:
Mx WaR HaBiB
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.146
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Duda Macro Envió a Correo VBA

Publicado por Antoni Masana (1456 intervenciones) el 04/03/2020 19:54:10
Si la variable esta vacía no puedes añadir un fichero al correo, o dicho de otra forma si no tienes fichero para añadir al correo no puedes ejecutar la línea:

1
.Attachments.Add

Si te fijas en el código veras que esta condicional:

1
If NombreArchivo <> False Then .Attachments.Add NombreArchivo

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar