Enviar email a traví©s de VBA

Solo consultas sobre macros y código VBA Excel.

Reglas del Foro
1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!
Compartir en:
     

Enviar email a través de VBA

Notapor focalabestia » 20 Sep 2006 08:07

Hola! Pues bien, tengo nuevamente un problema con el envio de emails... Lo cierto es que con la ayuda que me disteis ya tenia la macro que funcionaba perfectamente... hasta que han decidido migrar las maquinas a XP i Office'03, de momento aun puedo usar el excel 2000 pero la macro me da un error (supongo porque el outlook es el del 2003)...

El código que en Win2000 funciona perfectamente es:

Sub Enviar_email()
Dim Body As String
Dim OL As Object
Dim EmailItem As Object
Dim objOutlookAttach As Object

Set OL = CreateObject("Outlook.Application")
Set EmailItem = OL.CreateItem(0)

adreçafitxer = adreçafitxer & ".xls"

With EmailItem
.Subject = tí­tol
If (cosmail <> "") Then
.Body = cosmail
End If
.To = email
.Attachments.Add adreçafitxer
.display
End With
Set OL = Nothing
Set EmailItem = Nothing

Application.Wait (Now + TimeValue("0:00:02"))
Application.SendKeys "%n"
Application.Wait (Now + TimeValue("0:00:02"))

End Sub

Ahora me da un error en la linea:
Set OL = CreateObject("Outlook.Application")

Indicandome que "El componente activex no puede crear el objeto". He estado mirando la ayuda pero mi nivel no llega a saber como descubrir cual debe ser la forma para indicar en esta nueva configuracion el Outlook aunque entiendo que puede que el error sea unicamente que se ha de indicar con otro nombre...

Alguien sabe como puedo hacerlo? Muchas gracias de verdad! =) Adeu!
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
focalabestia
Miembro Frecuente
Miembro Frecuente
 
Registrado: 18 Nov 2004 07:06

Notapor Chicharrero » 21 Sep 2006 06:41

Estimado:

Aunque el tema de enviar emails mediante VBA es vasto a la par que complejo (Mapi, Api, CreateObject, etc...) el codigo expuesto funciona.....en tu caso, teniendo en cuenta la migración (a otros equipos, sistemas, etc..) y el error que te da, sugiero que chekes el menu Herramientas>>Referencias.....y te fijes si tienes tildada la referencia a Outlook Objects, a la libreria del Outlook en cuestion.
Fijo me equivoco, pero la intención es buena XD.

Salu2 del Chicha de Tenerife (Canary XLSland)
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
Chicharrero
Miembro Frecuente
Miembro Frecuente
 
Registrado: 17 Mar 2005 23:33
Ubicación: Islas Canarias

Notapor focalabestia » 21 Sep 2006 08:31

Hola! Chicharrero gracias por la aportacion! ;) Pues te comento: COmo dices la macro funcionaba perfectamente (no sabes lo que bien que me va para mandar cada mañana los mismos emails...) pero ahora con la migración aunque tengo el excel 2000 el outlook pertenece a la version 2003... supongo que aqui reside el error...

He buscado en herramientas en todas las opciones del submenu y no encuentro donde esta la opcion de referencias para mirar si esta clicada la referente a Outlook objects... (te aseguro que lo he buscado mucho...) ya se que seguro que lo tengo delante de las narices y no lo veo pero me podrias indicar otra vez (para tontos... jejeje) donde esta exactamente esa opcion?

Muchas gracias de verdad! =) Adeu!
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
focalabestia
Miembro Frecuente
Miembro Frecuente
 
Registrado: 18 Nov 2004 07:06

Notapor Chicharrero » 22 Sep 2006 05:24

Estimado:

Lo siento por no ser mas especifico, en el editor de VBA, en el menu Herramientas>>Referencias, creo que es el primer item......Salu2
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
Chicharrero
Miembro Frecuente
Miembro Frecuente
 
Registrado: 17 Mar 2005 23:33
Ubicación: Islas Canarias

Notapor focalabestia » 22 Sep 2006 07:08

Hola! Chicharrero tienes toda la razón, he entrado para postear todos mis avances y uno era indicar lo tonto que he sido al no fijarme en que miraba el menu herramientas pero de excel no dentro del editor de VBA... (si lo se... muy tonto...)

Pues bien, despues de este "lapsus" he estado buscando en la ayuda y he encontrado toda una pagina donde indica todos los pasos a seguir para controlar una aplicacion de office desde otra. El primer paso es el que me indicas tu, he añadido la referencia a Microsoft Outlook 11.0 Object Library. Posteriormente el codigo que indica a utilizar es el que ya usaba.. por ejemplo:

Dim appWD As Word.Application
Set appWD = CreateObject("Word.Application")

si uso este codigo con la referncia a Microsoft word 11.0, me crea el objeto perfectamente pero al usar outlook.Application el compilador no da ningun error pero me sigue diciendo que "El componente activex no puede crear el objeto".

He buscado en la ayuda los identificadores de programacion OLE y me dice lo siguiente:

"Microsoft Outlook
Para crear los objetos Microsoft Outlook mostrados en la tabla siguiente, utilice uno de los identificadores de programación OLE correspondientes. Si utiliza un identificador sin un sufijo de número de versión, creará un objeto en la versión más reciente de Outlook disponible en el equipo en que se está ejecutando la macro.

Para crear este objeto Utilice uno de estos identificadores
Application Outlook.Application, Outlook.Application "

Por lo que deberia funcionar... Grrrr! Ya no entiendo que puede estar pasando... alguien tiene alguna idea?

Gracias chicharrero por tu paciencia! ;)
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
focalabestia
Miembro Frecuente
Miembro Frecuente
 
Registrado: 18 Nov 2004 07:06

Re: Enviar email a través de VBA

Notapor sailepaty » 22 Sep 2006 08:54

Intenta con el Microsoft Office 11.0 Object Library

Saludos
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
sailepaty
Miembro Frecuente
Miembro Frecuente
 
Registrado: 27 Oct 2004 12:31
Ubicación: Dallas, TX

Notapor focalabestia » 22 Sep 2006 09:50

Hola! También está añadido... es que no lo entiendo, he estado añadiendo muchas referencias y con ninguna funciona, por el contrario si que compila... por lo que reconoce la instruccion y por tanto la referencia esta bien... Y como he comentado con un objeto de word va perfectamente... no lo entiendo...

Mi configuración es: Windows XP, con office 2003 y excel/access 2000. Este error me da en los dos office dado que el outlook opertenece a la version 2003...

Alguna idea mas¿? Muchas gracias de verdad a todos! =) Adeu!
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
focalabestia
Miembro Frecuente
Miembro Frecuente
 
Registrado: 18 Nov 2004 07:06

Notapor focalabestia » 22 Sep 2006 09:59

Hola! Actualizo info: En el departamento tenemos maquinas que aun no estan migradas (yo estaba resolviendo los problemas con las macros en realizar la migracion) pues bien, acabo de revisar las referencias y son las mismas que en mi maquina pero en version 9.0, y alli funciona perfectamente... vamos que aun lo entiendo menos... No podria ser que la version de outlook no correspondiera a la 11¿? Bueee ya no se ni que me digo, pero es que eso de que ha de funcionar y no funcione da una rabia!!!

Bueee gracias por la paciencia nuevamente! =) Adeu!
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
focalabestia
Miembro Frecuente
Miembro Frecuente
 
Registrado: 18 Nov 2004 07:06

Notapor Chicharrero » 25 Sep 2006 06:15

Estimado FocalaBestia:

Llegados a este punto, te sugiero instales el office nuevamente. Fijo me equivoco pero no veo solución alguna,,,mi experiencia con estas cosas es instalar de nuevo (ni siquiera reparar) porque imagino que una mala instalación o la eliminación de programas que utilizan archivos comunes (.dll, .ocx, etc..) hacen que rutinas normales fallen y te den el error que comentas "El componente tal no puede crear cual" .

Salu2
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
Chicharrero
Miembro Frecuente
Miembro Frecuente
 
Registrado: 17 Mar 2005 23:33
Ubicación: Islas Canarias

Notapor focalabestia » 27 Sep 2006 06:06

Hola! Chicharro cuando ya estaba por arrancarme los pelos dado que no puedo reinstalar el office facilmente ya que dependo del departamento de informatica y no sabes lo que me cuesta que se decidan a hacer lo que les pido... =P

Pues bien! Navegando por internet he encontrado este codigo! Y con 2 chorradas de modificaciones ya funciona! Ueee! ;)

Aqui os lo dejo por si le sirve a alguien:

Sub Send_Msg()
Dim objOL As New Outlook.Application
Dim objMail As MailItem

Set objOL = New Outlook.Application
Set objMail = objOL.CreateItem(olMailItem)

With objMail
.To = "name@domain.com"
.Subject = "Automated Mail Response"
.Body = "This is an automated message from Excel. " & _
"The cost of the item that you inquired about is: " & _
Format(Range("A1").Value, "$ #,###.#0") & "."
.Display
End With

Set objMail = Nothing
Set objOL = Nothing
End Sub

La pagina es la siguiente: http://www.mindspring.com/~tflynn/excelvba.html#bMail

Nuevamente gracias por todo a todos! =) Adeu!
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
focalabestia
Miembro Frecuente
Miembro Frecuente
 
Registrado: 18 Nov 2004 07:06

Notapor focalabestia » 27 Sep 2006 06:07

Hola! Esto de no poder editar los post da mucha rabia... Lo siento chicharrero me he dejado la mitad de tu nombre en el anterior post... =P
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
focalabestia
Miembro Frecuente
Miembro Frecuente
 
Registrado: 18 Nov 2004 07:06


Compartir en:
     

  • Anuncio
Manual Excel avanzado

Volver a Macros

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados