Just nu i M3-nätverket
Gå till innehåll
Lansgren

Notifikation när slutdatum har nåtts?

Rekommendera Poster

Hej

 

Jag är ny på excel så om ni kan hjälpa mig tänk er att ni då pratar som med ett barn.

 

Jo, jag har letat runt på internet litegrann och har inte riktigt hittat någon lösning på mitt problem.

 

Jag vill att en notifikation av något slag ska dyka upp när ett slutdatum har nåtts utan att behöva öppna excel. Det är en fil jag inte behöver öppna så ofta helst inte alls förrän notifikationen kommer.

Notifikationen kan vara att excel automatiskt startar upp den dagen datumet nåtts när jag startar upp windows, typ kopplat till datorns interna klocka eller så, eller att ett mail skickas till mig.

Jag har nosat på någon variant där mejl kan skickas genom sharepoint eller så när någon gör en ändring i en cell och tänker mig att det kan vara en väg framåt. Typ  att man kopplar en cell till slutdatums-cellen som känner av när en förändring sker. Har en ikon i den cellen som blir gul när det närmar sig och röd när den passerat. Kanske det skulle gå att känna av?

Helst skulle jag vilja ha något enklare alternativ där jag inte behöver koppla in en massa andra program.

 

Någon som har ett tips?

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Testade lite med programmet AutoMate.

Tänker att man kör kontroll mot dagens datum i Excel, sätter en cell till värdet 1 om det finns ett slutdatum som matchar dagens datum.

Då behöver "snurran" bara kolla värdet i en enda cell.

I AutoMate ser det då ut så här:

 

image.thumb.png.914d2f4df589f6548b3c587fabad19c4.png

 

Där är åtgärden att poppa upp en dialogruta men det kan ju vara vad som helst, som att skicka e-post.

 

Någon ;) borde kunna skriva detta i ett VBA-skript som man kör med Task scheduler.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
1 timme sedan, skrev Mikael63:

Någon ;) borde kunna skriva detta i ett VBA-skript som man kör med Task scheduler.

Det skulle vara önskvärt, slippa ladda ner något externt program.

Men då kanske jag skulle sätta in mig lite i vba-språket, kanske ett stort äpple å bita i. Men såhär i coronatider har man ju lite tid över förstås, man kan ju testa :)

 

AutoMate, ska testa det först. är det det här programmet du pratar om?https://download.cnet.com/Automate/3000-2084_4-10000220.html

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Postad (redigerade)
1 timme sedan, skrev Lansgren:

AutoMate, ska testa det först. är det det här programmet du pratar om?https://download.cnet.com/Automate/3000-2084_4-10000220.html

Ja, verkar som att företaget nu heter, eller är uppköpta av, HelpSystems.

Jag har version 9, från Network Automation.

 

20200416200513.png

Redigerad av Mikael63
Ja, det är samma.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Så här kan man låta Automate, och inte Excel, kontrollera en radda datum:

image.thumb.png.ba5d878110c6ddebb67e0201708ac1fd.png

 

Vet inte varför man inte kan jämföra DataSet1.A direkt mot Date() 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Postad (redigerade)
1 timme sedan, skrev Mikael63:

Så här kan man låta Automate, och inte Excel, kontrollera en radda datum:

image.thumb.png.ba5d878110c6ddebb67e0201708ac1fd.png

 

Vet inte varför man inte kan jämföra DataSet1.A direkt mot Date() 

 

Påminner om macOs Automator. Borde finnas sådant inbyggt i vindoz

 

Det man får tänka på är att avbryta kontroll i schemaläggningen om filen redan är öppnad...

Redigerad av Phenomen

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Postad (redigerade)
16 timmar sedan, skrev Phenomen:

Det man får tänka på är att avbryta kontroll i schemaläggningen om filen redan är öppnad...

Varför?

 

Tillägg: Automate hanterar detta även om filen är öppnad och nej, den stänger inte filen då.

Redigerad av Mikael63

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Postad (redigerade)

Snillen spekulerar:

 

Jag kan inte Shemaläggaren (mikaels första förslag) Men det låter ju sunt. Det borde ju räcka att köra ett kontrollprogram/skript en gång per dygn:

https://docs.microsoft.com/sv-se/windows/win32/taskschd/task-scheduler-start-page

 

 

Citat

 

The Task Scheduler provides APIs in these forms.

  • Task Scheduler 2.0: interfaces and objects are provided for C++, and for scripting development, respectively.

 

 

Men vad menas med Scripting development? Kan man köra VBA-skript via Shemaläggaren? Behövs det inte en office "värd"? Annars måste man ju ha ett skript som kan läsa Exclfilen på något sätt.

Men sen verkar det ju som om du kan skicka Epost osv om du vill.

 

Det kanske är enklare att låta den öppna excel en gång om dagen.

Här har du ett exempel när någon startar en excelrapport en gång om dagen (fast du får söka efter Shemaläggaren). 

https://www.youtube.com/watch?v=_o9Qsqw6fvw

 

Filen du öppnar kan ju vara en excelfil med ett automatstartande VBA-makro som kollar din datumfil. Om ett (nytt) slutdatum är uppnått så öppnas filen och något slags flagga hissas. Annars stängs excel. Men, som Phenomen är inne på, du måste göra en massa kontroller så att du inte stänger excel av misstag osv. Dessutom måste du ha en logg så att du bara flaggar nya slutdatum.

 

En snyggare variant skulle nog vara att bygga ett skript i Excel som ber outlook peta in dina slutdatum som ärenden/möten eller liknande. Då är du inte beroende av att din dator är på. 

Å andra sidan är det rätt knepigt att göra bra Outlook VBA eftersom det saknas inspelare osv.

Redigerad av MH_

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
52 minuter sedan, skrev Mikael63:

Att lägga in en .vbs via Create Basic Task i Task Scheduler är ju inga problem.

Jaha (det där är ett svart kunskapshål för mig). 

 

Reservation: jag vet inte vad jag sysslar med. -i nedanstående exempel förblir excelfilen låst när skriptet har kört klart. Vänta med att köra med riktiga filer skarp tills någon mer kunnig har sagt hur man avslutar skriptet på rätt sätt. 

 

Men här har du ett exempel att utveckla

antar att

datumen står i Kolumn A

När du har åtgärdad en rad med slutdatum så markeras det i kolumn B på något sätt (ett kryss, en 1:, whatever)

Med hjälp av den här formeln:

=ANTAL.OMF(A:A;"<"&IDAG();B:B;"")

Så kollar du hur många datum som är passerade utan att ha åtgärdats (kryssats i B-kolumnen)

 

I mitt exempel heter filen och fliken:

C:\tmp\datumfilen.xlsx

På fliken "Blad1"

Då borde ett script bli någoning i stil med:

 

Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open ("C:\tmp\datumfilen.xlsx")
Set objWorksheet = objWorkbook.worksheets("Blad1")

iSlutdatumPasserade=objExcel.WorksheetFunction.CountIfs(objWorksheet.Range("A:A"), "<" & Date, objWorksheet.Range("B:B"), "")

if (iSlutdatumPasserade > 0) then
Wscript.Echo Cstr(iSlutdatumPasserade) & ":st slutdatum har passerats utan att ha markerats som åtgärdade"
End if

set objWorkbook=Nothing
set objWorksheet=Nothing
objExcel.Quit
WScript.Quit

Dvs du kopierar in ovanstående i en textfil och fixar filnamn osv. Spara filen och ändrar filändelsen till VBS.

När det funkar som du vill följer du de tidigare instruktionerna för schemaläggaren men länkar till ditt skript.

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Postad (redigerade)

Jag måste erkänna att jag inte har koll på task-scheduler i windows. Men det borde finnas möjlighet att schemalägga direkt efter uppstart. Alltså att man kör jobbet en gång direkt efter uppstart/inloggning...

Redigerad av Phenomen

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
16 minuter sedan, skrev Phenomen:

Alltså att man kör jobbet en gång direkt efter uppstart/inloggning...

Man bör ju trigga skriptet en gång varje nytt datum.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Om man tar en daglig körning och lägger tiden på morgonen så kan man väl kryssa i "kör aktiviteten så snart som möjligt om en schemalagd körning missas". Då borde den köras på morgonen eller när datorn startas.

 

Men sen vad det den låsta filen. Vad gör jag för fel?

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Postad (redigerade)
53 minuter sedan, skrev MH_:

Jaha (det där är ett svart kunskapshål för mig). 

 

Reservation: jag vet inte vad jag sysslar med. -i nedanstående exempel förblir excelfilen låst när skriptet har kört klart. Vänta med att köra med riktiga filer skarp tills någon mer kunnig har sagt hur man avslutar skriptet på rätt sätt. 

 

Men här har du ett exempel att utveckla

antar att

datumen står i Kolumn A

När du har åtgärdad en rad med slutdatum så markeras det i kolumn B på något sätt (ett kryss, en 1:, whatever)

Med hjälp av den här formeln:

=ANTAL.OMF(A:A;"<"&IDAG();B:B;"")

Så kollar du hur många datum som är passerade utan att ha åtgärdats (kryssats i B-kolumnen)

 

I mitt exempel heter filen och fliken:

C:\tmp\datumfilen.xlsx

På fliken "Blad1"

Då borde ett script bli någoning i stil med:

 


Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open ("C:\tmp\datumfilen.xlsx")
Set objWorksheet = objWorkbook.worksheets("Blad1")

iSlutdatumPasserade=objExcel.WorksheetFunction.CountIfs(objWorksheet.Range("A:A"), "<" & Date, objWorksheet.Range("B:B"), "")

if (iSlutdatumPasserade > 0) then
Wscript.Echo Cstr(iSlutdatumPasserade) & ":st slutdatum har passerats utan att ha markerats som åtgärdade"
End if

set objWorkbook=Nothing
set objWorksheet=Nothing
objExcel.Quit
WScript.Quit

Dvs du kopierar in ovanstående i en textfil och fixar filnamn osv. Spara filen och ändrar filändelsen till VBS.

När det funkar som du vill följer du de tidigare instruktionerna för schemaläggaren men länkar till ditt skript.

 

 

Jag skulle påstå att problemet är löst med detta 😃

Men det är ju inte min tråd - Ts får lämna synpunkter.

 

image.png.dfa67d6150d6d7d91af9b4286ad8d741.png

Redigerad av Mikael63
Fungerar alltså!

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
4 minuter sedan, skrev MH_:

Men sen vad det den låsta filen. Vad gör jag för fel?

Funkar fint här.

Filen går att ha öppen men skriptet tar inte redigerade värden förrän man sparat filen.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Postad (redigerade)

schampo först - Balsam sen

 

Man måste först "Quita" Excelobjectet och sedan förstöra det. Annars blir det kvar en instans som låser dokumentet

objExcel.Quit
set objExcel=Nothing

 

Dim objExcel, objWorkbook,  objWorksheet

Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open ("C:\tmp\datumfilen.xlsx")
Set objWorksheet = objWorkbook.worksheets("Blad1")

iSlutdatumPasserade=objExcel.WorksheetFunction. _
CountIfs(objWorksheet.Range("A:A"), "<" & Date, objWorksheet.Range("B:B"), "")

if (iSlutdatumPasserade > 0) then
	Wscript.Echo Cstr(iSlutdatumPasserade) & _
":st slutdatum har passerats utan att ha markerats som åtgärdade"
End if

objExcel.Quit
set objWorksheet=Nothing
set objWorkbook=Nothing
set objExcel=Nothing
WScript.Quit

Problemet med öppna och osparade filer tror jag att man får acceptera. Det är möjligt att man kan köra en kontroll efter öppna dokument och välja Get eller create, men då lämnar jag med varm hand över till folk som vet vad de sysslar med 😔

 

Baaah , kunde man inte ha hittat den här länken direkt:

https://www.softwaretestinghelp.com/vbscript-excel-tutorial-11/

Redigerad av MH_
radbrytningar

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
22 timmar sedan, skrev Mikael63:

 

Fasen vilket aktivt forum :)

 

Tack för alla svar. Ska sätta mig ner till veckan och se om jag lyckas skapa nått vettigt med hjälp av era tips.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

om datum är idag & filen inte är öppen

 - öppna

 

Ruby är finare än Visual Crazy :)

 

15 rader inkl tomma rader :)

gem install roo

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
På 2020-04-16 på 14:27, skrev Lansgren:

Jag vill att en notifikation av något slag ska dyka upp när ett slutdatum har nåtts utan att behöva öppna excel. Det är en fil jag inte behöver öppna så ofta helst inte alls förrän notifikationen kommer.

Det verkar handla om flera (många?) dagar mellan dessa slutdatum. Kan du inte helt enkelt använda en kalender i mobilen. Det tycks handla om att bli uppmärksammad på när något ska kollas eller göras i Excelfilen, den hanteringen verkar ändå behöva göras manuellt.


Det blir förstås extra moment för att skriva in i kalendern. Men handlar det om "sällantillfällen" kanske det är enklare än att "krångla till det" med script och annat.


Bra eller dåligt, i alla fall en tanke.
 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...