Print side | Luk vindue

mail enkel side i excel

Udskrevet fra: Dansk Regneark Forum
Kategori: Hjælp til regneark.
Forum navn: Makro og VBA
Forum beskrivelse: Hjælp til Makroer og VBA-programmering
Web-adresse: https://forum.excel-regneark.dk/forum_posts.asp?TID=4976
Udskrevet den: 23.Nov.2024 kl. 13:20


Emne: mail enkel side i excel
Besked fra: Rene L
Emne: mail enkel side i excel
Posteringsdato: 04.Sep.2023 kl. 14:03
Hej 

I har denne fine makro. Hvor man mailer en pdf af den excel fane man står på. Kan den laves om så man sender den excel fane man står i som excelfil i stedet for. 

Sub LavPDFOgSendViaEmail()

Dim DataSti As String
Dim Filnavn As String
Dim objFolders As Object
Set objFolders = CreateObject("WScript.Shell").SpecialFolders
Dim OutlookPrg As Object
Dim OutlookMail As Object
Set OutlookPrg = CreateObject("Outlook.Application")
Set OutlookMail = OutlookPrg.CreateItem(0)

DataSti = objFolders("desktop") & Application.PathSeparator
Filnavn = ActiveSheet.Name & ".pdf"

ActiveSheet.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=DataSti & Filnavn, _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False

On Error Resume Next
With OutlookMail
    .To = ""
    .CC = ""
    .BCC = ""
    .Subject = "Hermed fremsendes " & Filnavn
    .Body = "Hermed fremsendes " & Filnavn & vbCrLf & vbCrLf & "Med venlig hilsen" & vbCrLf & "Excel-regneark.dk"
    .Attachments.Add (DataSti & Filnavn)
    .Display
End With
On Error GoTo 0

Kill (DataSti & Filnavn)

Set OutlookMail = Nothing
Set OutlookPrg = Nothing
Set objFolders = Nothing
End Sub




Svar:
Besked fra: maxzpad
Posteringsdato: 04.Sep.2023 kl. 14:27
Sådan her vil jeg tro Smile

Sub GemXLXSOgSendViaEmail()

    Dim DataSti As String
    Dim Filnavn As String
    Dim objFolders As Object
    Set objFolders = CreateObject("WScript.Shell").SpecialFolders
    Dim OutlookPrg As Object
    Dim OutlookMail As Object
    Set OutlookPrg = CreateObject("Outlook.Application")
    Set OutlookMail = OutlookPrg.CreateItem(0)
    
    DataSti = objFolders("desktop") & Application.PathSeparator
    Filnavn = ActiveSheet.Name & ".xlsx"
    
    ActiveSheet.Copy
    With ActiveWorkbook
        .SaveAs Filename:=DataSti & Filnavn, FileFormat:=xlWorkbookDefault
        .Close
    End With
    
    On Error Resume Next
    With OutlookMail
        .To = ""
        .CC = ""
        .BCC = ""
        .Subject = "Hermed fremsendes " & Filnavn
        .Body = "Hermed fremsendes " & Filnavn & vbCrLf & vbCrLf & "Med venlig hilsen" & vbCrLf & "Excel-regneark.dk"
        .Attachments.Add (DataSti & Filnavn)
        .Display
    End With
    On Error GoTo 0
    
    Kill (DataSti & Filnavn)
    
    Set OutlookMail = Nothing
    Set OutlookPrg = Nothing
    Set objFolders = Nothing
End Sub



Besked fra: Rene L
Posteringsdato: 04.Sep.2023 kl. 14:40
Får denne fejlmelding 



Besked fra: maxzpad
Posteringsdato: 04.Sep.2023 kl. 14:43
Jeg kan ikke se fejlmeldingen ??


Besked fra: Rene L
Posteringsdato: 04.Sep.2023 kl. 14:47
Nå den tog ikke lige billede med. 

Følgende kan ikke gemmes i projektmapper uden markoer:
*VB-projekt 
Hvis du vil gemme en fil med disse funktioner, skal du kikke på nej og derefter vælge en markobaseret filtype på listen filtyper.

Denne bliver gul i scriptet. 
.saveAs filename:=Datasti & Filnavn, FileFormat:=xlWorkbookDefault


Besked fra: maxzpad
Posteringsdato: 04.Sep.2023 kl. 14:56
Ok - det er ikke som sådan en fejlmelding men en advarsel (alert) om, at man ikke kan gemme makroer i en xlsx-fil.

Du skulle gerne kunne komme omkring det sådan her:

    With ActiveWorkbook
        Application.DisplayAlerts = False
        .SaveAs Filename:=DataSti & Filnavn, FileFormat:=xlWorkbookDefault
        Application.DisplayAlerts = True
        .Close
    End With




Print side | Luk vindue