Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: Verzending excel in pdf + EXTRA PDF-BIJLAGE  (gelezen 20123 keer)

0 leden en 2 gasten bekijken dit topic.

Offline jannacy

  • Lid
  • *
  • Berichten: 65
  • Geslacht: Vrouw
  • Oplossing.be
Re: Verzending excel in pdf + EXTRA PDF-BIJLAGE
« Reactie #30 Gepost op: 12 december 2020, 11:40:04 »
Hallo,
In mijn voorbeeld werd in Thinderbird ook alles correct klaargezet.  Dat ging goed !!  :thumbsup:

Met uw nieuw voorstel. 
Ik heb een validatie met ja nee aangemaakt (gegevensvalidatie) in cel P32 maar ...
2 vraagjes:

1. Waar moet ik dit stuk code dan precies zetten?

2. En jij zegt dan:
Email_Thinderbird   'met opsomming username(s)Hoe som ik deze dan op?  Gewoon erachter zetten?

Mvg, Janna

[Office 2019]

Offline cow18

  • Ervaren lid
  • ***
  • Berichten: 340
  • Geslacht: Man
  • Oplossing.be
Re: Verzending excel in pdf + EXTRA PDF-BIJLAGE
« Reactie #31 Gepost op: 12 december 2020, 12:41:54 »
dat was ter vervanging van dit stukje en de commentaar van die vroegere versie was blijven hangen
   Select Case Application.UserName
      Case "Username Thunderbirdgebruiker", "BSA", "nog iemand anders username": Email_Thunderbird 'opsomming van usernames die Thunderbird gebruiken
      Case Else: Email_Outlook 'al de anderen
   End Select
dus ipv. te kijken naar de username kijk je nu gewoon naar een bepaalde cel.
'k had direct een beetje duidelijker moeten communiceren.

Offline jannacy

  • Lid
  • *
  • Berichten: 65
  • Geslacht: Vrouw
  • Oplossing.be
Re: Verzending excel in pdf + EXTRA PDF-BIJLAGE
« Reactie #32 Gepost op: 12 december 2020, 21:23:58 »
wauw cOw18  _/-\o_  1000x dank!
Je bent een echte kenner en hebt me super goed geholpen.

Ik wil het bestand graag nog delen met de rest van de wereld.  Uiteraard is dit een basisdocument maar het helpt je in ieder geval goed op weg.

Hopelijk kunnen anderen hier ook gebruik van maken!
Mvg, Janna

[Office 2019]

Offline cow18

  • Ervaren lid
  • ***
  • Berichten: 340
  • Geslacht: Man
  • Oplossing.be
Re: Verzending excel in pdf + EXTRA PDF-BIJLAGE
« Reactie #33 Gepost op: 12 december 2020, 23:15:33 »
als je, in die 2 laatste regels die enkel (rode) aanhalingstekens weghaalt, dan verstuurt Thunderbird je email zonder verdere tussenkomst.
Dat is hetzelfde als de ".display" - regel in die Outlook-macro te vervangen door ".Send"
Maar meestal wil je vermoedelijk nog een keer alles controleren, dus ik vermeld het enkel voor de volledigheid.
Citaat
'SendKeys "^{ENTER}", True'voorlopig enkel als commentaar, als je echt wil verzenden mag die enkele aanhalingsteken voorin weg
  'Application.Wait Now + TimeValue("00:00:05")

Offline jannacy

  • Lid
  • *
  • Berichten: 65
  • Geslacht: Vrouw
  • Oplossing.be
Re: Verzending excel in pdf + EXTRA PDF-BIJLAGE
« Reactie #34 Gepost op: 20 december 2020, 14:14:37 »
Hallo,

ik dacht dat ik dit werkend kon afsluiten maar ben er nog achter gekomen dat het contract niet goed meegenomen wordt als bijlage bij Thunderbird.
Het staat er wel in maar je kan het niet openen als het klaarstaat in de mail en het wordt ook niet mee verzonden.
In Outlook gaat dit wel.
Zou iemand dit nog eens willen bekijken?
Dit was de laatste code:
Option Compare Text
Private Adres, CC, BCC, Onderwerp, Handtekening, Ondergetekende, vAttachments
__________________________________________________________________________________________________
Sub OpslaanVerzenden()
                'variabelen
   Plaats = "C:\JVC\Contracten\"                 'AANPASSEN indien nodig (standaard: "C:\JVC\Contracten\")
   Naam = Range("Q1").Value
   Adres = Range("P10").Value
   CC = Range("R14").Value
   BCC = Range("R15").Value
   Onderwerp = "Contract"
   Ondergetekende = Range("P25").Value
   Handtekening = "Beste," & vbLf _
                  & vbLf _
                  & vbLf _
                  & "Met vriendelijke groeten," & vbLf _
                                  'Nagaan of het bestand reeds bestaat, zoniet opslaan en verder
   If Dir(Plaats & Naam & ".pdf") <> "" Then
      MsgBox "Het contract - " & Naam & ".pdf - bestaat reeds. Vul een ander contractnummer in of wis het bestaande contract"
      Exit Sub
   Else
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Plaats & Naam & ".pdf", Quality:=xlQualityStandard, _
                                      IncludeDocProperties:=False, IgnorePrintAreas:=False, From:=1, To:=1, OpenAfterPublish:=False
   End If
                                     'bestand toevoegen aan mail met naam vermeld in cel Q1 .... verder:
   bestand = ThisWorkbook.Path & "\" & Range("Q1").Value & ".pdf"   '= variabele
   hhr = "C:\JVC\HHR.pdf"                        'AANPASSEN indien nodig
   vAttachments = Array(bestand, hhr)
   ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=bestand

If Range("P32").Value <> "Ja" Then            'in O32 staat er "mailen met Outlook" en in P32 via validatie kan je kiezen tussen ja en nee
      Email_Thunderbird
   Else
      Email_Outlook
   End If
   Kill (bestand)
End Sub

Sub Email_Outlook()
   Set OutApp = CreateObject("Outlook.Application")
   Set OutMail = OutApp.CreateItem(0)
   With OutMail
      .To = Adres
      .CC = CC
      .BCC = BCC
      .Subject = Onderwerp
      .Body = Handtekening & vbNewLine & Ondergetekende

 If VarType(vAttachments) > 0 Then
         If IsArray(vAttachments) = False Then
            .Attachments.Add vAttachments
         Else
            Dim sBestand As String
            For Each vatt In vAttachments
               sBestand = CStr(vatt)
               
                .Attachments.Add sBestand
            Next
         End If
      End If
       .Display
   End With
End Sub
[/quote]

[quote]Sub Email_Thunderbird()
   thund = "C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe " & _
           "-compose " & """" & _
           "to='" & Adres & "'," & _
           "cc='" & CC & "'," & _
           "bcc='" & BCC & "'," & _
           "subject='" & Onderwerp & "'," & _
           "body='" & Handtekening & vbNewLine & Ondergetekende & "'"
   If VarType(vAttachments) > 0 Then
      If IsArray(vAttachments) = False Then
         thund = thund & ",attachment='" & vAttachments & "',"
      Else
         thund = thund & ",attachment='" & Join(vAttachments, ",") & "',"
      End If
   End If
   Call Shell(thund, vbNormalFocus)
   Application.Wait Now + TimeValue("00:00:02")
   'SendKeys "^{ENTER}", True     'voorlopig enkel als commentaar, als je echt wil verzenden mag die enkele aanhalingsteken voorin weg
   'Application.Wait Now + TimeValue("00:00:05")
End Sub
Mvg, Janna

[Office 2019]

Offline cow18

  • Ervaren lid
  • ***
  • Berichten: 340
  • Geslacht: Man
  • Oplossing.be
Re: Verzending excel in pdf + EXTRA PDF-BIJLAGE
« Reactie #35 Gepost op: 20 december 2020, 18:57:20 »
verwijder anders eens die ene laatste regel en toevoegen van die DoEvents.
Verder iets aangepast met je bestand, je exporteerde 2 keer, nu is die 2e weg
Citaat
Sub OpslaanVerzenden()

''variabelen
   Plaats = "C:\JVC\Contracten\"                 ''AANPASSEN indien nodig (standaard: "C:\JVC\Contracten\")
   If Application.UserName = "BSA" Then Plaats = ThisWorkbook.Path & "\"   '---> in mijn geval deze

   Naam = Range("Q1").Value
   Adres = Range("P10").Value
   CC = Range("R14").Value
   BCC = Range("R15").Value
   Onderwerp = "Contract"
   Ondergetekende = Range("P25").Value
   Handtekening = "Beste," & vbLf _
                  & vbLf _
                  & vbLf _
                  & "Met vriendelijke groeten," & vbLf _


   ''Nagaan of het bestand reeds bestaat, zoniet opslaan en verder
  bestand = ThisWorkbook.Path & "\" & Range("Q1").Value & ".pdf"   ''= variabele
   If Dir(bestand) <> "" Then
      MsgBox "Het contract - " & Naam & ".pdf - bestaat reeds. Vul een ander contractnummer in of wis het bestaande contract"
      Exit Sub
   Else
      ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=bestand, Quality:=xlQualityStandard, _
                                      IncludeDocProperties:=False, IgnorePrintAreas:=False, From:=1, To:=1, OpenAfterPublish:=False
   End If

   ''bestand toevoegen aan mail met naam vermeld in cel Q1
verder:

   hhr = "C:\JVC\HHR.pdf"                        ''AANPASSEN indien nodig
   If Application.UserName = "BSA" Then hhr = ThisWorkbook.Path & "\blabla2.pdf"   '---> in mijn geval deze

   vAttachments = Array(bestand, hhr)

   If Range("P32").Value <> "Ja" Then            'in O32 staat er "mailen met Outlook" en in P32 via validatie kan je kiezen tussen ja en nee
      Email_Thunderbird
   Else
      Email_Outlook
 kill bestand  '<---- enkel voor outlook
   End If

   DoEvents
   'Kill (bestand)

End Sub
ik gok dat het bestand al verdwenen is van de harde schijf nog voor Thunderbird die kon verzenden.
Die DoEvents maakt dat 1 en ander terug in pas komt met elkaar.
Als dit al lukt, dan mag je die Kill opnieuw activeren door dat enkel aanhalingsteken voorin weg te halen.
Werkt het nu nog ?
Zoniet, dan moet je die kill niet meer doen en later die pdf op een andere manier verwijderen.
Bij mij lukt het toch.
Voorlopig heb ik wel ook een kill staan in het stuk voor outlook, dus pas op 2 keer killen gaat niet

Offline jannacy

  • Lid
  • *
  • Berichten: 65
  • Geslacht: Vrouw
  • Oplossing.be
Re: Verzending excel in pdf + EXTRA PDF-BIJLAGE
« Reactie #36 Gepost op: 20 december 2020, 19:14:56 »
Hallo Koe,

weeral heel erg bedankt om hiermee verder aan de slag te gaan.
Het werkt  :thumbsup: maar dan wel ZONDER de Kill-regel

Waar slaan deze bestanden zich dan op? 
Mvg, Janna

[Office 2019]

Offline cow18

  • Ervaren lid
  • ***
  • Berichten: 340
  • Geslacht: Man
  • Oplossing.be
Re: Verzending excel in pdf + EXTRA PDF-BIJLAGE
« Reactie #37 Gepost op: 20 december 2020, 19:27:09 »
zolang jouw username onder windows geen "BSA" is op de plaats waar ze vroeger stonden, dus  Plaats = "C:\JVC\Contracten\"

Offline jannacy

  • Lid
  • *
  • Berichten: 65
  • Geslacht: Vrouw
  • Oplossing.be
Re: Verzending excel in pdf + EXTRA PDF-BIJLAGE
« Reactie #38 Gepost op: 20 december 2020, 19:40:38 »
Ok, prima, daar moeten ze ook opgeslagen worden en blijven.
Dus dat is goed.

Mvg, Janna

[Office 2019]

Offline jannacy

  • Lid
  • *
  • Berichten: 65
  • Geslacht: Vrouw
  • Oplossing.be
Re: Verzending excel in pdf + EXTRA PDF-BIJLAGE
« Reactie #39 Gepost op: 20 december 2020, 20:03:34 »
Koe
Er is nog iets.  Ik zie dat het contract zich opslaat op JVC/Contracten
maar ook heel tijdelijk in JVC

Als ik outlook gebruik dan verdwijnt deze daar
Als ik thinderbird gebruik blijft deze daar steken.

Ik had ook gezien dat ik zonder deze regel hetzelfde resultaat heb
   If Application.UserName = "Username" Then hhr = ThisWorkbook.Path & "\hhr.pdf"   '---> in mijn geval deze
Mvg, Janna

[Office 2019]

Offline jannacy

  • Lid
  • *
  • Berichten: 65
  • Geslacht: Vrouw
  • Oplossing.be
Re: Verzending excel in pdf + EXTRA PDF-BIJLAGE
« Reactie #40 Gepost op: 20 december 2020, 21:25:18 »
Niet meer zoeken (als je dit al deed  ;))
Ik heb het gevonden  O-O

Hier de werkende code *** deel 1 ***
Sub OpslaanVerzenden()

''variabelen
   Plaats = "C:\JVC\Contracten\"                 ''AANPASSEN indien nodig (standaard: "C:\JVC\Contracten\")
   If Application.UserName = "USERNAME" Then Plaats = ThisWorkbook.Path & "\Contracten\"   '---> vul je eigen username hier in

   Naam = Range("Q1").Value
   Adres = Range("P10").Value
   CC = Range("R14").Value
   BCC = Range("R15").Value
   Onderwerp = "Contract"
   Ondergetekende = Range("P25").Value
   Handtekening = "Beste," & vbLf _
                  & vbLf _
                  & vbLf _
                  & "Met vriendelijke groeten," & vbLf _


   ''Nagaan of het bestand reeds bestaat, zoniet opslaan en verder
  bestand = ThisWorkbook.Path & "\Contracten\" & Range("Q1").Value & ".pdf"   ''= variabele
   If Dir(bestand) <> "" Then
      MsgBox "Het contract - " & Naam & ".pdf - bestaat reeds. Vul een ander contractnummer in of wis het bestaande contract"
      Exit Sub
   Else
      ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=bestand, Quality:=xlQualityStandard, _
                                      IncludeDocProperties:=False, IgnorePrintAreas:=False, From:=1, To:=1, OpenAfterPublish:=False
   End If

   ''bestand toevoegen aan mail met naam vermeld in cel Q1
verder:

   hhr = "C:\JVC\HHR.pdf"                        ''AANPASSEN indien nodig
   If Application.UserName = "USERNAME" Then hhr = ThisWorkbook.Path & "\hhr.pdf"   '---> vul je eigen username hier in

   vAttachments = Array(bestand, hhr)

   If Range("P32").Value <> "Ja" Then            'in O32 staat er "mailen met Outlook" en in P32 via validatie kan je kiezen tussen ja en nee
      Email_Thunderbird
   Else
      Email_Outlook
 Kill bestand  '<---- enkel voor outlook
   End If

   DoEvents
   'Kill (bestand)
End Sub



Je eigen username kan je vinden met de volgende code te gebruiken in module als macro
Sub GetUserName()
MsgBox Application.UserName
Select Case Application.UserName
End Select
End Sub
Mvg, Janna

[Office 2019]

Offline cow18

  • Ervaren lid
  • ***
  • Berichten: 340
  • Geslacht: Man
  • Oplossing.be
Re: Verzending excel in pdf + EXTRA PDF-BIJLAGE
« Reactie #41 Gepost op: 20 december 2020, 21:33:11 »
die  2 regels beginnen met  If Application.UserName = "BSA" dienden om op een snelle manier de macro op mijn computer te testen. Eigenlijk zou je ze beter verwijderen uit je definitieve bestand. Ze hebben niets te maken met Outlook vs Thunderbird.
Nadien zal er altijd in de subdirectory van "Plaats" geschreven worden. Ik kan moeilijk voor iedere vraag een eigen subdirectory aanmaken.

Outlook en Excel zijn van dezelfde familie, zodat ze al het ware te synchroniseren zijn met die "DoEvents"
Je zou anders onderstaande een keer kunnen uittesten onderin de code van Thunderbird.
Daar verander je die wachttijd naar bijvoorbeeld 3, 5 of 10 sec.
Zo geef je Thunderbird meer tijd om de mail aan te maken. Die 2 sec lukte bij mij wel (met die verstande en in een ander bestand stuurde ik maar 1 bijlage). Dus zal het net iets langer duren tegen dat je terug verder kan gaan. Wat de tijd wordt, dat zal je proefondervindelijk moeten uitproberen ofwel gok je direct safe met 10.
Citaat
  Call Shell(thund, vbNormalFocus)              'kies 1 van deze opties, niet allebei
   'Call Shell(thund, windowstyle)

   Application.Wait Now + TimeValue("00:00:10")
   'SendKeys "^{ENTER}", True 'voorlopig enkel als commentaar, als je echt wil verzenden mag die enkele aanhalingsteken voorin weg
   'Application.Wait Now + TimeValue("00:00:15")

werkt dat tot tevredenheid dan mag de vroegere situatie blijven staan. Dan is je tijdelijk bestand, zowel met Outlook (zonder wachttijd) als met Thunderbird (wachttijd op bv. 10 sec), na uivoeren van de macro weer verdwenen.
Citaat
   If Range("P32").Value <> "Ja" Then            'in O32 staat er "mailen met Outlook" en in P32 via validatie kan je kiezen tussen ja en nee
      Email_Thunderbird
   Else
      Email_Outlook
   End If

   DoEvents
  Kill (bestand)

Onze reacties kruisten elkaar !
Het komt eigenlijk hier op neer dat het bestand al gekillt werd voor Thunderbird het kon inlezen, enkele sec langer wachten is de oplossing.

Offline jannacy

  • Lid
  • *
  • Berichten: 65
  • Geslacht: Vrouw
  • Oplossing.be
Re: Verzending excel in pdf + EXTRA PDF-BIJLAGE
« Reactie #42 Gepost op: 22 december 2020, 09:38:38 »
Hallo Koe,
jij bent toch echt een krak in deze wereld.  \o/
Het werkt  :thumbsup:

Ik heb enkel de regel Kill (bestand) eruit gehaald omdat het voor mij de bedoeling is dat het programma deze originele contracten ook opslaat.  Ik zag ze even verschijnen en ook weer verdwijnen van zodra de mail klaar werd gezet met het bestand in bijlage.

Dus alles werkt nu.  Hieronder de code:
Option Compare Text
Private Adres, CC, BCC, Onderwerp, Handtekening, Ondergetekende, vAttachments

Sub OpslaanVerzenden()

''variabelen
   Plaats = "C:\JVC\Contracten\"                 ''AANPASSEN indien nodig (standaard: "C:\JVC\Contracten\")
   Naam = Range("Q1").Value
   Adres = Range("P10").Value
   CC = Range("R14").Value
   BCC = Range("R15").Value
   Onderwerp = "Contract"
   Ondergetekende = Range("P25").Value
   Handtekening = "Beste," & vbLf _
                  & vbLf _
                  & vbLf _
                  & "Met vriendelijke groeten," & vbLf _


   ''Nagaan of het bestand reeds bestaat, zoniet opslaan en verder
  bestand = ThisWorkbook.Path & "\Contracten\" & Range("Q1").Value & ".pdf"   ''= variabele
   If Dir(bestand) <> "" Then
      MsgBox "Het contract - " & Naam & ".pdf - bestaat reeds. Vul een ander contractnummer in of wis het bestaande contract"
      Exit Sub
   Else
      ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=bestand, Quality:=xlQualityStandard, _
                                      IncludeDocProperties:=False, IgnorePrintAreas:=False, From:=1, To:=1, OpenAfterPublish:=False
   End If

   ''bestand toevoegen aan mail met naam vermeld in cel Q1 en bijlage hhr
verder:

   hhr = "C:\JVC\HHR.pdf"                        ''AANPASSEN indien nodig

   vAttachments = Array(bestand, hhr)

   If Range("P32").Value <> "Ja" Then            'in O32 staat er "mailen met Outlook" en in P32 via validatie kan je kiezen tussen ja en nee
      Email_Thunderbird
   Else
      Email_Outlook
   End If

   DoEvents
   'Kill (bestand)      '--> Als je wil dat het bestand verwijderd wordt.  In mijn geval niet
End Sub

Sub Email_Outlook()
   Set OutApp = CreateObject("Outlook.Application")
   Set OutMail = OutApp.CreateItem(0)
   With OutMail
      .To = Adres
      .CC = CC
      .BCC = BCC
      .Subject = Onderwerp
      .Body = Handtekening & vbNewLine & Ondergetekende

 If VarType(vAttachments) > 0 Then
         If IsArray(vAttachments) = False Then
            .Attachments.Add vAttachments
         Else
            Dim sBestand As String
            For Each vatt In vAttachments
               sBestand = CStr(vatt)
               
                .Attachments.Add sBestand
            Next
         End If
      End If
 
      .Display   '--> Indien je onmiddellijk wil verzenden, vervangen door .Send.  Ik kies ervoor om dit niet te doen
   End With
End Sub
Sub Email_Thunderbird()
   thund = "C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe " & _
           "-compose " & """" & _
           "to='" & Adres & "'," & _
           "cc='" & CC & "'," & _
           "bcc='" & BCC & "'," & _
           "subject='" & Onderwerp & "'," & _
           "body='" & Handtekening & vbNewLine & Ondergetekende & "'"

   If VarType(vAttachments) > 0 Then
      If IsArray(vAttachments) = False Then
         thund = thund & ",attachment='" & vAttachments & "',"
      Else
         thund = thund & ",attachment='" & Join(vAttachments, ",") & "',"
      End If
   End If

   Call Shell(thund, vbNormalFocus) ''kies 1 van deze opties, niet allebei
   'Call Shell(thund, windowstyle)
   
   Application.Wait Now + TimeValue("00:00:10")
   'SendKeys "^{ENTER}", True                     '--> Als je onmiddellijk wil verzenden mag het aanhalingsteken voorin weg.  Ik kies om dit niet te doen omdat ik eerst nog wil nakijken
   'Application.Wait Now + TimeValue("00:00:15")  '--> idem hier om onmiddellijk te verzenden
End Sub


Tenzij je nog iets wil toevoegen zal ik ook het werkend bestand nog in een bijlage toevoegen.
Mvg, Janna

[Office 2019]

Offline cow18

  • Ervaren lid
  • ***
  • Berichten: 340
  • Geslacht: Man
  • Oplossing.be
Re: Verzending excel in pdf + EXTRA PDF-BIJLAGE
« Reactie #43 Gepost op: 22 december 2020, 13:34:57 »
Voor mij is het ok, succes en prettige dagen.

Offline jannacy

  • Lid
  • *
  • Berichten: 65
  • Geslacht: Vrouw
  • Oplossing.be
Re: Verzending excel in pdf + EXTRA PDF-BIJLAGE
« Reactie #44 Gepost op: 22 december 2020, 16:03:06 »
ok, bedankt aan allen die hieraan geholpen hebben en vooral aan Koe
Aan allen fijne bubbel-feestdagen !

Bijgevoegd vind je het volledige bestand
Mvg, Janna

[Office 2019]

 


www.combell.com