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

Opgeslagen datum uit bestand halen

Status
Niet open voor verdere reacties.

Albatros

Gebruiker
Lid geworden
4 nov 2001
Berichten
388
Hoi,

Dagelijks vul ik artikelnummers in, in het bestand "invul.xls''. Middels vert. zoeken wordt er in het bestand ''data.xls'' gekeken naar de omschrijving.
Maandelijks dien ik het bestand ''data'' te actualiseren.
Kan ik nu in het bestand ''invul.xls'' iets neerzetten, dat kijkt naar de laatste opgeslagen datum van het data-bestand, en zodra dit > 30 dagen is, een meding geven?

Albatros
 
Plaats deze code eens in het workbook_open event:

Code:
[FONT="Courier New"]Dim AantalDagen As Long
AantalDagen = 30
If Now >= DateAdd("d", AantalDagen, ThisWorkbook.BuiltinDocumentProperties("Last Save Time")) Then
    MsgBox "Het is langer dan " & AantalDagen & " dag(en) geleden dat het bestand is opgeslagen.", vbOKOnly + vbInformation, "Herinnering"
End If[/FONT]

Je kan uiteraard ook nog het aantal dagen berekenen dat het geleden is dat het opgeslagen is, maar ik neem aan dat je die aanpassing, indien nodig, zelf kan doen.
 
Finch,

Bedankt voor je snelle reactie.
Echter ik wil "iets"zetten in het bestand "invul.xls"
Het bestand "data.xls" haal ik elke maand uit een extern programma, en converteer dat naar excel.
Het bestaande bestand "data.xls", wordt dan elke keer opnieuw overschreven.

Albatros
 
Ik begrijp je vorige tussenkomst niet helemaal.
Die code kan je zetten in invul.xls, in het workbook_open event.
 
Ik wil in het bestand "invul.xls" de melding krijgen, hoelang geleden het bestand "data.xls" is opgeslagen.

Als ik het goed lees, geef jou code aan, geplaatst in "invul.xls" hoelang geleden dit bestand is opgeslagen.

Misschien vraag ik nu ook wel het onmogelijke:shocked:

Albatros
 
Ik had de vraag in eerste instantie verkeerd begrepen, maar hetgeen jij vraagt is ook mogelijk.

Hieronder de (wat uitgebreidere) code.

Code:
[FONT="Courier New"]Sub ControleLastSave()
Dim AantalDagen As Long
Dim wbHuidig As Workbook
Dim wbToCheck As Workbook
Dim wbPath As String
Dim wbName As String
Dim wbClose As Boolean

wbPath = "C:\" 'Hier het path naar het bestand zetten (afsluiten met \)
wbName = "test.xls" 'Hier de naam van het bestand zetten (+ extensie)
Set wbHuidig = ThisWorkbook

Application.ScreenUpdating = False
If IsWorkbookOpen(wbName) Then
    Set wbToCheck = Workbooks(wbName)
    wbClose = False
Else
    Set wbToCheck = Workbooks.Open(wbPath & wbName)
    wbClose = True
End If
AantalDagen = 30
If Now >= DateAdd("d", AantalDagen, wbToCheck.BuiltinDocumentProperties("Last Save Time")) Then
    If wbClose = True Then wbToCheck.Close False
    wbHuidig.Activate
    MsgBox "Het is langer dan " & AantalDagen & " dag(en) geleden dat het bestand (" & wbPath & wbName & ") is opgeslagen.", vbOKOnly + vbInformation, "Herinnering"
End If
Application.ScreenUpdating = False

End Sub


Function IsWorkbookOpen(wb As String) As Boolean
Dim wbToOpen As Workbook
On Error Resume Next
Set wbToOpen = Workbooks(wb)
If wbToOpen Is Nothing Then
    IsWorkbookOpen = False
Else 
    IsWorkbookOpen = True
End If
Set wbToOpen = Nothing
End Function[/FONT]

Nu moet je in je workbook_open event verwijzen naar de sub "ControleLastSave".

Ik heb in deze code ingebouwd om te kijken of het desbetreffende bestand open is of niet. Voor een goede werking echter moet je eigenlijk ook kijken of het bestand ook werkelijk bestaat. Dit is echter NIET voorzien, maar daar zijn genoeg voorbeeldcodes voor te vinden.
 
Finch,

Geweldig!
het werkt nu voor 98%!:thumb:
Het enigste wat er mis gaat, is dat het data.xls bestand (in jouw voorbeeld test.xls) open blijf staan als de periode < dan 30 dagen is. Ik heb nog niet de kennis waar ik dit aan moet passen, zodat dit "gesloten" blijft

Albatros
 
Dit stukje vervangen:

Code:
[FONT="Courier New"]AantalDagen = 30
If Now >= DateAdd("d", AantalDagen, wbToCheck.BuiltinDocumentProperties("Last Save Time")) Then
    If wbClose = True Then wbToCheck.Close False
    wbHuidig.Activate
    MsgBox "Het is langer dan " & AantalDagen & " dag(en) geleden dat het bestand (" & wbPath & wbName & ") is opgeslagen.", vbOKOnly + vbInformation, "Herinnering"
End If
Application.ScreenUpdating = False

End Sub[/FONT]

door

Code:
[FONT="Courier New"]AantalDagen = 30
If Now >= DateAdd("d", AantalDagen, wbToCheck.BuiltinDocumentProperties("Last Save Time")) Then
    wbHuidig.Activate
    MsgBox "Het is langer dan " & AantalDagen & " dag(en) geleden dat het bestand (" & wbPath & wbName & ") is opgeslagen.", vbOKOnly + vbInformation, "Herinnering"
End If
 If wbClose = True Then wbToCheck.Close False
Application.ScreenUpdating = False

End Sub[/FONT]
 
Finch,

Geweldig:thumb::thumb::thumb:
Het werkt! :thumb::thumb:
Enorm bedank!:thumb:

Albatros
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan