Avatar billede koppelgaard Praktikant
02. august 2011 - 11:38 Der er 9 kommentarer og
1 løsning

Detektere hver gang en excelfil åbnes

Er det muligt at detektere hver gang en excelfil åbnes og lukkes uden at have kode i den fil som skal detekteres?

Dvs. ikke nogen 'Private Sub Workbook_Open()' eller 'Private Sub Workbook_BeforeClose(Cancel As Boolean)' i den fil som skal detekteres.

Det skal selvfølgelig bruges kode i den fil som overvåger og detektere de andre filer.
Avatar billede claes57 Ekspert
02. august 2011 - 13:01 #1
når excel åbner en fil bliver der også lavet en 'arbejdsfil' ~$filnavn.xlsx
med et watchfolder program kan du se, om denne fil dannes, og så køre en optælling eller andet.
http://www.filetransit.com/files.php?name=Watch_Folder
der er nok et, der kan bruger der - omend de ser lidt gamle ud.
Avatar billede koppelgaard Praktikant
02. august 2011 - 13:49 #2
Tak for svar :-)
Jeg kikker på det - lidt senere..
Avatar billede koppelgaard Praktikant
02. august 2011 - 20:50 #3
Hej igen.
Jeg havde håbet på at der fantes noget indbygget i VBA.
Jeg er ikke meget for at skulle til at betale. Det er blot en lille detajle i et program som kunne være rart at kunne udføre.

Men ellers tak for svaret.
Avatar billede claes57 Ekspert
02. august 2011 - 21:04 #4
vba - så starter det jo med excel, og det ville du ikke.
Har du en ledig pc, der har adgang til samme mappe, så kan den jo køre et loop i vb-script med
dir
hvis ny ~$ fil, så gem tid og filnavn i en logfil
pause fx 5 sek
slutloop

det kan du lave gratis.
Avatar billede koppelgaard Praktikant
03. august 2011 - 07:12 #5
Hej igen.
Jeg er ked af at jeg har udtrykt mig uklart, selvom jeg gjorde mig umage med formuleringen. Jeg VIL have VBA til at overvåge. Jeg vil bare ikke være afhængig af at skulle skrive kode ind i samtlige excel-filer jeg arbejder med.
Jeg vil have en stump kode f.eks. liggende i Person.xlsx til at overvåge alle andre filer.
Mener jeg har set et eller andet sted, at man kan det.


Men din ide med at kikke efter ~$ fil er god. Den kan jeg  bruge.
C# har en filewatcher som man kan sætte til at overvåge et bestemt bibliotek. C# kan også give besked til Excel.
Men det er dog lidt af en omvej.

Så problemet er løst som følge af din ide.
Sender du et svar?
Avatar billede claes57 Ekspert
03. august 2011 - 08:51 #6
via en makro i fx person.xlsx, så tjekker du kun den lokale installation (ikke netværk/flerbruger?)
Hvis der er flere excel'er, der har adgang til mappen, så skal du nok omkring C#-kode.
Men held og lykke med projektet - jeg stod af ved C...
Avatar billede koppelgaard Praktikant
03. august 2011 - 09:19 #7
Jeg tror jeg har fundet noget:

http://www.mrexcel.com/forum/showthread.php?t=75570

Her står bl.a.

SPØRGSMÅL:
Does anyone know if it is possible to have a macro running in the background to monitor what workbooks are being opened and rejecting and accepting them based on whether the workbook name meets certain criteria?

SVAR:
Well one alternative would be to use an Application Level event routine. Have a look at Chip's site here for some more info:

http://www.cpearson.com/excel/AppEvent.htm


As an example, add a new class module called "EventClass" and add the following code to it:
Code:
Public WithEvents App As Application

Private Sub App_WorkbookOpen(ByVal Wb As Excel.Workbook)
    MsgBox "Opened : " & Wb.Name
End Sub
and in the Workbook_Open event add the following:
Code:
Dim AppClass As New EventClass

Private Sub Workbook_Open()
    Set AppClass.App = Application
End Sub
That should at least get you started
Avatar billede koppelgaard Praktikant
03. august 2011 - 09:36 #8
Og det virker sgu :-)
Avatar billede claes57 Ekspert
03. august 2011 - 09:48 #9
ok - det er smart og enkelt - læg et svar selv, og luk.
Avatar billede koppelgaard Praktikant
03. august 2011 - 13:14 #10
jeg vil godt have point :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester