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

Datum springen

Status
Niet open voor verdere reacties.

schilderehbo

Gebruiker
Lid geworden
21 dec 2015
Berichten
165
Ik heb al verschillende onderwerpen hier gelezen over naar datum springen maar kan niet echt de juiste vinden.
Wat ik dus wil ik heb 5 tabbladen en 1 tabblad met een heel jaar staan en in elke cel staat een datum notatie hoe laat ik de excel blad zo opstarten dat hij naar de juiste datum van vandaag springt.
alvast bedankt.
 
Als kolom A op werkblad "JouwWerkblad" de datums bevat:
Code:
Function GaNaarVandaag()
    On Error GoTo errHandler
    Application.Goto Sheets("JouwWerkblad").Range("A:A").Find(What:=Date).Offset(0, 1), False
    ActiveWindow.ScrollRow = ActiveCell.Row - 10
    Exit Function
errHandler:
    MsgBox "Datum " & Date & " niet gevonden."
End Function
Aanroepen vanuit workbook_open event.
 
Dan wordt het heel anders, plaats deze code achter werkblad "Jaaroverzicht trainingen."

Code:
Option Explicit

Private Sub Worksheet_Activate()
    GaNaarVandaag
End Sub


Sub GaNaarVandaag()
    Dim Rng As Range
    
    Application.Goto Range("B6")
    Do
        Set Rng = Cells.Find(What:=Day(Date), After:=ActiveCell, LookIn:=xlValues, LookAt:= _
        xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False _
        , SearchFormat:=False)
        Application.Goto Rng
    Loop While Not Rng Is Nothing And Month(ActiveCell) < Month(Date)
    Application.Goto Rng.Offset(1, 0)
    ActiveWindow.ScrollColumn = ActiveCell.Column - 4
End Sub

Maar sommige datums komen twee keer voor op de kalender, niet echt handig.
 
Of deze:
Code:
Private Sub GaNaarVandaag()
    Application.Goto Cells(4, Month(Date) * 7 + 2)
    Set Rng = Range(ActiveCell.Address).Resize(14, 7)
    Set c = Rng.Find(Day(Date), , xlValues, xlWhole)
    If Not c Is Nothing Then
        Application.Goto Cells(c.Row + 1, c.Column)
    End If
End Sub
 
Dankje wel hij doet het. En dubbele datums is inderdaad niet handig maar zou niet weten hoe het anders kan je zit met start datum van het jaar dus het kan volgend jaar zomaar andere cel zijn en daar moet dan wel een notatie staan. ik gebruik wel altijd maandag als eerste dag.
 
@edmoor
Er zijn vele wegen die naar Rome leiden, en sommige zijn wat korter ;-)
Nog een ScrollColumn erbij en hij is perfect!
 
Dank je werkt perfect alleen wat zet ik waar om het gehele excel in dat blad te openen. neem aan in This Workbook een korte code.
 
Deze van AHulpje in de Worksheet module:
Code:
Private Sub Worksheet_Activate()
    GaNaarVandaag
End Sub

De Sub GaNaarVandaag() zet je daar dan onder.
 
@edmoor
Maar GaNaarVandaag activeert niet het werkblad "Jaaroverzicht trainingen."

Ik zou
Code:
Private Sub Workbook_Open()
    Sheets("Jaaroverzicht trainingen.").Activate
End Sub
achter ThisWorkbook plakken, dan wordt dankzij het Worksheet_Activate event van werkblad "Jaaroverzicht trainingen." de sub GaNaarVandaag uitgevoerd.
 
Als je een ander werkblad actief hebt en je klikt op "Jaaroverzicht trainingen." dan wordt de code uitgevoerd.
Wat AHulpje zegt kan ook.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan