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

Automatische mail

Status
Niet open voor verdere reacties.
De knop "Reageer op bericht" wel.
 
Toch al iets geleerd vanavond, wacht nog even in spanning af of mijn 'ontleding' van de code klopt.
Ik heb inmiddels een boek aangeschaft inzake VBA in Excel, ga hier maar eens mee aan de slag.

proberen en proberen.
 
Helaas klopt de ontleding van 'Next cl" niet (=volgende cl van kolom H).
.Display = het scherm wat je te zien krijgt van Outlook om daarna handmatig te verzenden door op de knop te drukken.
.Send = direct verzenden zonder tussenkomst van het Outlook scherm.
 
Dus deze code maakt een knop aan op het scherm? Dat betekend dat ik Display moet vervangen voor Send. Want ik wil graag dat dit automatisch gaat.

Het bestand wordt ook elke ochtend geopend door een aantal medewerkers. Maar iemand anders is verantwoordelijk voor de keuring, dus wil ik niet handmatig versturen. Suggesties zijn welkom uiteraard.
 
Met .Send zal de mail inderdaad direct worden verstuurd.
 
En dan sluit Excel na de ingestelde tijd, kan dit ook zonder af te sluiten, want op deze manier kan een medewerker dus het bestand niet echt gebruiken, of ik moet een schaduw bestand maken met verborgen tabbladen. Had ik even niet aan gedacht zo snel.

Men moet de keuringsgegevens namelijk wel kunnen zien. Oei, ik heb dit niet goed doordacht:o
 
In de testfase kun je beter .Display gebruiken dan .Send, zodat je kunt zien hoe de mail eruit ziet.
Je bent kennelijk nieuwsgierig naar de werking van de code. Dat is mooi.
Ik raad aan de code eerst volledig te testen om te weten of het doet wat je wilt, en hem daarna stapsgewijs te analyseren.
 
Goede tip inderdaad. ik haal graag dingen uit elkaar om te zien hoe het werkt, daarna werkt het soms niet meer, haha
 
a

Het werkt (uiteraard)..

Dit zie ik in het mailbericht (met de knop verzenden erbij);

"Er is een datum die verloopt binnen nu en 7 dagen in cel ODM!$H$5
Er is een datum die verloopt binnen nu en 7 dagen in cel Registratie!$H$5
Er is een datum die verloopt binnen nu en 7 dagen in cel Stofzuigers!$H$5
Er is een datum die verloopt binnen nu en 7 dagen in cel Afhankelijk!$H$5
Er is een datum die verloopt binnen nu en 7 dagen in cel Onafhankelijk!$H$5
Er is een datum die verloopt binnen nu en 7 dagen in cel Watermanagement!$H$5
Er is een datum die verloopt binnen nu en 7 dagen in cel Diversen!$H$5
Er is een datum die verloopt binnen nu en 7 dagen in cel Blad1!$H$5 "

Code:
Private Sub Workbook_Open()
    Dim Sh
    Dim Cl As Range
    
    With CreateObject("Outlook.Application").CreateItem(0)
        .To = "abasbest@gmail.com"
        .Subject = "Certificaten"
        For Each Sh In Sheets
            For Each Cl In Sh.Columns(8).SpecialCells(2)
                If IsDate(Cl) And Val(Cl.Value) - 7 <= Date And Cl.Offset(, -5) <> "verzonden" Then
                    .Body = .Body & "Er is een datum die verloopt binnen nu en 7 dagen in cel " & Sh.Name & "!" & Cl.Address & vbLf
                    Cl.Offset(, -5) = "verzonden"
                End If
            Next Cl
        Next Sh
        .Display
    End With
End Sub

Nu zie ik alleen $H$5 niet terug in de code of staat dat hier;

Code:
Sh.Name & "!" & Cl.Address

Uitroepteken?
 
Laatst bewerkt:
Je kan je post ook aaanpassen en dus het haakje op de juiste plek zetten.
 
Oke,

Als het bestand 1 maal gecontroleerd is en je opent nog een keer gebeurd er niets, top. Echter wordt nu C5 vervangen door het woord "verzonden". dit zie ik terug in de code, alleen waar pas ik aan dat het in een lege cel komt. In C5 stond namelijk het type machine.

Is dat;

Code:
Cl.Offset(, -5) = "verzonden"

Ik wil dit graag in M5 hebben.
 
Dan haal je het - teken voor de 5 weg.
Staat er twee keer in.
 
Die vraag begrijp ik niet.
Misschien is het handig als je het Vba boek even hanteert.
 
Hallo,

De code werkt, hij doet precies wat het moet doen. Hij verstuurd de tekst zoals in de code aangegeven.

Maar,.. dit is eigenlijk niet helemaal wat ik wil. Graag zou ik het bereik in de mail terug zien.
In het voorbeeldje even een klein opzetje wat ik bedoel, dus A5 tmt E5 in de mail tekst opnemen.

Kan dit?Bekijk bijlage Certificaat vb1.xlsx

groet Richy.
 
Goedemorgen,

Het xlsx bestandje was alleen bedoelt als voorbeeldje voor het bereik, is dit een probleem?

Ik voeg nu even het bestandje toe zoals het moet worden (personeel staatje, de rest blijft zo.
Hierbij krijg ik de volgende melding, vreemd gisteren was kreeg ik deze melding niet.)

Wat gaat er verkeerd, en wat moet ik aanpassen hierin?

Code:
Private Sub Workbook_Open()
    Dim Sh
    Dim Cl As Range
    
    With CreateObject("Outlook.Application").CreateItem(0)
        .To = "abasbest@gmail.com"
        .Subject = "Certificaten"
        For Each Sh In Sheets
            For Each Cl In Sh.Columns(13).SpecialCells(2)
                If IsDate(Cl) And Val(Cl.Value) - 7 <= Date And Cl.Offset(, 2) <> "verzonden" Then
                    .Body = .Body & "Er verloopt een certificaat binnen nu en 7 dagen in " & Sh.Name & "!" & Cl.Address & vbLf Cl.Offset(, 2) = "verzonden"
                End If
            Next Cl
        Next Sh
        .Display
    End With
End Sub

Bekijk bijlage Certificaten beheer v2.1 kopie.xlsm

Graag advies.

Groet Richy.
 
En wat staat er zoal in Columns(13) op elk blad? Volgens mij zijn we nu weer ongeveer bij #3
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan