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

Excel bestand mailen

Status
Niet open voor verdere reacties.

JHM Wetzelaer

Gebruiker
Lid geworden
14 jan 2005
Berichten
80
Geachte helpmij experts,

is het mogelijk een excel bestand d.m.v. een macro (die ik koppel aan een knop) rechtstreeks te mailen naar een contactpersoon die ik in mijn outlook heb staan met als onderwerp: Bellijst.

Ik denk dat dit via VBA moet, maar hiervan snap/weet ik maar de basis.

Bij voorbaat dank voor jullie hulp.
 
Helaas lukt het mij niet.
Ik heb het via macro opnemen geprobeerd en krijg uiteindelijk de volgende VBA-code en de bijlage in de mail:

Code:
Sub Bellijstversturen()
'
' Bellijstversturen2 Macro
' De macro is opgenomen op 13-1-2008 door Jo Wetzelaer.
'

'
    Sheets("Bellijst na vakantie").Select
    Sheets("Bellijst na vakantie").Copy After:=Sheets(7)
    Cells.Select
    Selection.Copy
    Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Bellijst na vakantie (2)").Select
    Application.CutCopyMode = False
    Sheets("Bellijst na vakantie (2)").Move
    Application.Dialogs(xlDialogSendMail).Show
End Sub

Maar de sheet Bellijst na vakantie (2) zou dus nu naar bijv. jo.wetzelaer@planet.nl moeten met onderwerp: Bellijst. Ik denk dat de voorlaatste regel aangepast moet worden, maar ik weet niet hoe.
Kan iemand hiernaar kijken s.v.p.
 
Laatst bewerkt door een moderator:
Ik ben al wat verder gevorderd, maar het is het nog niet helemaal. Het onderwerp wordt nu automatisch ingevuld (= Bellijst). De juiste sheet met de juiste opmaak wordt als bijlage toegevoegd, maar ik kan helaas nog niet in deze mail automatisch 10 adressen in AAN zetten. Suggesties?

Code:
Sub Bellijstversturen()
'
' Bellijstversturen2 Macro
' De macro is opgenomen op 13-1-2008 door Jo Wetzelaer.
'

'
    Sheets("Bellijst na vakantie").Select
    Sheets("Bellijst na vakantie").Copy After:=Sheets(7)
    Cells.Select
    Selection.Copy
    Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Bellijst na vakantie (2)").Select
    Application.CutCopyMode = False
    Sheets("Bellijst na vakantie (2)").Move
    ActiveSheet.Copy
Set wb = ActiveWorkbook
With wb
.SaveAs "Part of " & ThisWorkbook.Name _
& " " & strdate & ""
.SendMail "", _
"Bellijst"
.ChangeFileAccess xlReadOnly
Kill .FullName
.Close False
End With
Application.ScreenUpdating = True
End Sub
 
Laatst bewerkt door een moderator:
Code tags

Wim,

ben toch niet zo streng naar mij. Ik weet niet wat ik verkeerd doe/deed?
Wat zijn code tags? Wanneer gebruik je dit?
Ik zie dat er inderdaad iets is aangepast in mijn bericht.
Hoe doe je dit?
Als ik dit alles weet en dit voor jullie gemakkelijker is, zal ik het zeker een volgende keer gebruiken, want ik waardeer jullie hulp zeer.
 
Wim,

ben toch niet zo streng naar mij. Ik weet niet wat ik verkeerd doe/deed?
Wat zijn code tags? Wanneer gebruik je dit?
Ik zie dat er inderdaad iets is aangepast in mijn bericht.
Hoe doe je dit?
Als ik dit alles weet en dit voor jullie gemakkelijker is, zal ik het zeker een volgende keer gebruiken, want ik waardeer jullie hulp zeer.

Code tags plaats je door de tekst die je tussen code tags wilt plaatsen te selecteren, en dan op het knopje met het #-teken te drukken in je (geavanceerde) berichteditor.

Als je op het #-knopje gaat staan, komt er volgende tooltip te voorschijn:
"De tag
Code:
 rondom geselecteerde tekst plaatsen"

Zulke code tags komen de leesbaarheid ten goede. Je gebruikt ze bij VBA code of bij een excel formule, daardat dan de opmaak behouden blijft. Zoals insprongen e.d..
 
Laatst bewerkt:
Probeer eens met een range te werken, zet alle e-mailadressen op het eerste blad, Reporting so you will.

Verwijs dan in je macro naar het bereik. Zie hieronder:

Code:
   Dim cell As Range
   Dim strto1 As String
    On Error Resume Next
    For Each cell In ThisWorkbook.Sheets("Reporting") _
        .Range("L9:L10").Cells.SpecialCells(xlCellTypeConstants)
        If cell.Value Like "?*@?*.?*" Then
            strto1 = strto1 & cell.Value & ";"
        End If
    Next cell
    On Error GoTo 0
    If Len(strto1) > 0 Then strto1 = Left(strto1, Len(strto1) - 1)
 
    Dim strto2 As String
    On Error Resume Next
    For Each cell In ThisWorkbook.Sheets("Reporting") _
        .Range("M9:M13").Cells.SpecialCells(xlCellTypeConstants)
        If cell.Value Like "?*@?*.?*" Then
            strto2 = strto2 & cell.Value & ";"
        End If
    Next cell
    On Error GoTo 0
    If Len(strto2) > 0 Then strto2 = Left(strto2, Len(strto2) - 1)
 
    With Destwb
        .SaveAs TempFilePath & TempFileName & FileExtStr, FileFormat:=FileFormatNum
        On Error Resume Next
        With OutMail
            .To = strto1
            .CC = strto2
            .BCC = Sourcewb.Sheets("Reporting").Range("N9").Value
            .Subject = "SHEQ-Performance " & Sourcewb.Sheets("Reporting").Range("K9").Value & " " & Sourcewb.Sheets("Reporting").Range("E3").Value
            .Body = "L.S.," & vbNewLine & vbNewLine & _
            .Attachments.Add Destwb.FullName
            'You can add other files also like this
            '.Attachments.Add ("C:\test.txt")
            .Display   'or use .Send
        End With

Maak het jezelf makkelijk, eenmaal in het voorblad veranderen en je macro hoeft nooit meer gewijzigd te worden.


MMV
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan