Avatar billede SKJ Juniormester
23. februar 2022 - 12:08 Der er 16 kommentarer

VBA kode for send email Excel 365 - "se email i celle"

Excel & Outlook version: Microsoft 365 MSO (16.0.14326.20702) 32-bit
Hekser lidt med en VBA kode:
Private Sub CommandButton1_Click()
    Dim rng As Range
    Dim OutApp As Object
    Dim OutMail As Object
 
    With Application
        .EnableEvents = False
        .ScreenUpdating = False
    End With

    Set rng = Nothing
    Set rng = ActiveSheet.UsedRange
    'You can also use a sheet name
    'Set rng = Sheets("YourSheet").UsedRange

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
   
    On Error Resume Next
    With OutMail
        .To = Range("AK2")
        .CC = Range("AK3") & ("AL3") & ("AM3")
        .BCC = ""
        .Subject = Range("AK5")
        .HTMLBody = Range("AD5:AG18")
        .Display = .Display
     
    End With
    On Error GoTo 0
 
    With Application
        .EnableEvents = True
        .ScreenUpdating = True
    End With

    Set OutMail = Nothing
    Set OutApp = Nothing
 
End Sub

Er gået i stå da den "popper op" med gul fejl på denne linje:
Set OutApp = CreateObject("Outlook.Application")
Kan ikke komme videre for at se om resten af det indtastet virker.
Bla om den kan læs Range cellerne. (Områder)

Nogen der har en ide eller har en VBA kode der virker i 365 version??
Avatar billede ebea Ekspert
23. februar 2022 - 12:40 #1
Hvis du bruger Outlook online, vil koden ikke virke, da du ikke kan logge ind på din bruger konto, fra mail koden.
Men som almindelig Outlook, virker koden.

I din linje her:  .CC = Range("AK3") & ("AL3") & ("AM3")
skal du huske at sætte Range på hver celle, ellers får du bare det imellem apostroferne.
.CC = Range("AK3") & Range("AL3") & Range("AM3")
Avatar billede SKJ Juniormester
23. februar 2022 - 13:31 #2
#1 - Tak for info vedr. .CC =
Office 365 er vel en online version - Sådan noget lort :-(
Må lige hører hører vores IT-afd. om der kan laves et eller andet i opsætning hos dem.
Avatar billede ebea Ekspert
23. februar 2022 - 13:59 #3
#2 - Det vil ikke hjælpe dig, med hensyn til den viste kode. Alternativ er, at bruge en helt anden type kode, eller bruge en Outlook version, som er på din lokal computer (det nemmeste, og mest problemfrie).
Avatar billede claes57 Ekspert
23. februar 2022 - 16:00 #4
Start lige Outlook. Hvis det er en app, så er det ikke online. Hvis det er et vindue i en browser, så er det online.
Avatar billede SKJ Juniormester
23. februar 2022 - 20:32 #5
#4 - Der er app på pc. Men der er også adgang via intranettet - online.
Avatar billede ebea Ekspert
23. februar 2022 - 21:16 #6
#5 - Du må da vide, om du logger på din konto, for at se mails, eller du har startet en Outlook, som er installeret på din lokal maskine.
Du kan jo se, hvilke programmer du har installeret.
Avatar billede SKJ Juniormester
24. februar 2022 - 04:48 #7
#6 Ja selvfølgelig gør jeg det. Der logges på Office 365 programmerne. Men det er ikke hver gang/dag.
Avatar billede ebea Ekspert
24. februar 2022 - 07:56 #8
#7 - Så er svaret stadig, som i #1
Avatar billede SKJ Juniormester
08. marts 2022 - 12:45 #9
Der var en fejl på vores server. Så nu "virker" koden. Den åbner mailen.

Men jeg kan ikke få knappen (på en fane side) til at hente info og indsætte i mail fra en anden fane. Mangler jeg et tegn eller et eller andet ???

Dim rng As Range
    Dim OutApp As Object
    Dim Outmail As Object
     
    Set rng = Nothing
    On Error Resume Next
    Set rng = Selection.SpecialCells(xlCellTypeVisible)
    Set rng = Sheets("OBE_SE").Range("A6:G19").SpecialCells(xlCellTypeVisible)

    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 = Range("OBE_SE!I3") & "skj@vegtech.dk"
        .CC = Range("OBE_SE!I4") & Range("OBE_SE!J4") & Range("OBE_SE!K4")
        .BCC = Range("OBE_SE!I5")
        .Subject = Range("OBE_SE!I6")
        .MailBody = "Test af mail sending" & vbNewLine & vbNewLine & _
    "Vedhæftet: 1 stk. fil" & vbNewLine & Range("OBE_SE!B6:E19") & "Test af mail sending" & vbNewLine & vbNewLine & _
    "Vedhæftet: 1 stk. fil" & vbNewLine
        .Display = .Display
     
    End With
    On Error GoTo 0
 
    With Application
        .EnableEvents = True
        .ScreenUpdating = True
    End With

    Set Outmail = Nothing
    Set OutApp = Nothing
Avatar billede ebea Ekspert
08. marts 2022 - 14:18 #10
Her er en lidt forenklet udgave. Den tager Ark2, og vedhæfter i din mail.
Du kan selv tilpasse, så den passer til dit brug.

Sub Sendmail()
  Dim OutApp As Object
  Dim OutMail As Object
  Dim MailBody As String
  Dim sPath As String, sFile As String

  Set OutApp = CreateObject("Outlook.Application")
  Set OutMail = OutApp.CreateItem(0)
  MailBody = "Test af mail sending" & vbNewLine & vbNewLine & _
  Sheets("Ark2").Range("B6")
 
  sPath = CreateObject("WScript.Shell").specialfolders("Desktop") & "\"
  sFile = "Test - " & Format(Date, "dd-mm-yyyy") & ".xlsx"
  Sheets("Ark2").Copy
  ActiveWorkbook.SaveAs sPath & sFile
  ActiveWorkbook.Close False
  '
  On Error Resume Next
  With OutMail
    .To = Range("I2") & ";" & Range("I3")
    .CC = ""
    .BCC = ""
    .Subject = "Se vedhæftede fil"
    .Body = MailBody
    .Attachments.Add sPath & sFile
    .Display  'Vis, eller alternativ, brug .Send
  End With
  On Error GoTo 0
  Set OutMail = Nothing
  Set OutApp = Nothing
End Sub
Avatar billede SKJ Juniormester
08. marts 2022 - 18:51 #11
#10 Takker. Men i stedet for vedhæftning, kan den så ikke blot indsætte et område (A1:G25) i mail
Avatar billede ebea Ekspert
08. marts 2022 - 19:04 #12
#11 - Kort svar, nej!  Det eneste du indsætter som tekst, er jo det som du definerer i din Body sektion.
Så hvis du skal have indsat tekst, så er det den vej, eller også som vist i eks. med en vedhæftet fil, enten som PDF eller Excel fil.
Avatar billede SKJ Juniormester
08. marts 2022 - 19:10 #13
#12 tak for svar. Så må jeg arbejde lidt på en pdf model.
Avatar billede SKJ Juniormester
08. marts 2022 - 19:23 #14
#10 Tester det. Men der kommer allerede en fejl ved:
MailBody = "Test af mail sending" & vbNewLine & vbNewLine & _
  Sheets("Ark2").Range("B6")
Avatar billede ebea Ekspert
08. marts 2022 - 19:43 #15
#14 - Har du tjekket om Ark2 findes, og om der er noget i cellen B6 ?
Avatar billede SKJ Juniormester
08. marts 2022 - 19:48 #16
#15 - Ja :-) Oprettede Ark2 og skrev TEST i cellen B6
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester