Macros en excel.

28/11/2003 - 12:32 por ADumith | Informe spam
Saludos;

Me gustaría saber si alguien conoce un sitio de Macros de
Excel, necesito desarrollar una que envíe un email desde
un libro excel y coloque este como documento adjunto.

Gracias anticipadas.

Preguntas similare

Leer las respuestas

#1 Fernando Arroyo
28/11/2003 - 12:53 | Informe spam
Puedes enviar un libro colocando este código en un módulo creado por ti:

Sub EnviarLibro()
ThisWorkbook.SendMail Recipients:="", Subject:="Envío libro de Excel"
End Sub

Un saludo.


Fernando Arroyo
MS MVP - Excel


"ADumith" escribió en el mensaje news:0d5701c3b5a3$4155bae0$
Saludos;

Me gustaría saber si alguien conoce un sitio de Macros de
Excel, necesito desarrollar una que envíe un email desde
un libro excel y coloque este como documento adjunto.

Gracias anticipadas.
Respuesta Responder a este mensaje
#2 Adumith
28/11/2003 - 20:17 | Informe spam
Antes que todo quiero agraderte la ayuda prestada ahora
bien, la macro que necesito desarrollar debe hacer lo
siguiente:
1.- Guardar el documento con el nombre "Requisición a
tecnología" + número de control (este debe ser automático
y debe estar dado por hora minutos y segundos).
Ejemplo: Requisición a tecnología 1523.
2.- El número de control debe crearce al momento de
abrise el documento y se debe colocar en una celda
específica.
3.- Enviar el documento creado a traves del email de
forma automática (Ya está listo, gracias a tí).
4.- Se debe colocar en el cuerpo del correo un texto fijo
que diga, por ejemplo: "Adjunto se envia requisición para
su gestión."

Muchas gracias amigo.


Puedes enviar un libro colocando este código en un


módulo creado por ti:

Sub EnviarLibro()
ThisWorkbook.SendMail Recipients:="",


Subject:="Envío libro de Excel"
End Sub

Un saludo.


Fernando Arroyo
MS MVP - Excel


"ADumith" escribió en el mensaje


news:0d5701c3b5a3$4155bae0$
Saludos;

Me gustaría saber si alguien conoce un sitio de Macros


de
Excel, necesito desarrollar una que envíe un email desde
un libro excel y coloque este como documento adjunto.

Gracias anticipadas.
.

Respuesta Responder a este mensaje
#3 Fernando Arroyo
29/11/2003 - 19:16 | Informe spam
Prueba con esto:


Sub CrearYEnviarLibro()
Dim oulApp As Outlook.Application, oulMensaje As MailItem, wkb As Workbook

Set oulApp = New Outlook.Application
Set oulMensaje = oulApp.CreateItem(olMailItem)

Set wkb = Workbooks.Add
wkb.Worksheets(1).Range("A1") = "Requisición a tecnología " & Format(Now() - Int(Now), "hhmmss") 'El nombre del libro se pondrá en la celda A1 de su primera hoja
wkb.SaveAs "C:\prueba\" & wkb.Worksheets(1).Range("A1") 'Los ficheros se guardarán en la carpeta C:\prueba
wkb.Close

With oulMensaje
.To = ""
.Subject = "Aquí va el asunto del mensaje"
.Body = "Aquí va el texto del mensaje."
.Attachments.Add wkb.FullName
.Send
End With

Set wkb = Nothing
Set oulMensaje = Nothing
Set oulApp = Nothing
End Sub


Para que funcione es necesario que establezcas una referencia a la librería de Outlook, la cual se llama "Microsoft Outlook XX.x Object Library", donde XX.x representa la versión de Outlook que tengas en el equipo. Esto se hace desde Herramientas->Referencias, estando en el editor de VBA.
Un saludo.


Fernando Arroyo
MS MVP - Excel

"Adumith" escribió en el mensaje news:075001c3b5e4$47be9870$
Antes que todo quiero agraderte la ayuda prestada ahora
bien, la macro que necesito desarrollar debe hacer lo
siguiente:
1.- Guardar el documento con el nombre "Requisición a
tecnología" + número de control (este debe ser automático
y debe estar dado por hora minutos y segundos).
Ejemplo: Requisición a tecnología 1523.
2.- El número de control debe crearce al momento de
abrise el documento y se debe colocar en una celda
específica.
3.- Enviar el documento creado a traves del email de
forma automática (Ya está listo, gracias a tí).
4.- Se debe colocar en el cuerpo del correo un texto fijo
que diga, por ejemplo: "Adjunto se envia requisición para
su gestión."

Muchas gracias amigo.
Respuesta Responder a este mensaje
#4 ADumith
01/12/2003 - 16:10 | Informe spam
Antes que todo amigo, muchisimas gracias por tu ayuda.

Trabajando en lo necesitaba desarrollé lo siguiente:
Dim var, titulo
Sub EnviarLibro()
If MsgBox("Atención...!" & vbCrLf & "Esta a punto de
enviar la Requisición de Tecnología." & vbCrLf
& "Verifique que todos los datos del formulario estan
completados correctamente.", vbExclamation +
vbYesNo, "Solicitud de requisisión") = vbYes Then
MsgBox "Es posible que se presente una ventana de
MIcrosof Outlook, preguntando si desea permitir el envío
de esta requisición; haga clic en Si",
vbExclamation, "Solicitud de requisisión"
var = Hour(Time) & Minute(Time) & Second(Time)
Worksheets(2).Range("M5").Value = var
Do
titulo = "Requisición de tecnología " & var
Loop Until titulo <> False
ThisWorkbook.SaveAs Filename:=titulo
' ThisWorkbook.SendMail Recipients:="Sistemas y
Procedimientos", Subject:=titulo, ReturnReceipt:=True
ThisWorkbook.SendMail Recipients:="Raiza Nuñez",
Subject:=titulo, ReturnReceipt:=True
MsgBox "Se ha enviado: " & titulo & "
Satisfactoriamente...!", vbExclamation, "Solicitud de
requisisión"
End If
End Sub

Sin embargo tengo un problema y es que por reglas de la
organización la seguridad de las macros está configurada
de manera que el sistema pregunta si desea habilitar
macros o nó.

La pregunta sería la siguiente: Es posible que al momento
de abrir el documento ejecutar algun Script que habra
directamente la macro sin la pregunta.?


Prueba con esto:


Sub CrearYEnviarLibro()
Dim oulApp As Outlook.Application, oulMensaje As


MailItem, wkb As Workbook

Set oulApp = New Outlook.Application
Set oulMensaje = oulApp.CreateItem(olMailItem)

Set wkb = Workbooks.Add
wkb.Worksheets(1).Range("A1") = "Requisición a


tecnología " & Format(Now() - Int(Now), "hhmmss") 'El
nombre del libro se pondrá en la celda A1 de su primera
hoja
wkb.SaveAs "C:\prueba\" & wkb.Worksheets(1).Range


("A1") 'Los ficheros se guardarán en la carpeta C:\prueba
wkb.Close

With oulMensaje
.To = ""
.Subject = "Aquí va el asunto del mensaje"
.Body = "Aquí va el texto del mensaje."
.Attachments.Add wkb.FullName
.Send
End With

Set wkb = Nothing
Set oulMensaje = Nothing
Set oulApp = Nothing
End Sub


Para que funcione es necesario que establezcas una


referencia a la librería de Outlook, la cual se
llama "Microsoft Outlook XX.x Object Library", donde XX.x
representa la versión de Outlook que tengas en el equipo.
Esto se hace desde Herramientas->Referencias, estando en
el editor de VBA.
Un saludo.


Fernando Arroyo
MS MVP - Excel

"Adumith" escribió


en el mensaje news:075001c3b5e4$47be9870
$
Antes que todo quiero agraderte la ayuda prestada ahora
bien, la macro que necesito desarrollar debe hacer lo
siguiente:
1.- Guardar el documento con el nombre "Requisición a
tecnología" + número de control (este debe ser


automático
y debe estar dado por hora minutos y segundos).
Ejemplo: Requisición a tecnología 1523.
2.- El número de control debe crearce al momento de
abrise el documento y se debe colocar en una celda
específica.
3.- Enviar el documento creado a traves del email de
forma automática (Ya está listo, gracias a tí).
4.- Se debe colocar en el cuerpo del correo un texto


fijo
que diga, por ejemplo: "Adjunto se envia requisición


para
su gestión."

Muchas gracias amigo.

.

Respuesta Responder a este mensaje
#5 Adumith
01/12/2003 - 16:42 | Informe spam
Disculpa Fernando, habia olvidado comentarte que este
formulario debería funcionar para máquinas desde Office
97 hasta 2003.

Por otra parte probando tu script el sistema me genera el
siguiente error:
Se ha producido el error -2147221080 Error de
automatización.

Este se genera justo en la línea:
.Attachments.Add wkb.FullName


Que puede estar fallando????

Prueba con esto:


Sub CrearYEnviarLibro()
Dim oulApp As Outlook.Application, oulMensaje As


MailItem, wkb As Workbook

Set oulApp = New Outlook.Application
Set oulMensaje = oulApp.CreateItem(olMailItem)

Set wkb = Workbooks.Add
wkb.Worksheets(1).Range("A1") = "Requisición a


tecnología " & Format(Now() - Int(Now), "hhmmss") 'El
nombre del libro se pondrá en la celda A1 de su primera
hoja
wkb.SaveAs "C:\prueba\" & wkb.Worksheets(1).Range


("A1") 'Los ficheros se guardarán en la carpeta C:\prueba
wkb.Close

With oulMensaje
.To = ""
.Subject = "Aquí va el asunto del mensaje"
.Body = "Aquí va el texto del mensaje."
.Attachments.Add wkb.FullName
.Send
End With

Set wkb = Nothing
Set oulMensaje = Nothing
Set oulApp = Nothing
End Sub


Para que funcione es necesario que establezcas una


referencia a la librería de Outlook, la cual se
llama "Microsoft Outlook XX.x Object Library", donde XX.x
representa la versión de Outlook que tengas en el equipo.
Esto se hace desde Herramientas->Referencias, estando en
el editor de VBA.
Un saludo.


Fernando Arroyo
MS MVP - Excel

"Adumith" escribió


en el mensaje news:075001c3b5e4$47be9870
$
Antes que todo quiero agraderte la ayuda prestada ahora
bien, la macro que necesito desarrollar debe hacer lo
siguiente:
1.- Guardar el documento con el nombre "Requisición a
tecnología" + número de control (este debe ser


automático
y debe estar dado por hora minutos y segundos).
Ejemplo: Requisición a tecnología 1523.
2.- El número de control debe crearce al momento de
abrise el documento y se debe colocar en una celda
específica.
3.- Enviar el documento creado a traves del email de
forma automática (Ya está listo, gracias a tí).
4.- Se debe colocar en el cuerpo del correo un texto


fijo
que diga, por ejemplo: "Adjunto se envia requisición


para
su gestión."

Muchas gracias amigo.

.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida