• 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.

Macro aanpassen voor bestand dat al klaar staat.

Status
Niet open voor verdere reacties.

vrouw

Terugkerende gebruiker
Lid geworden
27 mrt 2010
Berichten
1.520
Ik wil na veel testen met ook andere scripts om te mailen toch onderstaande code gaan gebruiken.
Het enige dat erin aangepast moet worden is dat het bestand al klaarstaat in de C:\Temp\bestand.xls

Ik weet maar niet wat ik in deze (toch wel lange script) moet aanpassen dat ie tijdens dit script dus zelf niets hoeft op te slaan etc. maar slechts de bijlage toe moet voegen.
=> Belangrijk blijft wel dat de ontvanger uit Cel A2 en A3 worden gehaald!


Code:
Option Explicit
' code voor het mailen van het actieve werkblad naar het adres uit cel A2 en A3
' met bijlage als naam uit cel A1
Const EMBED_ATTACHMENT As Long = 1454
Const stPath As String = "C:\Temp"  'deze constante kun je zelf aanpassen (pad moet wel bestaan)
Const stSubject As String = "nieuwe planning"  'Onderwerp van de E-mail

Const vaMsg As Variant = "Het wekelijks planningsoverzicht."

Const vaCopyTo As Variant = "" 'copy mailen naar: "adres"


 
Sub Send_Active_Sheet()
  Dim stFileName As String     'tekst uit cel A1 aktief werkblad wordt bestandsnaam
  Dim vaRecipients As Variant
  Dim noSession As Object
  Dim noDatabase As Object
  Dim noDocument As Object
  Dim noEmbedObject As Object
  Dim noAttachment As Object
  Dim stAttachment As String
  Dim stEmailAddress1 As String  'tekst uit cel A2 aktief werkblad is het e-mailadres
  Dim stEmailAddress2 As String  'tekst uit cel A3 aktief werkblad is het e-mailadres
  'Kopieer het actieve werkblad naar een nieuw tijdelijk werkboek met de naam uit cel A1.
  With ActiveSheet
    If Range("A1") <> "" Then
        .Copy
        stFileName = .Range("A1").Value       'hier wordt bestandsnaam uit cel A1 gehaald
    Else
        Exit Sub   'Als er niets in A1 staat dan niets doen
    End If
  End With
 ' het pad (stPath) wordt bepaalt in het Constant declaratie gedeelte
  stAttachment = stPath & "\" & stFileName & ".xls"
 
 Application.DisplayAlerts = False
 
  'Saven en afsluiten tijdelijk werkboek (bijlage).
  With ActiveWorkbook
    .SaveAs stAttachment
    .Close
  End With
  
  'haal het e-mailadres uit cel A2 van het actieve sheet op.
  With ActiveSheet
    If Range("A2") <> "" Then
        stEmailAddress1 = .Range("A2").Value   'hier wordt het e-mail adres uil cel A2 gehaald.
    Else
        Exit Sub   'Als er niets in A2 staat dan niets doen
    End If
    If Range("A3") <> "" Then
        stEmailAddress2 = .Range("A3").Value   'hier wordt het e-mail adres uil cel A3 gehaald.
    End If
  End With
  
  'Maak de lijst van ontvangers.  "naar(uit cel A2 actief werkblad)", "naar (uit A3 actief werkblad"
  vaRecipients = VBA.Array(stEmailAddress1, stEmailAddress2) '("eerste ontvanger" , "tweede ontvanger")
  
  'Bepaal de Lotus Notes COM's Objecten.
  Set noSession = CreateObject("Notes.NotesSession")
  Set noDatabase = noSession.GETDATABASE("", "")
 
  'Als Lotus Notes niet open is open dan het mail-gedeelte ervan.
  If noDatabase.IsOpen = False Then noDatabase.OPENMAIL
 
  'Maak de e-mail en de bijlage.
  Set noDocument = noDatabase.CreateDocument
  Set noAttachment = noDocument.CreateRichTextItem("stAttachment")
  Set noEmbedObject = noAttachment.EmbedObject(EMBED_ATTACHMENT, "", stAttachment)
 
  'Voeg de gegevens toe aan de gemaakte e-mail eigenschappen.
  With noDocument
    .Form = "Memo"
    .SendTo = vaRecipients
    .CopyTo = vaCopyTo
    .Subject = stSubject
    .Body = vaMsg
    .SaveMessageOnSend = True
    .PostedDate = Now()
    .Send 0, vaRecipients
  End With
 
 
 
  'Verwijder het tijdelijk werkboek.
 Kill stAttachment
 
  'Verwijder objecten uit het geheugen.
  Set noEmbedObject = Nothing
  Set noAttachment = Nothing
  Set noDocument = Nothing
  Set noDatabase = Nothing
  Set noSession = Nothing
 
  MsgBox "Het planningsoverzicht is gemaild.   ", vbInformation
End Sub
 
Excuus, die was me ontschoten. andere had ik wel al afgesloten en bedankt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan