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

een enkele sheet mailen

Status
Niet open voor verdere reacties.

ewh

Gebruiker
Lid geworden
7 jul 2010
Berichten
273
Code:
Private Sub CommandButton1_Click()
    Dim Bestand As String
    Dim OutApp As Object
    Dim OutMail As Object
    
    Bestand = Environ("TEMP") & "\" & ActiveSheet.Name & ".pdf"
    ActiveSheet.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=Bestand
    
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    With OutMail
        .to = "iemand@bedrijf.nl"
        .CC = ""
        .BCC = ""
        .Subject = "Dit is het onderwerp"
        .Body = "Bij deze het bestand"
        .Attachments.Add Bestand
        .Send
    End With
    Kill Bestand
End Sub

deze code heb ik gevonden op deze site , maar krijg hem niet aan de aan de praat voor mijn probleem.

in een excel workbook zit een sheet genaamd "aanvraag formulier"
dit voorfumlier willen we als een excel bestand mailen

de bijlage die met de mail verstuurd wordt heet
Code:
naam = "aanvraag formulier" & " - " & ActiveSheet.Range("C16").Value & ".xls"

wie kan helpen ?
 
Misschien moet je wat in het blauw staat veranderen in 'sheets("aanvraag formulier")'; dat kan ik niet zien hier vandaan.

Code:
Private Sub CommandButton1_Click()
    Dim Bestand As String
    Dim OutApp As Object
    Dim OutMail As Object
    dim naam as string
    
Bestand = Environ("TEMP") & "\" & ActiveSheet.Name & ".pdf"
    ActiveSheet.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    Filename:=Bestand
    
Sheets("aanvraag formulier").Copy
 activeworkbook.saveAs Environ("TEMP") & "\aanvraag formulier" & " - " & [COLOR="#0000FF"]ActiveSheet.[/COLOR]Range("C16").Value & ".xls"
  naam = activeworkbook.fullname
    
Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    With OutMail
        .to = "iemand@bedrijf.nl"
        .CC = ""
        .BCC = ""
        .Subject = "Dit is het onderwerp"
        .Body = "Bij deze het bestand"
        .Attachments.Add Bestand
        .attachments.add naam
        .Send
    End With
    Kill Bestand
    kill nm
End Sub
 
Doet het eens zo. Ik hou wel .xlsx (51) aan en niet .xls (56):
Code:
Private Sub CommandButton1_Click()
    Dim Bestand As String
    Dim Blad As String
    Dim OutApp As Object
    Dim OutMail As Object
    
    Blad = "Aanvraag formulier"
    Bestand = Environ("temp") & "\" & Blad & " - " & ActiveSheet.Range("C16").Value & ".xlsx"
    
    Sheets(Blad).Copy
    With ActiveWorkbook
        .SaveAs Bestand, FileFormat:=51
        .Close
    End With
    
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    With OutMail
        .To = "iemand@bedrijf.nl"
        .CC = ""
        .BCC = ""
        .Subject = "Dit is het onderwerp"
        .Body = "Bij deze het bestand"
        .Attachments.Add Bestand
        .Display [COLOR="#008000"]'Of .Send[/COLOR]
    End With
    Kill Bestand
End Sub
 
Laatst bewerkt:
edmoor , bijna zijn we er

als ik de code activeer krijgt ik van excel een meld tekst
".VB projekt " met een keuze JA of Nee
Ja moet het altijd wezen maar de meldtekst wil ik liever niet zien

JA = op slaan als een werkmap zonder marco's

kunnen we deze boodschap afvangen? en altijd op ja zetten?

het mail adres staat bij mij op een tabblad "mail" en in cel "C16" staat het mail adres, ik dacht het zo op te lossen
Code:
 .To = Sheets("aanvraag formulier").Cells("C16").Select
hier heb ik het mailadres gezet op het tab blad "mail" maar dat werkt niet

Code:
.Subject = "aanvraag in te huren persoon"
hier zou ik graag een naam bij willen hebben die staat op "C18" van het te verzenden formulier
 
Probleem 1:
Dan heb je code achter dat formulier staan, zet dat ergens anders neer.
Of zet Application.DisplayAlerts op False.

Probleem 2:
Wijzig Cells in Range en .Select in .Value

Probleem 3:
Je zou nu aan de rest van de code toch simpel moeten kunnen zien hoe dat moet.
 
Laatst bewerkt:
EDMOOR,

ik jou code gebruikt om te mailen en dat werkt bij mij prima ( excel 2003) maar na testen blijkt dat in excel 2010 er een foutmelding op treed en in excel 2016 ook
zie het rode deel

Code:
Bestand = [COLOR="#FF0000"]Environ[/COLOR]("temp") & "\" & Blad & " - " & ActiveSheet.Range("C16").Value & ".xlsx"

nu weet ik dat je een instelling kan wijzigen in deze excel versies ( menu extra -verwijzigen en dan een vinkje aanzetten). maar de meeste gebruikers mogen/kunnen dit niet doen

is er een andere oplossing ,misschien?
 
Dan is er iets anders mis dan die regel want Environ werkt al van voor Office 2000 en is nooit gewijzigd.
Je kan dus beter je document plaatsen.
 
een proef bestandje gemaakt ( zie bijlage ) Bekijk bijlage voorbeeldbestand formulier verzenden.xls

dus weer getest en .... werkt in alle versies
nu denk ik dat het komt omdat ik met een commandbutton alle data en de textboxen en comboboxen weg schrijf naar de sheet "aanvraag formulier"
nadat dat is gedaan roep ik mailen2 aan ( jou code . Dus ik denk dat er misschien een verwijzing of geheugen dingetje is ??

Code:
Range("C10").Value = UserForm1.TextBox1.Value
Range("E30").Value = UserForm1.ComboBox56.Value
Range("C14").Value = UserForm1.ComboBox57.Value
ActiveSheet.Shapes("text box 2").Select
        Selection.Characters.Text = UserForm1.TextBox16.Value
Range("C7").Value = UserForm1.Label72.Caption
beveiligingaan       [COLOR="#FF0000"] ( hier zet ik de beveiliging aan op blad "aanvraag formulier" )[/COLOR]
mailen2                [COLOR="#FF0000"]( de code van EDMOOR )[/COLOR]
schoonmaken       [COLOR="#FF0000"] ( hier maken we het blad "aanvraag formulier" weer schoon )[/COLOR]
 userform_leegmaken  [COLOR="#FF0000"] ( en deze spreekt voor zich )[/COLOR]
End Sub
 
Dat document bevat geen code.
 
Ben bang van niet ;)
 
Kaarsrecht! ;)

Daar gaat het fout op: Sheets("aanvraag formulier").Copy
Dat komt omdat achter de naam van het werkblad een spatie staat.
 
Laatst bewerkt:
HTML:
Dat komt omdat achter de naam van het werkblad een spatie staat.

ik begrijp je niet, of bedoel je dat de sheet "aanvraag formulier " geen spatie mag bevatten?
 
Naast dat het totaal overbodig is mag het wel, maar dan moet je dat ook in je de code gebruiken.
Dus niet:
Sheets("aanvraag formulier").Copy

Maar:
Sheets("aanvraag formulier ").Copy

Of spatie achter de werkbladnaam verwijderen.
 
echt niet gezien de spatie op het werkblad hoort er natuurlijk niet . Gelijk in het origineel gekeken maar daar stond het wel goed

ik ga nog eens testen, zal morgen worden
 
het bestandje werkt nu prima ook in de excel versies 2010 en 2016
maar als ik hem in combinatie gebruik met een private sub ( commandbutton ) dan gaat het mis
Code:
Range("C10").Value = UserForm1.TextBox1.Value
Range("E30").Value = UserForm1.ComboBox56.Value
Range("C14").Value = UserForm1.ComboBox57.Value
ActiveSheet.Shapes("text box 2").Select
        Selection.Characters.Text = UserForm1.TextBox16.Value
Range("C7").Value = UserForm1.Label72.Caption
beveiligingaan        ( hier zet ik de beveiliging aan op blad "aanvraag formulier" )
mailen2                ( de code van EDMOOR )
schoonmaken        ( hier maken we het blad "aanvraag formulier" weer schoon )
 userform_leegmaken   ( en deze spreekt voor zich )
End Sub

bij de volgende regel
Code:
Bestand = Environ("temp") & "\" & Blad & " - " & ActiveSheet.Range("C16").Value & ".xlsx"

zou het komen omdat ik de sub mailen2 aan roep van uit de private sub ???
 
Aan "dan gaat het mis" hebben we niks.
Vertel wat er mis gaat en als je een foutmelding krijgt welke dat dan precies is.
 
de boodschap =:

een Compileerfout:
kan het project of Bibliotheek niet vinden

Code:
Bestand = [COLOR="#FF0000"]Environ[/COLOR]("temp") & "\" & Blad & " - " & ActiveSheet.Range("C16").Value & ".xlsx"
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan