schuiven excel op basis van weeknummers

Status
Niet open voor verdere reacties.

KeBr

Gebruiker
Lid geworden
25 apr 2016
Berichten
128
Ik heb een exceldocument dat op basis van weeknummers automatisch doorschuift met onderstaande code.
Hoe kan ik zorgen dat niet de huidige week maar één week eerder zichtbaar blijft.

Public Sub Auto_open()
'________________________________________________________________________________
'Weeknummer worden in rij 1 genoteerd
'Weekplanning begin op kolom D
'Het ontbreken van het weeknummer wordt als het einde van de weekplanning gezien
'________________________________________________________________________________
Dim iSheet As Integer
Dim iC As Integer
Dim sWeek As String

For iSheet = 1 To Worksheets.Count
For iC = 7 To 58
sWeek = Trim$(Worksheets(iSheet).Cells(1, iC).Value)
If Len(sWeek) = 0 Then Exit For
If Not IsNumeric(sWeek) Then Exit For

If CInt(sWeek) < Format$(Now, "WW", vbMonday, vbFirstFourDays) Then
Worksheets(iSheet).Columns(iC).Hidden = True
End If
Next iC
Next iSheet
End Sub
 
Met een voorbeeldbestand heb je waarschijnlijk heel rap een antwoord!

Gr.

Sjon
 
now -7 gaat een week terug.

Columns(7).resize(,huidigeweek-1).hidden = true is ook een optie maar door alle controles die je in jouw code hebt ingebakken heb ik geen idee wat er werkelijk in de tabjes staat. Het lijkt mij een aardige puinhoop dus de suggestie van @SjonR lijkt mij het beste.

Nb. Hoe staat het met jouw andere vragen?
Nb2. Code kan je beter tussen codetags plaatsen. Dit mag onderhand wel bekend zijn.
 
nu met voorbeeld bestand

Beste, bedankt voor je reacties, het werkt echter nog niet zoals gewenst.
ik heb nu een voorbeeld bijgesloten met enkele regels.
Als het bestand wordt geopend zullen beide tabbladen schuiven naar de huidige week (momenteel 48)
Ik zou graag week 47 zien, dus altijd een week in het verleden.

Tevens zou het dan handig zijn als de huidige week een andere achtergrondkleur zou hebben.

Alvast bedankt voor jullie reactiesBekijk bijlage planning 2017 voorbeeld.xlsm
 
Als je het niet toepast dan werkt het ook niet. Waarom staat er in zowel G1 als H1 week 1?

Probeer het zo eens
Code:
Sub VenA()
  For Each sh In Sheets
    sh.Columns.Hidden = False
    sh.Columns(7).Resize(, DatePart("ww", Date, vbMonday, vbFirstFourDays) - 1).Hidden = True
  Next sh
End Sub
 
Bedankt

Ik heb de code erin gezet, het werkt nu als ik de macro uitvoer.
Is het ook mogelijk om deze macro automatisch uit te voeren bij het open van het bestand.
 
Ja. Er is voldoende te vinden over het hoe dus mag je zelf even doen. (Wordt je over het algemeen niet dommer van en eigenlijk heb je het al);)
 
Bedankt, ik heb het werkend gekregen.

Was eigenlijk heel simpel,
 
Fout in code bij nieuw jaar

Vena heeft gevraagd waarom er 2 keer kolom 1 staat in het document. Ik ben er nu achter dat dit te maken heeft met de eerste week van het jaar. als die kolom er niet staat werkt de code niet.

Ik heb de code aangepast zodat nu ook de week die voorbij is zichtbaar blijft en een kleur krijgt. Echter is het aantal rijen sterk wisselend. Ik zo graag zien dat de range geselecteerd wordt tot het "#"
Dit krijg ik echter niet voor elkaar.
Aanpassing behoeft dan wel 3 kolommen met 1. Zie bijlage
 

Bijlagen

  • planning 2017 voorbeeld.xlsm
    217,3 KB · Weergaven: 53
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan