Hallo,
Ik heb een kleine uitdaging. Ik ben bezig met een bestand om ramingen te maken binnen ons bedrijf. Ondertussen zijn we bij versie 1.6 aangekomen, maar dat zal in de toekomst nog verder oplopen.
Wat ik nu wil voorkomen is dat mensen met oude bestanden blijven werken. Nu is het makkelijkst natuurlijk om het oude bestand te verwijderen/verplaatsen, maar dat zal niet altijd op gaan en soms vergeten worden. Daarom ben ik een code aan het maken die het versie nummer controleert. Die code kan ik uit komen. Ik kan ook kijken of na versie 1.6 ook versie 2.6 of versie 1.7 bestaat. Maar stel nu dat versie 1.8 bestaat en 1.7 verwijdert is. Dan lukt me dat nog niet om te controleren. Nu kan ik natuurlijk een loop maken, maar om te voorkomen dat die door moet lopen tot versie 1.150 wil ik eigenlijk alleen maar weten of in de directory een bestand staat met dezelfde naam, maar met alleen een ander versie nummer...
Dat laatste stukje moet dus anders, maar het ontbreekt mij daar op dit moment aan snapvermogen... :shocked:
Ik hoef geen versienummer van de nieuwere versie, maar wil alleen weten of er 1 bestaat.
Alvast bedankt voor het meedenken.
PS. de rest kan misschien ook efficiënter, maar dit werkt voor mij en vindt ik op dit moment voldoende, het gaat mij om het laatste deel.
Ik heb een kleine uitdaging. Ik ben bezig met een bestand om ramingen te maken binnen ons bedrijf. Ondertussen zijn we bij versie 1.6 aangekomen, maar dat zal in de toekomst nog verder oplopen.
Wat ik nu wil voorkomen is dat mensen met oude bestanden blijven werken. Nu is het makkelijkst natuurlijk om het oude bestand te verwijderen/verplaatsen, maar dat zal niet altijd op gaan en soms vergeten worden. Daarom ben ik een code aan het maken die het versie nummer controleert. Die code kan ik uit komen. Ik kan ook kijken of na versie 1.6 ook versie 2.6 of versie 1.7 bestaat. Maar stel nu dat versie 1.8 bestaat en 1.7 verwijdert is. Dan lukt me dat nog niet om te controleren. Nu kan ik natuurlijk een loop maken, maar om te voorkomen dat die door moet lopen tot versie 1.150 wil ik eigenlijk alleen maar weten of in de directory een bestand staat met dezelfde naam, maar met alleen een ander versie nummer...
Code:
Private Sub Workbook_Open()
' Ff dimmen...
Dim FileN As String
Dim Versie As String
Dim VersieP1 As Integer
Dim VersieP2 As Integer
Dim FileNnr1 As Integer
Dim FileNnr2 As Integer
Dim Adres As String
Dim AdresNr As Integer
' Dims invullen
FileN = ThisWorkbook.Name
Adres = ThisWorkbook.FullName
' Kijken of het bestand het "sjabloon" is en niet een opgeslagen projectbestand
If Left(FileN, 17) = "Sjabloon - Raming" Then
' Gegevens splitsen uit bestandsnaam ("Sjabloon - Raming ???? v1.6.xlsm") Op plaats vraagtekens staat een type raming
' lengte extensie bepalen
FileNnr1 = InStrRev(FileN, ".")
' extensie er afhalen
FileN = Left(FileN, FileNnr1 - 1)
' lengte versienummer bepalen
FileNnr2 = InStrRev(FileN, "v")
' versienummer in string
Versie = Right(FileN, FileNnr1 - FileNnr2 - 1)
' Bestandsnaam zonder versienummer en extensie
FileN = Left(FileN, Len(FileN) - Len(Versie))
' lengte pad bepalen
AdresNr = InStrRev(Adres, "\")
' pad in string
Adres = Left(Adres, AdresNr)
' deel 1 van het versienummer
VersieP1 = CInt(Left(Versie, InStr(Versie, ".") - 1))
' deel 2 van het versie nummer
VersieP2 = CInt(Right(Versie, Len(Versie) - InStr(Versie, ".")))
' kijken of er een nieuwere versie is
If Len(Dir(Adres & FileN & VersieP1 + 1 & "." & VersieP2 & ".xlsm")) > 0 Or Len(Dir(Adres & FileN & VersieP1 & "." & VersieP2 + 1 & ".xlsm")) > 0 Then
MsgBox "Er is een nieuwe versie van dit bestand"
End If
End If
End Sub
Dat laatste stukje moet dus anders, maar het ontbreekt mij daar op dit moment aan snapvermogen... :shocked:
Ik hoef geen versienummer van de nieuwere versie, maar wil alleen weten of er 1 bestaat.
Alvast bedankt voor het meedenken.
PS. de rest kan misschien ook efficiënter, maar dit werkt voor mij en vindt ik op dit moment voldoende, het gaat mij om het laatste deel.