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

Macro Vorige file openen

Status
Niet open voor verdere reacties.

Rommyke

Gebruiker
Lid geworden
29 mrt 2007
Berichten
357
Hoi allemaal,

Met onderstaande code kan ik een andere file openen die vorige dag is opgeslagen .De gekozen file die geopend wordt is afhangelijk van de waarde in Y30.
Als die nieuwe file nu geopend is en ik deze functie nog eens zou willen gebruiken zou er eigenlijk Date -2 in de formule moeten komen.
Is er een manier om dit automatisch te laten gaan? en misschien als er geen vorige meer is een melding geven

Groetjes


Code:
Sub Prvs()
     
    Dim newFile As String, fName As String
    
    fName = Range("Y30").Value
    newFile = "Shift" & fName & " " & Format$(Date - 1, "dd-mm-yyyy")
    Workbooks.Open Filename:=newFile
     If newFile <> False Then
        Exit Sub
     Else
        ThisWorkbook.Close False
     End If

End Sub
 
Hier is alvast code om te checken of een bestand geopend is of niet.

Doe in plaats van - 1, - i (waarbij je i laat gaan in een lus van 1 tot een getal dat je zelf kiest maar dat groot genoeg is)

Wigi
 
hoi Wigi , nogmaals bedankt voor uw antwoord

Om te kijken of een file bestaat werkt , zie code maar het plaatsen van die lus in de code lukt niet zo .

Code:
Sub Prvs()
     
    Dim newFile As String, fName As String
    Dim i As Integer
        
    fName = Range("Y30").Value
    newFile = "Shift" & fName & " " & Format$(Date - 1, "dd-mm-yyyy")
    With Application.FileSearch
        .LookIn = "C:\Documents and Settings\Gebruiker\Mijn documenten"
        '* represents wildcard characters
        .Filename = newFile & ".xls"
            If .Execute > 0 Then 'Workbook bestaat
                Workbooks.Open Filename:=newFile
                ThisWorkbook.Close False
            Else 'Er is geen vorig Workbook
                MsgBox "U kunt niet verder teruggaan"
            End If
    End With
    
        
End Sub
 
maar het plaatsen van die lus in de code lukt niet zo .

Heb hier nog eens over nagedacht, Met een lus kan dit volgens mij ook niet lukken?

Eerste file is datum vandaag Shift1 23-04-2007
vorige file is dan Shift1 22-04-2007
enz .......

Met previous open ik nu een volledig nieuwe file en sluit de eerste.

Als ik in File Shift1 22-04-2007 nogmaals op previous druk , geraak ik door -1 te vervangen met -i en daar een lus bij ook niet naar Shift1 21-04-2007 ? Ofwel
 
Voer dit eens uit:

Code:
Sub Prvs()
     
    Dim newFile As String, fName As String
    Dim i As Integer, wBook As Workbook
        
    fName = Range("Y30").Value
    newFile = "Shift" & fName & " " & Format$(Date - (Range("Z30").Value + 1), "dd-mm-yyyy")
    
    With Application.FileSearch
        .LookIn = "C:\Documents and Settings\Gebruiker\Mijn documenten"
        '* represents wildcard characters
        .Filename = newFile & ".xls"
            If .Execute > 0 Then 'Workbook bestaat
             
                On Error Resume Next
                
                Set wBook = Workbooks(newFile & ".xls")
            
                If wBook Is Nothing Then Workbooks.Open Filename:=newFile & ".xls"

                Set wBook = Nothing                
                On Error GoTo 0
                
                'ThisWorkbook.Close False
            Else 'Er is geen vorig Workbook
                Range("Z30").Value = Range("Z30").Value + 1
                MsgBox "Het bestand " & newFile & ".xls bestaat niet. Probeer nog een keer."
            End If
    End With
End Sub

het zet in cel Z30 telkens een hoger nummer als dat bepaalde bestand (op basis van Y30) niet bestaat. Als het wel bestaat en nog niet geopend is, wordt het geopend.

Wigi
 
Laatst bewerkt:
hoi Wigi ,

Ik heb de file geprobeerd maar ik geraak niet verder dan 1X terug .
In Z30 komt geen waarde te staan , als ik er dan manueel een "1" invul geraak ik wel verder en daarna een "2" .

Verder ziet het er heel goed uit.

Als het vorige bestand niet bestaat telt de waarde in Z30 wel verder.

Denk dat het probleem ligt door het openen van de vorige file waar de waarde Z30 niet in doorgegeven word.
 
Laatst bewerkt:
Denk dat het probleem ligt door het openen van de vorige file waar de waarde Z30 niet in doorgegeven word.

Heb nog eens nagedacht:D

Op X 2 wordt elke keer de datum opgeslagen.

Code:
newFile = "Shift" & fName & " " & Range("x2").value -1

Zou zoiets niet werken ? Of ergens naar die richting gaan ?
 
Ik begrijp het toch niet goed.

Stel dat het bestand van datum vandaag geopend is. Dan moet vandaag-1 geopend worden. Maar de kans bestaat dat dat niet bestaat. Moet dan vandaag-2 geopend worden? En tot waar ga je blijven gaan indien dat ook niet bestaat, vandaag-3 ook niet, ... waaris de grens?
 
Ik begrijp het toch niet goed.

Stel dat het bestand van datum vandaag geopend is. Dan moet vandaag-1 geopend worden. Maar de kans bestaat dat dat niet bestaat. Moet dan vandaag-2 geopend worden? En tot waar ga je blijven gaan indien dat ook niet bestaat, vandaag-3 ook niet, ... waaris de grens?

Hoi Wigi ,

Ik heb een bestand bijgevoegd hopelijk wordt het dan iets duidelijk.

Bij de kans dat de file niet bestaat werkt uw code perfect en men moet maar pak bv 5X terug kunnen gaan

Het probleem echter is als het vorige bestand bestaat en ik wil vanuit die file (is file vorige dag) nog eentje terug
 

Bijlagen

Dus ik neem aan dat het bestand van 24 april moet geopend worden als er op Previous geklikt wordt?

En als dat dan geopend is, wat dan? Terugkeren naar dit bestand? Of heeft het bestand van 24 april ook dezelfde code?
 
Dus ik neem aan dat het bestand van 24 april moet geopend worden als er op Previous geklikt wordt?

En als dat dan geopend is, wat dan? Terugkeren naar dit bestand? Of heeft het bestand van 24 april ook dezelfde code?

Ja klopt als men op previous klikt moet als het vandaag 25 april is bestand 24 april openen
Hierbij sluit tevens bestand van 25 april,we keren dus niet terug en blijven in het bestand van 24april.

het bestand van 24 april heeft dezelfde codes en knoppen .(vermits je dit gesaved hebt dag voordien)
Met gevolg dat als je hier op previous druk dat je de datum -2 moet hebben om op 23 april uit te komen
 
Laatst bewerkt:
Ik heb besloten om geen knop previous in te voegen

Wigi , heb uw file een beetje aangepast zodat je een file opent waarbij je zelf de creteria ingeeft in X6 en X2

Code:
Sub openen()

Dim Dname As String, fName As String
Dim newFile As String
Dim i As Integer, wBook As Workbook
Const sPath As String = "W:\Workshop_Drivers_Instrum_Security\Test Drivers\Operationeel\TestPersoneel\"
fName = Range("x6").Value
Dname = Range("x2").Value
 
newFile = "Shift" & fName & " " & Dname

   
    
    With Application.FileSearch
        .LookIn = sPath
        '* represents wildcard characters
        .Filename = newFile & ".xls"
            If .Execute > 0 Then 'Workbook bestaat
             
                On Error Resume Next
                
                Set wBook = Workbooks(newFile & ".xls")
            
                If wBook Is Nothing Then Workbooks.Open Filename:=sPath & newFile

                Set wBook = Nothing
                On Error GoTo 0
                ThisWorkbook.Close False
            Else 'Er is geen vorig Workbook
                
                MsgBox "Het bestand " & newFile & ".xls bestaat niet. Probeer nog een keer."
            End If
    End With
End Sub

Groetjes
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan