Avatar billede malldiverne Nybegynder
17. juli 2015 - 11:09 Der er 2 kommentarer

Anvendelse af HTML.body, i et aumatiseret mailsystem.

Kære Eksperter,

Jeg har af flere gange gjort brug af jeres ekspertise, og derved udviklet et mailsystem, som genere en række data på bestemte enheder.

Mit spørgsmål lyder, om der der nogen, som er knag til anvendelse af HTML koder, ved opsætningen af tabeller i selve mailsystemet.

Jeg indtil videre anvendt nedenstående kode, dele er dog slettet uden betydning grundet privatisering af enkelte elementer.

Private Sub afsendAfBesked()
   
Worksheets("Mail").Activate
 
Dim modtager As String, linje As String

modtager = Range("g1") ' = Personernes navne
linje = "Dato" & vbTab & vbTab & "    Timer" & vbTab & vbTab & "Aktivitetsnr" & vbTab & "Aktivitet" & vbTab & "Modtagende omkostningsenhed" & vbCr

For ræk = 1 To ActiveCell.SpecialCells(xlLastCell).Row
    Range("g" & ræk).Activate ' N kolonnen = fejlreg. timer
    If ActiveCell <> modtager Then
        SendMail mail, navn, linje
        modtager = Range("G" & ræk) ' N kolonnen = fejlreg. timer
linje = "Dato" & vbTab & vbTab & "    Timer" & vbTab & vbTab & "Aktivitetsnr" & vbTab & "Aktivitet" & vbTab & "Modtagende omkostningsenhed" & vbCr

End If

With ActiveSheet

    Set navn = ActiveCell
    Set akt = ActiveCell.Offset(0, 1)
    Set aktnavn = ActiveCell.Offset(0, 2)
    Set regt = ActiveCell.Offset(0, 7)
    Set mail = ActiveCell.Offset(0, 10)
    Set dag = ActiveCell.Offset(0, 3)
    Set org = ActiveCell.Offset(0, -3)
   
    linje = linje & dag & vbTab & Format(regt, "00.00") & " timer" & vbTab & "  " & akt & vbTab & "    " & aktnavn & "    " & org & vbCr
   
End With

Next ræk
Rem sidste modtager
  SendMail mail, navn, linje
End Sub

Private Sub SendMail(mail, navn, linje)


  Set objOutlook = CreateObject("Outlook.Application")
  Set objMail = objOutlook.CreateItem(0)
 
   
      With objMail
        .To = mail
        .Subject = "Registrering på forkerte aktiviteter"
        .CC = ""
        .body = "Hej" & " " & navn & vbNewLine _
        & vbNewLine & "Følgende registreringer er anset, som værende fejlregistreringer:" & vbNewLine & vbNewLine & linje
           
             
        End With
     
      objMail.display End Sub

Det jeg tænker er en erstatning af "linje", som i stedet for skrevet i tabel form gennem brug af HTML.body...

Jeg er "meget" grøn på omkring brugen af HTML, så derfor denne lidt brede forespørgsel.

Med Venlig Hilsen

Martin Sørensen
Avatar billede neoman Novice
21. juli 2015 - 22:35 #1
På nettet kan du finde "html table generator" som kan generere HTML til netop den tabel du ønsker. Og så kan du tage hele den html og sige

.HTMLbody="det der var der før min tabel" & dinTabelHtmlKode

Prøv først med en lille 2x2 tabel
Avatar billede malldiverne Nybegynder
22. juli 2015 - 12:39 #2
Tak for svar, jeg fået det til at kører nogenlunde. Dog stadig med lidt børnesygdomme, bla. grundet at tabellen er dynamisk (forskellig tabel fra mail til mail). Men jeg prøver stadig at optimere koden.

Så jeg prøvet at hente lidt information fra ovenstående :)
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

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