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

Invulvelden + VBA

Status
Niet open voor verdere reacties.

Corsair

Gebruiker
Lid geworden
12 mrt 2019
Berichten
13
Goedendag,

Ik ben niet zo heel erg bekend met Excel, en had een paar vragen daarover.

Ben bezig met een formulier te ontwerpen, zie bijgevoegd voorbeeld en nu wou ik een paar dingen voor elkaar krijgen.

1. Alle gele velden (later heel licht grijs) zijn in te vullen velden, deze moeten na het invullen weer gewoon wit worden.

2. Links bovenin (Save TEM) moet het bestand als zowel een Excelsheet (xlsl) als een PDF opgeslagen worden in een zelf
te kiezen directory onder de naam ingevuld in samengevoegde cel DE12. Tevens moet daarvoor TEM staan.

3. Send e-mail, met een druk op de knop moet outlook geopend worden en moet de e-mail verstuurd worden naar de personen
waarvan de e-mail adressen in een lijst staan (deze moet gewijzigd kunnen worden).

Ik weet niet of ik met 2 en 3 het onmogelijke vraag...

Alvast bedankt!
 

Bijlagen

  • Voorbeeld.xlsx
    17,8 KB · Weergaven: 43
Voor vraag 3.
p.s. Voor al jouw vragen zijn op Helpmij legio voorbeelden te vinden, gewoon even zoeken.
 

Bijlagen

  • mail voorbeeld.xlsm
    27,3 KB · Weergaven: 50
Vraag 1 en 2
 

Bijlagen

  • Voorbeeld-1.xlsm
    32,3 KB · Weergaven: 50
hoi Philiep,
Dit kan ook, maar het lukt me niet om het bestand open te houden.
Heb je hier misschien een oplossing voor.
Code:
Sub Opslaan()
With Application.FileDialog(msoFileDialogFolderPicker)
    .InitialFileName = ThisWorkbook.Path & "\"
    If .Show Then
       Sheets("Blad1").ExportAsFixedFormat 0, .SelectedItems(1) & "\" & "TEM" & " " & Range("D12") & " " & Range("D13")
       ActiveWorkbook.SaveAs Filename:=.SelectedItems(1) & "\ " & "TEM" & Range("D12") & " " & Range("D13"), FileFormat:=52
'      [COLOR="#008000"] ThisWorkbook.Close savechanges:=False[/COLOR]
    End If
End With

End Sub
 
Beste Ad,

Dank je wel. Er zullen best wat voorbeelden zijn maar ik kon niet precies vinden wat ik zocht. Misschien wat langer en dieper zoeken maar dacht als ik het gelijk vraag met mijn eigen voorbeeld dan werkt het misschien sneller.

Betreffende je oplossing :

Sub SendMail()
Dim OutApp As Object
Dim OutMail As Object

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

With Sheets("Blad1")
filenamePDF = Environ("temp") & "" & "nummer " & .Range("D12") & " " & .Range("D13") & ".pdf"
.Range("B1:J54").ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=filenamePDF

StrTo = .Range("H24")
StrSubject = "test nummer:" & " " & .Range("D12")
strbody = "Geachte Heer/Mevr." & " " & Range("D13").Value & vbCrLf & vbCrLf & _
"Als bijlage ontvangt U hierbij de TESTMAIL." & vbCrLf & vbCrLf & _
"Met vriendelijke groet," & vbCrLf & vbCrLf & _
"jouw naam"
End With

With OutMail
.To = StrTo
.Subject = StrSubject
.Body = strbody
.Attachments.Add filenamePDF
.Display ' .Send voor direct verzenden

End With

Kill filenamePDF 'verwijderen van het tijdelijk aangemaakte bestand*
Set OutMail = Nothing
Set OutApp = Nothing
End Sub

Nogmaals ik ben niet heel erg bekend met VBA. Als ik nu op verzend druk, opent netjes outlook, met een PDF bestandje en een standaard tekst welke aan te passen is (daar ben ik nu mee aan het spelen).
Alvast bedankt hiervoor!

Nu zie ik dat in de tab DATA de e-mail adressen in kolom A en B 2 t/m 15 staan geschreven maar in het echte bestand is dat al bezet (data validation).

Die nummers in kolom A kunnen weggelaten worden, het gaat alleen om de e-mail adressen, deze komen in kolom B24 tot en met B50 alleen kan ik dit (voor zover ik zie niet aanpassen)?
Even om zelf te leren :
Als ik regel StrTo = .Range("H24"), verander in StrTo = .Range("=Sheet2!$B$24:$B$50) zit ik dan goed?

"jou naam", is het ook mogelijk automatisch de handtekening vanuit outlook te plakken?
 
Als ik regel StrTo = .Range("H24"), verander in StrTo = .Range("=Sheet2!$B$24:$B$50) zit ik dan goed?
JE kunt gewoon de gegevensvalidatie voor cel H24 en D12 aanpassen.
 
JE kunt gewoon de gegevensvalidatie voor cel H24 en D12 aanpassen.

Ik heb nu cel D9 aangepast met gegevens validatie list met source =DATA!$B$25:$B$36 en H24 veranderd in D9.

Doet het niet, hij pakt alleen de e-mail die ik dan selecteer dmv de keuze lijst.

Doe ik iets fout?
 
niet zo elegant maar het werkt wel.
Code:
With Sheets("DATA")
    StrTo = .[B24 &";"& B25 &";"& B26  &";"& B27 &";"& B28 &";"& B29 &";"& B30] [COLOR="#008000"]'etc. etc.[/COLOR]
End With
 
niet zo elegant maar het werkt wel.
Code:
With Sheets("DATA")
    StrTo = .[B24 &";"& B25 &";"& B26  &";"& B27 &";"& B28 &";"& B29 &";"& B30] [COLOR="#008000"]'etc. etc.[/COLOR]
End With

Beste Albert,

Nogmaals ik ben zelf een beetje aan het spelen en niet heel erg bekend met VBA.

Als ik nu de twee VBA codes in het orginele excelsheet plaats, en save als xlsm bestand dan krijg ik bij het drukken op de knoppen een printer melding??

Als ik dan op debug druk voor het saven:

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sFolderPathForSave & "\ " & "TEM" & " " & Range("D12").Value _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False

Voor mailen :

.Range("B1:J54").ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=filenamePDF
 
Code:
.To = Join(Application.Transpose(Sheets("data").Cells(1).CurrentRegion.Columns(2).Offset(1)), ";")
 
Incl. je handtekening.
Code:
Sub SendMail()
Dim Handtekening As String, strbody As String, strsubject As String, filenamePDF As String, StrTo As String
    With Sheets("Blad1")
         filenamePDF = Environ("temp") & "\" & "nummer " & .Range("D12") & "  " & .Range("D13") & ".pdf"
        .Range("B1:J54").ExportAsFixedFormat _
            Type:=xlTypePDF, _
            Filename:=filenamePDF
    
        'StrTo = .Range("H24")
        strsubject = "test nummer:" & "  " & .Range("D12")
        strbody = "Geachte Heer/Mevr." & " " & Range("D13").Value & "<br>" & "<br>" & _
               "Als bijlage ontvangt U hierbij de TESTMAIL." & "<br>" & "<br>" & _
               "Met vriendelijke groet," & "<br>" & "<br>"
    End With
    
    With CreateObject("Outlook.Application").CreateItem(0)
        .display
        Handtekening = .htmlbody
[COLOR=#ff0000]        .To = Join(Application.Transpose(Sheets("data").Cells(1).CurrentRegion.Columns(2).Offset(1)), ";")[/COLOR]
        .Subject = strsubject
        .htmlbody = "<br>" & strbody & Handtekening
        .Attachments.Add filenamePDF
        .display        ' .Send voor direct verzenden
    End With
Kill filenamePDF 'verwijderen van het tijdelijk aangemaakte bestand*
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan