Error al adjuntar archivo para enviar por email con vba
A ver si me pueden ayudar. Tengo creado un código en vba para enviar mails automáticamente sin necesidad de abrir el Outlook, hasta ahí todo bien. Lo que no soy capaz es lograr que me adjunte un archivo. Me salta un error en "Email.Attachments.Add (Me.txt_Adjunto)" y el mensaje de (Visual Basic) previo al error es el siguiente: Se ha producido el error '13' en tiempo de ejecución. No coinciden los tipos. Realmente si pincho ahí en el sombreado amarillo si que aparece la ruta.
Tengo otro código que si lo hace pero me abre el Outlook y lo que pretendo es enviar sin necesidad de estar abriendo el Outlook.
Gracias y buena tarde.
Private Sub btn_A?adirAdjunto_Click() Dim objFileDialog As Office.FileDialog Dim ruta As String Set objFileDialog = Application.FileDialog(msoFileDialogFilePicker) With objFileDialog .AllowMultiSelect = False .ButtonName = "Aceptar" .Title = "Elija un archivo" If .Show = True Then NombreArchivo = Mid$(.SelectedItems(1), InStrRev(.SelectedItems(1), "\") + 1) MsgBox NombreArchivo 'Me.txt_Adjunto = NombreArchivo ruta = Trim(.SelectedItems.Item(1)) Me.txt_Adjunto = ruta End If End With End Sub Private Sub btn_EnviarMail_Click() 'Dimensiono variables Dim Email As CDO.Message Dim Autentificion As Boolean Dim dests As String 'Creo el objeto email Set Email = New CDO.Message Email.Configuration.Fields(cdoSMTPServer) = "mail.pepito.com" Email.Configuration.Fields(cdoSendUsingMethod) = 2 Email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = CLng(25) 'hotmail Email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/" & "configuration/smtpauthenticate") = Abs(1) 'Segundos de espera Email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30 Autentificacion = True If Autentificacion Then Email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "[email protected]" 'CONFIGURAR CUENTA QUE ENVIA MAIL Email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "1234" 'CONFIGURAR PASSWORD DE CUENTA QUE ENVIA MAIL Email.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False End If Email.To = Me.txt_Para Email.From = "[email protected]" 'CONFIGUAR CUENTA QUE ENVIA MAIL Email.CC = Me.txt_CCOO Email.Subject = Me.txt_Asunto Email.TextBody = Me.txt_Mensaje Email.Attachments.Add (Me.txt_Adjunto) Email.Configuration.Fields.Update 'Controlo errores On Error Resume Next 'enviamos propiamente el mail Email.Send 'Si no hay errores la funcion es verdadero If Err.Number = 0 Then SendMail_Gmail = True Else 'Sale msgbox con descripci?n del error MsgBox "Se produjo el siguiente error: " & Err.Description, vbCritical, "Error nro " & Err.Number End If 'Borro los objetos If Not Email Is Nothing Then Set Email = Nothing End If 'Controlo errores On Error GoTo 0 End Sub
1 Respuesta
Respuesta de Sveinbjorn El Rojo
1