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

"Verzenden van .jpg en geselecteerde cel via een gmail-account

Status
Niet open voor verdere reacties.

HaukM

Gebruiker
Lid geworden
28 apr 2020
Berichten
21
Beste Forumleden.
M.b.v. vba codes is in een exelbestand een verjaardagskaart gemaakt met gegevens vanuit het werkblad Verjaardagslijst! . D.m.v. het dubbelklikken op een voornaam wordt de kaart gemaakt.
Graag zou ik d.m.v. een opdrachtknop op een derde werkblad “Verjaardagskaart verzenden”
- Mijn xxxx@gmail.com openen
- Hierin de gemaakte .jpg plaatsen als body of als bijlage (liefst als body)
- De geadresseerde invullen, gekopieerd vanuit een cel van het werkblad “Verjaardagslijst” Dit moet dan natuurlijk wel dezelfde persoon zijn voor wie de kaart is samengesteld.
Uiteraard heb ik eerst in alle berichten gezocht of zoiets al is gemaakt maar niet kunnen vinden. Wel de post ‘email naar outloo’k, maar daar kwam ik niet uit…..

Ik heb een voorbeeld bestandje als bijlage gevoegd.
Hopelijk kunnen jullie mij helpen.
Mvg
 
Bijlage

en de bijlage
 

Bijlagen

  • Verjaardagslijst versie 06052020.xlsm
    352,7 KB · Weergaven: 42
Plak de code in de juiste module.

Ga in de VB editor naar menu Extra → Verwijzingen (references) en vink...
"Microsoft CDO for Windows 2000 library" aan.

Enkele aanpassingen die je nog moet doen staat met groen aangegeven in de code.
Code:
Sub CommandButton1_Click()
s0 = ThisWorkbook.Path & "\Verjaarsdagskaart.jpg"
Range("A1:I23").CopyPicture
   With ChartObjects.Add(0, 0, 450, 400).Chart
    .Paste
    .Export s0, "jpg"
    .Parent.Delete
   End With
  
      With CreateObject("CDO.Message")
        .Configuration(cdoSendUsingMethod) = 2
        .Configuration(cdoSMTPServer) = "smtp.gmail.com"
        .Configuration(cdoSMTPServerPort) = 465
        .Configuration(cdoSMTPUseSSL) = True
        .Configuration(cdoSMTPAuthenticate) = 1
        .Configuration(cdoSendUserName) = "xxxxxxx"               'mailaddres van afzender op de XXXX
        .Configuration(cdoSendPassword) = "xxxxxxx"               ' Je GMail wactwoord op de plaats van de XXXX
        .Configuration.Fields.Update
        .addattachment s0
        .To = "xxxxxxx"                                           'mailadres aan.
        .From = "xxxxxxx"                                         'mailadres van
        .Subject = "Hierbij je verjaardagskaart"
        .TextBody = "Fijne verjaardag."
        .send
      End With
      
End Sub
 
Beste HSV en edmoor,

Allereerst dank voor jullie reactie.
Ik ben ermee aan de slag gegaan.

Op het tweede werkblad een nieuwe opdrachtknop geplaatst met vba.
Echter na bijna een hele dag proberen en aanpassen/wijzigen/zoeken.... is het mij niet
gelukt om het draaiende te krijgen. Krijg telkens foutmeldingen.

Ik heb op het werkblad "Verjaardagskaart" Cel K7 gemaakt waarvan de waarde moet worden ingevuld in de opdrachtknop "E-mail opstellen".


Ik heb in de vba van de opdrachtknop 2 nog e.e.a. in groene tekst geplaatst.
Heb de bijlage gevoegd.

Kan iemand mij verder helpen??

Mvg
HaukM
 

Bijlagen

  • Verjaardagslijst versie 07052020(4).xlsm
    358,1 KB · Weergaven: 37
Er is geen display bij CDO.

Het plaatje en K7 staan erin.
Code:
Sub CommandButton1_Click()
s0 = ThisWorkbook.Path & "\Verjaarsdagskaart.jpg"
Range("A1:I23").CopyPicture
   With ChartObjects.Add(0, 0, 450, 400).Chart
    .Paste
    .Export s0, "jpg"
    .Parent.Delete
   End With
  
      With CreateObject("CDO.Message")
        .Configuration(cdoSendUsingMethod) = 2
        .Configuration(cdoSMTPServer) = "smtp.gmail.com"
        .Configuration(cdoSMTPServerPort) = 465
        .Configuration(cdoSMTPUseSSL) = True
        .Configuration(cdoSMTPAuthenticate) = 1
        .Configuration(cdoSendUserName) = "xxxxx"
        .Configuration(cdoSendPassword) = "xxxxx"
        .Configuration.Fields.Update
        .To = Range("K7").Value
        .From = "xxxxxxxx"
        .Subject = "Voor jou"
        .HTMLBody = "<html><p>Niet zomaar een kaartje..</p><img src=" & s0 & "' height=450 width=400>"
        .send
      End With
      
End Sub
 
Foutmelding bij Command button 1

HSV (harry)

Dank voor je reactie.

Heb alles nu ingevuld. Ook de verwijzing voor "Microsoft CDO for Windows 2000 library" aangevinkt.

Als ik op de eerste knop druk , krijg ik een foutmelding bij het laatste item: .send
Als ik er met de cursor op ga staan dan verwijst deze naar K7 , is het emailadres waar de kaart naar toe moet worden gestuurd

Verder heb ik alles ingevuld. Mijn eigen gmailaccount, het wachtwoord en nogmaals bij From= mijn eigen gmailaccount

??????????

mvg
HaukkM
 
De foutcode die wordt getoond is:

Fout-2147220975 (800-40211) tijdens uitvoering:

Het bericht kan niet worden verzonden naar de SMTP-server.
De foutcode van het transport is 0x800-40217. Reactie van de server: not available
 
Fout gevonden.
en hersteld.

De email wordt verzonden. (Yes)

Hij komt echter aan zonder plaatje. Wel met een groot blanco vierkant.
Maar het kan zijn dat mijn iPhone dat niet laat zien.
Ben momenteel niet thuis.
Moet checken.


tot zover thanks.
HaukM
 
Laatst bewerkt:
Werkt op mijn Pc uitstekend.
Plaatje staat netjes in berichtvenster.
 
Controle venster

Yes, het werkt voortreffelijk.
Top !!!

Nu ben ik een beetje een "control-freak".
Als ik nu op de knop druk 'E-mail opstellen en verzenden'
is alles geregeld.
Echter zou ik graag nog zo'n control venster zien met:
'Weet u zeker dat u wilt verzenden'. Je ziet dat wel meer in programma's.
Of iets dergelijks.

Dat geeft mij toch een zekerder gevoel. Ik check de kaart nog even etc..

Ik heb al op het forum gezocht maar niet kunnen vinden.

Is dit mogelijk ?? Dan is het helemaal perfect.

met vriendelijke groet,
HaukM

zie bijlage (6) voor de laatste versie.
 

Bijlagen

  • Verjaardagslijst versie 07052020(6).xlsm
    357,1 KB · Weergaven: 33
Plaatsen op de plaats van ".send".
Code:
[COLOR=#ff0000]If MsgBox("verzenden?", vbYesNo + vbDefaultButton2 + vbInformation, "Maak je keuze") = vbYes Then[/COLOR] .send
 
Nieuwe kaart wordt overschreven

Beste Forumleden,


(HSV, (Harry) bedankt voor eerdere hulp, het controle venster werkt perfect)

Ik blijf nog met twee hobbels zitten.

De eerste is als volgt:
Gerrit en Nelly hebben hetzelfde e-mailadres. Ze zijn getrouwd.
Gerrit krijgt als eerste de kaart. Dat gaat goed.
Een week later stuur ik een kaart naar Nelly.
Als de kaart bij hun aankomt wijzigt de naam op de kaart in Gerrit.
Deze zat nog in hun inbox.
Dus de kaart met de naam Nelly wordt bij aankomst overschreven door de reeds gestuurde kaart aan Gerrit.

(de tweede hobbel kom ik later nog op terug. Dit heeft te maken dat de bijlage/kaart niet wordt meegezonden vanaf mijnlaptop maar wel vanaf mijn vaste computer ??)

Ik stuur de bijlage weer mee.
mvg,
HaukM
 

Bijlagen

  • Verjaardagslijst versie 07052020(11).xlsm
    355,6 KB · Weergaven: 31
Lijkt me stug dat de kaart die in de mailbox bij de ontvanger wijzigt als jij een nieuwe kaart stuurt.
 
overschrijven geadresseerde

Beste hsv / Harry,

Allereerst dank voor alle geboden hulp.

Het gebeurt echt.
Als ik een kaart stuur naar hetzelfde e-mailadres overschrijft de nieuwe kaart de reeds bestaande kaart in de inbox van de ontvanger.
Ik heb in de codes gekeken, mogelijk omdat er een keer wordt aangegeven 'delete parent'. Maar dat is natuurlijk om de
vorig gemaakte kaart te overschrijven bij het maken van een nieuwe.

Overigens is het niet zo'n probleem.
Alle overige functies werken perfect.

Ik heb nog wel een vraag en een probleem maar hiervan maak ik een nieuwe Post.
met vriendelijke groet,
HaukM
 
Misschien een betere optie voor de naam van de kaart:
Code:
s0 = ThisWorkbook.Path & "\Verjaarsdagskaart_" & Range("E6") & ".jpg"
 
Dat zal het wel zijn @edmoor, de andere s0 is statisch (steeds hetzelfde plaatje). ;)
In de veronderstelling dat @HaukM dit wel doorhad en eventueel zelf zou aanpassen.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan