C

crsuiza

Usuario (Honduras)

Primer post: 22 nov 2012Último post: 22 nov 2012
1
Posts
15
Puntos totales
9
Comentarios
Macro de excel para enviar una hoja via outlook automáticam
Macro de excel para enviar una hoja via outlook automáticam
Ciencia EducacionporAnónimo11/22/2012

hola amigos taringueros, hoy quiero compartir un código de visual basic excel que me ha servido mucho para trabajar mucho menos, la cuestion es que muchas veces deseamos enviar una hoja de un libro de excel. si tenemos outlook(en este ejemplo es obligatorio que tengamos configurado el correo en outlook) debemos buscar el archivo, si está abierto cerrarlo. adjuntarlo, en fin una lata. si haces algún trabajo repetitivo, tienes un gráfico en una hoja, una planilla o algo que te pidan que debas enviar constantemente, aqui está parte de la solución aclaro de antemano que este código no es mio a continuación les dejo los créditos: See this page about security warnings if you do that. http://www.rondebruin.nl/mail/prevent.htm como verán lo he utilizado para mis oscuros propósitos , en este caso necesitan tener el programa outlook instalado. por supuesto, si agregas por ejemplo un código de tiempo para que lo envie cada cierto fecha o periodo de tiempo te puede ayudar mas, por el momento aqui va el código: le puse algunos comentarios para tratar de explicar aunque el tipo lo hace de maravilla. Sub Mail_ActiveSheet() 'Working in 2000-2010´ 'definición de variables Dim FileExtStr As String Dim FileFormatNum As Long Dim Sourcewb As Workbook Dim Destwb As Workbook Dim TempFilePath As String Dim TempFileName As String Dim OutApp As Object Dim OutMail As Object With Application 'importante para que no parpadee la pantalla y se agilice el procesamiento .ScreenUpdating = False .EnableEvents = False End With Set Sourcewb = ActiveWorkbook 'Copy the sheet to a new workbook (copia la hoja en libro nuevo) ActiveSheet.Copy Application.DisplayAlerts = False Set Destwb = ActiveWorkbook 'Determine the Excel version and file extension/format (identifica la version de excel que tienes instalada) With Destwb If Val(Application.Version) < 12 Then 'You use Excel 97-2003 FileExtStr = ".xls": FileFormatNum = -4143 Else 'You use Excel 2007-2010 'We exit the sub when your answer is NO in the security dialog that you only 'see when you copy a sheet from a xlsm file with macro's disabled. If Sourcewb.Name = .Name Then With Application .ScreenUpdating = True .EnableEvents = True End With MsgBox "Your answer is NO in the security dialog" Exit Sub Else Select Case Sourcewb.FileFormat Case 51: FileExtStr = ".xlsx": FileFormatNum = 51 Case 52: If .HasVBProject Then FileExtStr = ".xlsm": FileFormatNum = 52 Else FileExtStr = ".xlsx": FileFormatNum = 51 End If Case 56: FileExtStr = ".xls": FileFormatNum = 56 Case Else: FileExtStr = ".xlsb": FileFormatNum = 50 End Select End If End If End With ' 'Change all cells in the worksheet to values if you want ' With Destwb.Sheets(1).UsedRange ' .Cells.Copy ' .Cells.PasteSpecial xlPasteValues ' .Cells(1).Select ' End With ' Application.CutCopyMode = False 'Save the new workbook/Mail it/Delete it TempFilePath = Environ$("temp" & "" TempFileName = "aqui podes escribir el nombre del libro que tu quieras " & Sourcewb.Name & " " & Format(Now, "dd-mmm-yy h-mm-ss" Set OutApp = CreateObject("Outlook.Application" Set OutMail = OutApp.CreateItem(0) With Destwb .SaveAs TempFilePath & TempFileName & FileExtStr, FileFormat:=FileFormatNum On Error Resume Next With OutMail 'escribe la direccion del destinatario .To = "[email protected]" .CC = "[email protected]" .BCC = "" .Subject = "el asunto va aqui" .Body = "escribe el cuerpo del mensaje" .Attachments.Add Destwb.FullName 'You can add other files also like this '.Attachments.Add ("C:test.txt" 'or use .Send Rem EL AUTOR DICE QUE PUEDO USAR .DISPLAY PARA MOSTRAR. PERO USARE SEND PARA ENVIARLOS AUTOMÁTICAMENTE .SEND Rem USANDO .SEND. MANDA EL CORREO SIN NECESIDAD DE CLICKEAR ENVIAR End With On Error GoTo 0 .Close savechanges:=False End With 'Delete the file you have send Kill TempFilePath & TempFileName & FileExtStr Set OutMail = Nothing Set OutApp = Nothing With Application .ScreenUpdating = True .EnableEvents = True End With Application.DisplayAlerts = True End Sub bueno, espero que también les sea de mucha utilidad, pueden crear un código para que por ejemplo cuando un porcentaje llegue al 100% lo envie, o coloquen un boton en excel. lo que prefieran. (es posible que taringa confunda el codigo con emoticones pero cuando lo pasen a excel quedará como nuevo) Salud amigos.

15
5
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.