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

Opgelost Automatische notificatie mailtje versturen bij wijziging zonder bestand te openen

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

davylenders123

Gebruiker
Lid geworden
20 jun 2010
Berichten
902
Ik heb een Excel-bestand waar in kolom H een datum staat.
In kolom I staat de formule "=H5-VANDAAG()" om te zien hoeveel dagen verschil er zijn met vandaag.
In kolom J staat de formule "=ALS(I5<=0; "EXPIRED"; "RELEASED")" die in kolom I gaat zien of een cijfer 0 of lager bevat en zal dan hier EXPIRED3 weergeven en als het hoger dan 0 is zal het RELEASED weergeven.

Dit is een bestand dat niet vaak geopend zal worden.
Is er een mogelijkheid om een notificatie mail te versturen naar 1 of meerder mailadressen als in kolom J EXPIRED is komen te staan. En dit zonder dat het Excel-bestand geopend wordt door iemand.
Zodat we op de hoogte worden gebracht dat er een product verlopen is.
 

Bijlagen

Hoe komt die EXPIRED er in te staan als het bestand niet wordt geopend?
 
Dus je wilt een gesloten Excelbestand waarin dus niets verandert een mailtje laten versturen als er iets in het bestand verandert?
 
Nee, nu ik de berichten lees van jullie kan dit niet, als het niet geopend wordt, wordt het ook niet geupdate.
Sorry voor mijn domme vraag 😅

Kan dit wel als het bestand geopend wordt, dat er automatisch de check gebeurt en een mailtje wordt verstuurd indien nodig?
 
Ja, dat kan.
Middels een macro die je aanroept vanuit de Workbook_Open.
 
Kijk eens naar dit voorbeeldje:
 

Bijlagen

Ken je power automate?

Als je daarmee werkt kun je zowel regelen dat het excelbestand wordt geopend en dan ook een mail wordt gestuurd.
 
Kijk eens naar dit voorbeeldje:
Dit is de richting die ik een beetje zoek.
Het gaat enkel nog niet goed wanneer er geen EXPIRED voor komt in kolom j, wat zou kunnen.
Krijg ik 3 keer de foutmelding, kan het programma niet uitvoeren in de onderbreking modus.
Sluit ik en zorg dat er EXPIRED staat dan gaat het weer wel goed.

Voor u code is er een mail programma(outlook) nodig, dit hebben we niet op de pc waar we het op willen installeren. Heb ondertussen een code gevonden die kan mail zonder een mail programma nog te hebben. Maar krijg ze niet echt ingevoegd in die van u.

Voor de code van hieronder heb ik ook de "Microsoft CDO for Windows 2000 Library" aangezet zoals het moet voor deze code.

Code:
With New CDO.Message
Dim objMessage, objConfig, Fields
Set objMessage = CreateObject("CDO.Message")
Set objConfig = CreateObject("CDO.Configuration")
Set Fields = objConfig.Fields
With Fields
  .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
  .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.telenet.be"
  .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
  .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
  .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "abc@telenet.be"
  .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "heghJJ"
  '.Item("http://schemas.microsoft.com/cdo/configuration/sendtls") = True
  .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
  .Update
End With
Set objMessage.Configuration = objConfig
With objMessage
  .Subject = "Express zending"
  .From = "abc@telenet.be"
  .To = "fdnfgnfgn@fgng.be"
  .HTMLBody = "Er is product vervallen!"
End With
objMessage.Send
End With

Mailadressen en wachtwoord in de code zijn zijn geanonimiseerd

 
Ken je power automate?

Als je daarmee werkt kun je zowel regelen dat het excelbestand wordt geopend en dan ook een mail wordt gestuurd.
Ken ik nog niet, maar het gaat een pc zijn waar we bijna geen programma's op willen/mogen zetten, is een pc die ze via extern bureaublad moeten benaderen. Willen dat windows takenplanner 1 keer per dag het bestand opent via een bat bestand en dan een mail wordt uitgestuurd als aan de voorwaarde is voldaan in kolom J EXPIRED voorkomt.
 
Code iets aangepast, zo gaat het prima als er geen EXPIRED in staat.
De Outlook code heb ik vervangen door CDO, al zou ik dat niet meer gebruiken omdat steeds meer SMTP servers, uit oogpunt van beveiligng, dat niet meer accepteren. Ik vraag me af of Telenet dat nog wel doet.

En zet dit een een bat bestand in dezelfde map als het document.
Dat bat bestand kan je dan in de Windows Taakplanner gebruiken:
Code:
Echo Off
PushD %~dp0%
Set VBBESTAND=RUN
"vb bestand.xlsm"
PopD
 

Bijlagen

Laatst bewerkt:
Als ik alles correct heb ingesteld en via het bat bestand opstart gaat de xls open, maar krijg ik opnieuw 3 keer de foutmelding "kan de programma code niet uitvoeren in de onderbrekings modus.
En hij stopt bij de code can CDO bij "objMessage.Send"

Telenet ondersteunt het nog want een collega gebruikt dezelfde code en zijn mailtjes worden verstuurd.
 
Plaats dan dat document hier.

Of maak er eens dit van:
Code:
Sub CDONotificatie()
    Dim Schema As String
    Dim iMsg As Object
    Dim iConf As Object
    Dim Flds As Variant
    
    Set iConf = CreateObject("CDO.Configuration")
    Set iMsg = CreateObject("CDO.Message")

    iConf.Load -1
    Set Flds = iConf.Fields
    Schema = "http://schemas.microsoft.com/cdo/configuration/"
    With Flds
        .Item(Schema & "sendusing") = 2
        .Item(Schema & "smtpusessl") = 1
        .Item(Schema & "smtpauthenticate") = 1
        .Item(Schema & "smtpserver") = "smtp.telenet.be"
        .Item(Schema & "sendusername") = "abc@telenet.be"
        .Item(Schema & "sendpassword") = "heghJJ"
        .Item(Schema & "smtpserverport") = 465
        .Update
    End With

    With iMsg
        Set .Configuration = iConf
          .Subject = "Express zending"
          .From = "abc@telenet.be"
          .To = "fdnfgnfgn@fgng.be"
          .HTMLBody = "Er is product vervallen!"
          .Send
    End With

    Set iMsg = Nothing
    Set iConf = Nothing
    Set Flds = Nothing
End Sub
 
Laatst bewerkt:
Zie de code in #12.
 
Dat kan ik niet testen.
Hier werkt het met de SMTP server die ik gebruik prima.
Maar niet met CDO, want dat accepteert die server niet.
 
Laatst bewerkt:
Edmoor bedankt weeral voor je snelle hulp in deze, ga volgende week met collega er eens naar kijken
 
Prima.
Ik hoor het dan graag.
 
Heb net nog eens geprobeerd en met u laatste code werkt het nu wel.
Enkel kreeg ik elke keer nog de vraag of het bericht opgeslagen moest worden, hier heb ik 'ThisWorkbook.Save' voor toegevoegd en gaat dit ook goed.

Zit nog met 1 ding vast, wil nu de naam van het bestand aanpassen naar "PNL 1502 Annex 4 v1.0 - Inventory management spreadsheet.xlsm" maar dan werkt mijn bat bestand niet meer. Heb in de bat file de bestandsnaam aangepast naar "PNL 1502 Annex 4 v1.0 - Inventory management spreadsheet.xlsm" maar dan werkt het nog niet.
Wat doe ik nog verkeerd?
 
Wat werkt er dan niet meer?
Geen probleem hier.
Heb je dat wel zo in het .bat bestand staan?
Code:
Echo Off
PushD %~dp0%
Set VBBESTAND=RUN
"PNL 1502 Annex 4 v1.0 - Inventory management spreadsheet.xlsm"
PopD
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan