• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

signature toevoegen aan e-mail vanuit vba excel

Status
Niet open voor verdere reacties.

BjornCl

Gebruiker
Lid geworden
9 jan 2013
Berichten
30
Hallo,

ik heb een stukje code gebruikt van Ron De Bruin voor het versturen van een e-mail vanuit excel.
Ik heb de code wat herschreven zodat er nu een loop is waarbij de variabelen worden opgeladen vanuit een excel sheet. Dat werkt perfect, met 1 klein probleem :

Ik had het eerst opgemeekt zonder "body tekst" en zolang dit blanco was voegde Outlook automatisch mijn signature toe van het bedrijf. Maar van zodra ik er een body tekst toevoegde was mijn signature verdwenen.

Iemand een idee hoe ik mijn default signature kan meegeven, zonder dat ik die in html moet gaan opmaken in de code?

ik heb een korte versie van de code meegestuurd moest dit nodig zijn.
Alvast bedankt voor jullie hulp.

Mvg,
Bjorn

Code:
Sub mailing()


'Working in Office 2000-2013
    
    Dim OutApp As Object
    Dim OutMail As Object
    
    Dim cell_to As String       'e-mail van de "to"
    Dim cell_cc As String       'e-mail van de "cc"
    Dim cctr As String          'costcenter
    Dim att As String           'attachment
    
    Dim Period As String
    
    
    'LOOP AANMAAK E-MAIL
    
    
    Application.ScreenUpdating = False
    Set OutApp = CreateObject("Outlook.Application")
        
    For N = 1 To Lines
          

        cell_to = Selection.Offset(N, 10).Value
        cell_cc = Selection.Offset(N, 14).Value
        cctr = Selection.Offset(N, 1).Value
        att = Selection.Offset(N, 6).Value
                
        Set OutMail = OutApp.CreateItem(0)

            On Error Resume Next

            With OutMail
                .To = cell_to
                .cc = cell_cc
                .subject = "Expenses " & Period & " - " & cctr
                .Attachments.Add (att)
                
                .Body = "Dear Sir, Madam" 
                                            
                .Display
                .Save
                
                
            End With
    Next
    

End Sub
 
Laatst bewerkt door een moderator:
Lijkt mij NIET te kunnen zonder in de macro die handtekening te laten reconstrueren.
Als bewijs: Als je in Excel, Word etc. via Bestand -> Verzenden naar -> E-mailontvanger (alle varianten, maakt niet uit als bijlage, ter revisie etc.) dan komt je handtekening NIET (automatisch) in je mail, ook al heb je in Outlook aangegeven dat bij het maken van nieuwe mail handtekening <X> moet worden ingevoegd.

Tijs.
 
@rebmog:
Lijkt me niet een antwoord op:
Iemand een idee hoe ik mijn default signature kan meegeven, zonder dat ik die in html moet gaan opmaken in de code?

Tijs.
 
Dag Tijs,
ik zal dus blijkbaar mijn handtekening mee moeten opnemen in de VBA code. Dan heb ik een volgend probleem, ik ben geen html expert (verre van zelfs). De handtekening is bedrijfsgebonden en heeft dus een specifieke opmaak (kleur, bold, lettergrootte, afbeelding,...) Is er ergens eens site, of manier waarop ik dit makkelijk kan omzetten? (of eventueel uit Outlook kan onmiddellijk uithalen?)

Mvg,
Bjorn
 
Tijs, of iemand anders

kan ik eventueel iets doen met het html bestand waarin de signature is opgelagen op de C-drive?
Ik denk aan iets in de aarde dat ik een variabele aanmaak die bestaat uit de inhoud van dit html bestand??? (ben geen vba expert, dus misschien kan dit totaal niet...)

gr.
bjorn
 
Ik zou dat ook niet weten, maar ik zou vermoeden dat het (bij wijze van spreken) 1-op-1 overkopieren van de html-code van een verzonden mailtje (en/of de htm versie van de handtekening) wat zou moeten opleveren.
Nogmaals: Dat is een gok, en kan het niet verifiëren, maar Google wellicht wel.

Tijs.
 
Probeer dit eens
Code:
Sub Spaarie()
body = "Geachte heer/mevrouw, <br><br>" & _
          "Voeg hier je tekst toe."
    With CreateObject("Outlook.Application").CreateItem(0)
        .Display
        .To = ""
        .Subject = ""
        .HTMLBody = body & "<br>" & .HTMLBody
        .Display
    End With
End Sub
Als er nog iets in de body aangepast moet worden zoals lettertype, grootte, etc. moet je even aangeven, want dit moet HTML geprogrammeerd worden...
 
@spaarie: En dit lost het probleem met de handtekening op? Mijn inschatting is van niet.

Tijs.
 
Ik zou zeggen probeer het eens...

Standaard ingestelde handtekening wordt nu geladen in de body...
 
@spaarie: Ik zou zeggen: Lees de discussiedraad eens goed door. Die code die jij gebruikt staat ook (in een variant) in de startposting.

Tijs.
 
Tijs ik lees toch echt dit
Maar van zodra ik er een body tekst toevoegde was mijn signature verdwenen
Dit was van toepassing met de code in de startpost.
Mijn code lost dit op...
 
spaarie's oplossing werkt inderdaad, tenzij je gebruikt maakt van 'n Exchange server. Bij het aanmaken van een mailobject staat de default signature gewoon in de HTMLBody. Zodra je daar dan iets anders inzet wordt de HTMLBody natuurlijk overschreven.
 
Allen,
bedankt voor de input, maar ik ben er nog niet....

ik heb Spaarie zijn code gebruikt : zie onderstaand :

Code:
With OutMail
                        .To = cell_to
                        .cc = cell_cc
                        .subject = "Expenses " & Period & " - " & cctr
                        .Attachments.Add (att)
                        
                        .Body = "test" & "<br>" & .HTMLBody
                        .Display
                        .Save
                    End With

Het resultaat is het volgende in de mail : 

test<br><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> 
<HTML> 
<HEAD> 
<META NAME="Generator" CONTENT="MS Exchange Server version 14.02.5004.000"> 
<TITLE></TITLE> 
</HEAD> 
<BODY> 
<!-- Converted from text/plain format --> 
</BODY> 
</HTML>

wat doe ik verkeerd? Ik weet echt niets van HTML (excuses)

gr.
Bjorn
 
Laatst bewerkt door een moderator:
CONTENT="MS Exchange Server version 14.02.5004.000"
Zoals ik al zei - werkt niet met 'n Exchange server. Daar zul je toch echt het html bestand in de signatures/handtekeningen folder moeten inleven en er onder moeten plakken
 
Kijk in je Outlook onder 'Bestand > Opties > E-mail > Handtekeningen' of hier handtekeningen staan.
Zo ja, klik onder in de editor (doe verder niks) en klik op opslaan. Zorg ervoor dat deze staat ingesteld als handtekening voor nieuwe berichten.

Zo niet, dan kan je de handtekening (zoals in je andere topic) vanuit Word kopieren en plakken in de editor en opslaan. Hij maakt er zelf HTML van.
(Nadeel is dat Outlook tevens een RTF bestand maakt die redelijk groot is qua kB's).

Succes!
 
ron de bruin!!!
Code:
[SIZE=1]Sub Mail_Outlook_With_Signature_Html_2()
' Don't forget to copy the function GetBoiler in the module.
' Working in Office 2000-2013
    Dim OutApp As Object
    Dim OutMail As Object
    Dim strbody As String
    Dim SigString As String
    Dim Signature As String

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

    strbody = "<H3><B>Dear Customer Ron de Bruin</B></H3>" & _
              "Please visit this website to download the new version.<br>" & _
              "Let me know if you have problems.<br>" & _
              "<A HREF=""http://www.rondebruin.nl/tips.htm"">Ron's Excel Page</A>" & _
              "<br><br><B>Thank you</B>"

    '*** een van beide regels uitschakelen ***
    
    'Change only Mysig.htm to the name of your signature
    SigString = Environ("appdata") & _
                "\Microsoft\Signatures\Mysig.htm"

    'Change only Mysig.htm to the name of your signature
    'de map signatures heet soms handtekeningen
    SigString = Environ("appdata") & _
                "\Microsoft\Handtekeningen\Mysig.htm"

    If Dir(SigString) <> "" Then
        Signature = GetBoiler(SigString)
    Else
        Signature = ""
    End If

    On Error Resume Next

    With OutMail
        .To = "ron@debruin.nl"
        .CC = ""
        .BCC = ""
        .Subject = "This is the Subject line"
        .HTMLBody = strbody & "<br>" & Signature
        .Display
    End With

    On Error GoTo 0
    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub


Function GetBoiler(ByVal sFile As String) As String
'Dick Kusleika
    Dim fso As Object
    Dim ts As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2)
    GetBoiler = ts.readall
    ts.Close
End Function[/SIZE]

mysig.htm afgeleid van ron de bruin
Code:
[SIZE=1]<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=Generator content="Microsoft Word 12 (filtered)">
</head>
<body lang=NL>
<img src="E:\Users\user name\Pictures\test.jpg" alt="test.jpg"> 
<div class=WordSection1>
<p class=MsoNormal>Alphamax</p>
</div>
</body>
</html>[/SIZE]
 
Laatst bewerkt:
Het probleem is opgelost! De handtekening inclusief pictures staat er!
Ik heb de code van Ron De Bruin gebruikt die spaarie had aangegeven in zijn bericht van 21/05 13u57. Alleen had ik niet de eerste ".display" niet overgenomen! Als ik er die aan toevoeg dan werkt het perfect

Aan iedereen die input geleverd heeft, hartelijk bedankt. En spaarie: idd het werkt he ! ! !

tot een volgende
Bjorn
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan