Codigo VBA complemento

21/02/2005 - 18:11 por JAVIER | Informe spam
hola a migos a continuacion les muestro el codigo para enviar por mail una
seleccion de un rango, adicionalmente les pido su apoyo para complementarlo
necesito enviar copia a otra persona por tanto no se como puedo integrar la
instruccion. saludos muchas gracias...
Sub Mail_resumen()
Dim sh As Worksheet
Dim wb As Workbook
Dim strdate As String
Dim source As Range
Dim dest As Workbook


Application.ScreenUpdating = False
For Each sh In ThisWorkbook.Worksheets
If sh.Range("a20").Value Like "?*@?*.?*" Then
strdate = Format(Now, "dd-mm-yy h-mm-ss")

Set source = Nothing
On Error Resume Next
Set source = Range("b1:n21").SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If source Is Nothing Then
MsgBox "The source is not a range or the sheet is protect, please
correct and try again.", vbOKOnly
Exit Sub
End If

Application.ScreenUpdating = False
Set dest = Workbooks.Add(xlWBATWorksheet)
source.Copy
With dest.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial xlPasteValues, , False, False
.Cells(1).PasteSpecial xlPasteFormats, , False, False
.Cells(1).Select
Application.CutCopyMode = False
ActiveWindow.DisplayGridlines = False
End With


Set wb = ActiveWorkbook
With wb
.SaveAs "ResumenPlan" & ".xls"
.Sendmail ActiveSheet.Range("a20").Value, _
"Resumen de presupuesto"
.ChangeFileAccess xlReadOnly
Kill .FullName
.Close False
End With
End If
Next sh
Application.ScreenUpdating = True
End Sub

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
22/02/2005 - 02:00 | Informe spam
hola, Javier !

... codigo para enviar por mail... apoyo para complementarlo... enviar copia a otra persona... integrar la instruccion.



si revisas la ayuda en vba {F1}, el metodo 'SendMail' [solamente] 'soporta' tres argumentos...
- destinatario
- asunto
- solicitud de 'acuse de recibo'
=> NO tiene 'soporte' para enviar 'con copia a...' :(

op1: usa una 'matriz' de/para [varios] destinatario/s
op2: utiliza un metodo 'distinto de' SendMail

saludos,
hector.
Respuesta Responder a este mensaje
#2 KL
22/02/2005 - 17:21 | Informe spam
Hola Javier,

Una forma de hacerlo:

Sub enviarmail1()
Dest1 = ActiveSheet.Range("a20").Value
Set wb = ActiveWorkbook
With wb
.SaveAs "ResumenPlan" & ".xls"
.SendMail ActiveSheet.Range("a20:a22").Value, _
"Resumen de presupuesto"
.ChangeFileAccess xlReadOnly
Kill .FullName
.Close False
End With
End Sub


Saludos,
KL

"JAVIER" wrote in message
news:
hola a migos a continuacion les muestro el codigo para enviar por mail una
seleccion de un rango, adicionalmente les pido su apoyo para
complementarlo
necesito enviar copia a otra persona por tanto no se como puedo integrar
la
instruccion. saludos muchas gracias...
Sub Mail_resumen()
Dim sh As Worksheet
Dim wb As Workbook
Dim strdate As String
Dim source As Range
Dim dest As Workbook


Application.ScreenUpdating = False
For Each sh In ThisWorkbook.Worksheets
If sh.Range("a20").Value Like "?*@?*.?*" Then
strdate = Format(Now, "dd-mm-yy h-mm-ss")

Set source = Nothing
On Error Resume Next
Set source = Range("b1:n21").SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If source Is Nothing Then
MsgBox "The source is not a range or the sheet is protect, please
correct and try again.", vbOKOnly
Exit Sub
End If

Application.ScreenUpdating = False
Set dest = Workbooks.Add(xlWBATWorksheet)
source.Copy
With dest.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial xlPasteValues, , False, False
.Cells(1).PasteSpecial xlPasteFormats, , False, False
.Cells(1).Select
Application.CutCopyMode = False
ActiveWindow.DisplayGridlines = False
End With


Set wb = ActiveWorkbook
With wb
.SaveAs "ResumenPlan" & ".xls"
.Sendmail ActiveSheet.Range("a20").Value, _
"Resumen de presupuesto"
.ChangeFileAccess xlReadOnly
Kill .FullName
.Close False
End With
End If
Next sh
Application.ScreenUpdating = True
End Sub
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida