Saltar al contenido

Cómo enviar por correo electrónico una hoja de Excel con celdas declaradas en lugar del texto


Recommended Posts

publicado

Hola a todos, mi nombre es Maurizio y mi nuevo problema es este:
Me gustaría enviar por correo electrónico no un archivo adjunto, sino una especie de copia de las celdas de la hoja de Excel que van desde la celda ("A3: J13") en su opinión, ¿es posible obtener todo esto?
O: ¿Cómo lograrías crear tal cosa?
gracias
Saludos desde A.Maurizio

Traslation:
------------------------------------------------------------------------------------------------------------------------------------------

Hi everyone, my name is Maurizio and my new problem is this:
I would like to send via Email not an attachment but a sort of copy of the excel sheet cells that go from the Cell ("A3: J13") in your opinion is it possible to obtain all this?
Or: How would you manage to create such a thing!
Thank you
Greetings from A.Maurizio

PROVA.XLS.xlsm

publicado

Hola antoni
Sí, más o menos tal cosa
Como me gustaría poder enviar la hoja de Excel directamente por correo electrónico; Sin tener que quedarse allí y hacer una copia primero y luego enviarla como un archivo adjunto.
Pero solo desearía que se enviara al destinatario que puse en la celda (B1) El contenido de las celdas (A3: J13) ¡eso es todo!
Muchas gracias de nuevo por su apoyo.
Siempre eres puntual y muy amable.
Saludos desde A.Maurizio

_______________________________________________________
Hi Antoni
Yes, more or less such a thing
As I would like to be able to send the excel sheet directly via email; Without having to stay there and make a copy first and then send it as an attachment.
But I just wish it was sent to the recipient that I put in the cell (B1) The contents of the cells (A3: J13) that's all!
Thank you again very much for your support
You are always punctual and very kind.
Greetings from A.Maurizio

publicado

Revisando el post compartido de Antoni, estas opciones no te sirven?:

 

Sub Mail_Selection_Range_Outlook_Body()
'For Tips see: http://www.rondebruin.nl/win/winmail/Outlook/tips.htm
'Don't forget to copy the function RangetoHTML in the module.
'Working in Excel 2000-2016
    Dim rng As Range
    Dim OutApp As Object
    Dim OutMail As Object

    Set rng = Nothing
    On Error Resume Next
    'Only the visible cells in the selection
    Set rng = Selection.SpecialCells(xlCellTypeVisible)
    'You can also use a fixed range if you want
    'Set rng = Sheets("YourSheet").Range("D4:D12").SpecialCells(xlCellTypeVisible)
    On Error GoTo 0

    If rng Is Nothing Then
        MsgBox "The selection is not a range or the sheet is protected" & _
               vbNewLine & "please correct and try again.", vbOKOnly
        Exit Sub
    End If

    With Application
        .EnableEvents = False
        .ScreenUpdating = False
    End With

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    On Error Resume Next
    With OutMail
        .To = "ron@debruin.nl"
        .CC = ""
        .BCC = ""
        .Subject = "This is the Subject line"
        .HTMLBody = RangetoHTML(rng)
        .Send   'or use .Display
    End With
    On Error GoTo 0

    With Application
        .EnableEvents = True
        .ScreenUpdating = True
    End With

    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub
Function RangetoHTML(rng As Range)
' Changed by Ron de Bruin 28-Oct-2006
' Working in Office 2000-2016
    Dim fso As Object
    Dim ts As Object
    Dim TempFile As String
    Dim TempWB As Workbook

    TempFile = Environ$("temp") & "\" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"

    'Copy the range and create a new workbook to past the data in
    rng.Copy
    Set TempWB = Workbooks.Add(1)
    With TempWB.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
        On Error Resume Next
        .DrawingObjects.Visible = True
        .DrawingObjects.Delete
        On Error GoTo 0
    End With

    'Publish the sheet to a htm file
    With TempWB.PublishObjects.Add( _
         SourceType:=xlSourceRange, _
         Filename:=TempFile, _
         Sheet:=TempWB.Sheets(1).Name, _
         Source:=TempWB.Sheets(1).UsedRange.Address, _
         HtmlType:=xlHtmlStatic)
        .Publish (True)
    End With

    'Read all data from the htm file into RangetoHTML
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
    RangetoHTML = ts.readall
    ts.Close
    RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
                          "align=left x:publishsource=")

    'Close TempWB
    TempWB.Close savechanges:=False

    'Delete the htm file we used in this function
    Kill TempFile

    Set ts = Nothing
    Set fso = Nothing
    Set TempWB = Nothing
End Function

 

publicado

Hola a todos, disculpen si solo ahora estoy respondiendo a sus propuestas como siempre, muy apreciado por mí; Fuente de aprendizaje no indiferente.

Gracias también a Jose BN que no conozco pero que también le agradece por su costoso apoyo.
Tu procedimiento es fantástico; un poco como el leído por el enlace que Antoni me ofreció amablemente, que también agradezco a Infinito.
Tenía algunos problemas de naturaleza práctica; Pero sigue siendo una ayuda válida.
Gracias, sin embargo, a todos ustedes, logré resolver mi problema casi por completo: como si lo pensaran, no tendría sentido insertar los datos tomados de las celdas de una hoja Excel e Insrite en el cuerpo de un correo electrónico.
¿Entonces me dije a mí mismo?
Y si encontré el sistema de:
1) Crear una subcarpeta; dónde guardar el archivo de Excel con solo los datos deseados dentro de él.
2) Asegúrese de abrir una hoja de correo electrónico
3) Escriba en él todos los datos necesarios para enviar un correo electrónico clásico.
4) Recupere el archivo que puse en la subcarpeta y póngalo como un archivo adjunto.
5) Al final solo tengo que enviar todo.
Bueno !!!!!!!!
Todo esto ya casi lo he logrado; Desde ahora, todo lo que tengo que hacer es encontrar una manera de adjuntar un archivo; Pero por lo demás es funcional.

Dicho esto, sin embargo, nunca dejaré de agradecerles a todos por su ayuda.
Gracias - Gracias - Gracias
Saludos sinceros de A.Maurizio

################################################################

Hello everyone. Excuse me if I am only now responding to your proposals as always very appreciated by me; Source of Learning not indifferent.

Thanks also to Jose BN that I don't know but who also thanks him for his pricey support.
Your procedure is fantastic; a little like the one read by the link that Antoni kindly offered me, which I also thank Infinito.
He had some problems of a practical nature; But still a valid help.
Thanks, however, to all of you, I managed to solve my problem almost entirely: As if you think about it, it would not make sense to insert the data taken from the cells of an excel and Insrite sheet into a body of an e-mail.
So I said to myself?
And if I found the system of:
1) Create a subfolder; where to save the Excel file with only the desired data inside it.
2) Make sure to open an e-mail sheet
3) Write on it all the data needed to send a classic E-mail.
4) Retrieve the file that I put in the sub folder and put it as an attachment.
5) In the end I just have to send the whole thing.
Well !!!!!!!!
All this I have already almost succeeded; As now I just have to find a way to attach a file; But otherwise it is functional.

Having said that however, I will never stop thanking all of you for your help.
Thanks thanks thanks
Sincere greetings from A.Maurizio

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.