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

Aanpassing tabbladen.

Status
Niet open voor verdere reacties.

masala09

Gebruiker
Lid geworden
6 aug 2012
Berichten
886
Beste allemaal,

Ik heb een lastige vraag.

Ik heb in excel 2007 tabbladen opgemaakt. Op deze staan mijn wekelijkse kilometers voor mijn bedrijf. Zo heb ik hier ongeveer 53 werkbladen voor gekopieerd welke allemaal exact de zelfde opbouw hebben.

Nu wil ik als volgt.....

Zodra ik in blad 1 in cel "b38" de datum heb ingevoerd, wordt deze datum overgenomen op blad 2 in cel "b4" middels formule:

Code:
=Instellingen!B38

In cel "b4" komt dan de datum te staan welke ik heb ingevoerd. Vervolgens ga ik met blad 2 cel"d2" middels de formule:

Code:
=(B4-WEEKDAG(B4-1)+4-(GEHEEL(DATUM(JAAR(B4-WEEKDAG(B4-1)+4);1;2)/7)*7+5))/7+1

het weeknummer uitrekenen. In cel "d2" komt dan het weeknummer te staan.

Voor alle vervolgtabbladen gebruik ik in cel: "b4" de formule:

Code:
='Wk 52'!B4:C11+7

Het eerste gedeelte van de formule: ='Wk 52'! veranderd dus telkens. Volgend tabblad is dan bijvoorbeeld:

Code:
='1'!B4:C11+7

Volgend tabblad is dan weer:

Code:
='2'!B4:C11+7

en ga zo maar door.

Tot zo ver gaat alles goed en werkt het. Zo heb ik 52 a 53 tabbladen met elkaar gekoppeld in optellende volgorde. Alle tabbladen hebben dezelfde indeling en formules met als kleine verwijzing naar voorgaand tabblad. Ik geloof niet dat ik hier verdere uitleg over hoef te geven.

Nu komt het volgende. Ik wil het weeknummer welke in cel"d2" komt te staan automatisch ook de naam wordt van het betreffende tabblad, maar achter het weeknummer in de naam van het tabbald moet dan ook nog eens het jaartal staan. Zo moet ieder tabbald via cel"d2" een eigen naam krijgen. Dus: "Week 1 2012", een tabblad "Week 2 2012, een tabblad "Week 3 2012" etc krijgen. Let op ik heb een instellingen blad en ik heb ook een totale overzicht. Deze tabbladnamen moet ongewijzigd blijven. Het gaat dus puur om de weektabbladen.

Na deze wil ik ook nog eens hebben dat zodra ik het bestand open, ik ook meteen naar de week spring waar we ons in bevinden. Ik heb dus op elk tabblad de weekdagen en de daarbij behorende datums staan welke simpel telkens worden opgeteld middels de formule:

Code:
=B4+3, =b4+4, =b4+5 etc.

Ik ben al een tijdje bezig, maar kom er maar niet uit. Ik heb verschillende codes gevonden en geprobeerd, maar geen combinatie van bovenstaande. Ik krijg enkel maar foutmeldingen.

Hoop dat jullie mij kunnen helpen.

Groet,

Maarten

Aanvulling:

In blad instellingen heb ik als macro:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim WS As Worksheet
    If Not Intersect(Target, Range("b38")) Is Nothing Then
        For Each WS In Worksheets
            If WS.Index > 1 Then WS.Name = Format(DateSerial(Range("b38").Value, WS.Index - 1, 1), "ww")
        Next
    End If
End Sub

In: "This Workbook" heb ik als volgt staan:

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'ActiveSheet.Name = [d2]
End Sub

Code:
Private Sub Workbook_Open()
    Application.Goto Sheets(CStr(DatePart("ww", Date - Weekday(Datum, 2) + 4, 2, 2))).Range("d2"), True
End Sub
 
Laatst bewerkt door een moderator:
Mijn advies zou zijn om alle data op 1 tabblad bij te houden in tabelvorm.

Dan kan de draaitabel je alle gewenste info geven en blijft het model ook veel flexibeler / eenvoudiger te berekenen / minder formules / minder foutgevoelig.
 
Beste Oeldere,

Dank voor je reactie.

Echter ik ben hier niet mee geholpen. Ik wil het in feite gewoon hebben zoals ik het aangaf. Dit voor de overzicht. Per tabblad heb ik nu gewoon een week voor mij staan.

Die weeknummers per tabblad wil ik automatisch aan laten passen, zodat ik deze in elk jaar kan hergebruiken zonder de boel opnieuw te wijzigen met fouten als gevolg. Dus gewoon de datum invoeren in tabblad instellingen en deze transporteren naar een cel het tabblad voor de eerste week. Deze waarde moet dan weer worden overgenomen als naam van het tabblad en dat dus 53 tabbladen.

En voor de volledigheid ook een functie hebben dat zodra ik het bestand open dat het betreffende tabblad met juiste weeknummer voor mij staat op scherm.

Op weer een andere tabblad tel ik alles van het betreffende jaar op zodat ik alles meteen voor de hand heb voor de belastingdienst.

Ik houd niet van half werk.
 
Wij ook niet, dus maak jij maar eens eerst een voorbeeldbestandje met enkele werkbladen waar al deze formules in verwerkt zijn zodat wij het niet eerst zelf allemaal moeten gaan samenstellen.
 
Warme bakkertje.

Wil ik best doen, maar hoe plaats je hier dan een voorbeeldbestand.. waar en hoe kan ik dat bestand uploaden?

Met vriendelijke groet,

Maarten
 
Voor de bladnamen; in standaard module.
Code:
Sub hsv()
Dim ws As Worksheet
 For Each ws In Worksheets
  If WorksheetFunction.And(ws.Name <> "Instellingen", ws.Name <> "Jaar-totaal 2012") Then
    ws.Name = "Week " & ws.Range("D2") & " " & Year(ws.Range("B40"))
   End If
 Next ws
End Sub

Bij het openen; In ThisWorkbook.
Code:
Private Sub Workbook_Open()
 Application.Goto Sheets("Week " & DatePart("ww", Date - Weekday(Date, 2) + 4, 2, 2) & " " & Year(Now)).Range("d2"), True
End Sub
 
Laatst bewerkt:
Welkom nog op Helpmij...:thumb:

Ik heb titel van de vraag aangepast. Hetgeen het was zei niet echt iets over je vraag.

Succes met je topic.
 
Dank voor de moeite....

echter ik krijg ze niet werkend.


Ik neem aan dat de 1e code op ieder tabblad moet.

en ik neem aan dat de 2e code in This Workbook moet komen te staan

Ik heb de boel opgeslagen met macro's, maar het werkt niet.
 
Ik heb het geschreven voor een standaard module (Invoegen module), dus gewoon even aanroepen via Alt+F8, of een knopje.
 
Laatst bewerkt:
Ja en dan.... Ik bedoel ik krijg een klein venstertje te zien na ALt-F8 en daar houd het mee op....

Voor alle duidelijkheid, ik ben nog niet zo bekend met macro's.
 
Foutmelding 1004

ws.Name = "Week " & ws.Range("D2") & " " & Year(ws.Range("B40"))
 
Dan heb je naar alle waarschijnlijkheid lege bladen, of bladen waar niets in cel D2 en/of B40 staat.
Verander de code even in onderstaande.
Code:
Sub hsv()
Dim ws As Worksheet, y As Long
y = 1
 For Each ws In Worksheets
  If WorksheetFunction.And(ws.Name <> "Instellingen", ws.Name <> "Jaar-totaal 2012") Then
     If WorksheetFunction.And(ws.Range("D2") > 0, ws.Range("B40") > 0) Then
  ws.Name = "Week " & ws.Range("D2") & " " & Year(ws.Range("B40"))
      Else
      ws.Name = "leeg blad " & y
     y = y + 1
    End If
   End If
 Next ws
End Sub
 
In cellen D2 staat overal dan behalve tabblad instellingen en jaartotaal gewoon een weeknummer.

Wat ik overigens niet begrijp is waarom je B40 ook aangeeft of gebruikt. Daar word toch niets mee gedaan.....??
 
In B40 staat het jaar van toepassing, B40 is de 5e cel (datum) t.o.v. B4 (er kunnen nog een paar dagen van het nieuwe jaar in week 53 vallen.
Zou ik B4 nemen kan het zijn dat hetzelfde weeknummer & jaar al bestaat i.v.m. weeknummer 53.
 
Nog steeds foutmelding...

Onderstaande wordt bij foutopsporing geel gemarkeerd.

ws.Name = "Week " & ws.Range("D2") & " " & Year(ws.Range("B40"))
 
Klinkt erg logisch week 53.....

Kennen jullie die codes uit jullie hoofd ofzo.... Ik snap daar echt helemaal niets van....

Wat ik nu doe is enkel de code opslaan in VBA en daar blijft het bij. Ik sla het op. Ga terug naar het werkblad en probeer het uit te voeren.

Wat ik overigens wel merk is dat ik handmatig opdracht moet geven na het wijzigen van de instellingsdatum in B38. Kan dat niet gewoon zodra ik daar enter geef dat meteen alles verandert?

Ook merk ik dat het verspringen naar juiste tabblad, welke overigens voor zover ik zie, wel werkt het tabblad niet vanaf Kolom A en Cel 1 wordt getoond. Ik moet nu met sleepbalken schuiven naar het begin. Het tabblad begint nu telkens op kolom D in Cel 2. De eerste rij valt dus ook weg.
 
Ik heb jouw aangepaste versie even bekeken, maar heb ik heb nu 2 lege werkbladen en mijn jaar gaat maar tot 23 december 2012
 
Wat mij ook opvalt is dat er bij jou op elk tabblad: Option Explicit staat.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan