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

Namen werkbladen wijzigen

  • Onderwerp starter Onderwerp starter Maik
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Maik

Gebruiker
Lid geworden
20 dec 2005
Berichten
81
Ik ben bezig met het opzetten van een agenda waarbij elk werkblad de naam van de week heeft dus: blad 1 is wk1, blad2 is wk2, blad3 is wk3 enz.

Nu is het echter zo dat er jaren zijn waarbij de eerste week wk 53 is dus blad 1 zou dan wk 53 moeten zijn en blad 2 wk1 enz.

Is het mogelijk om de namen op de werkbladen automatisch te laten wijzigen. N.b de weeknummers komen op een bepaald werkblad terug.

Vriendelijke groet,
Maik
 
Hoi Maik,

Misschien een domme oplossing, maar altijd week 53 en in jaren zonder week 53 gewoon beginnen op blad2?

Jeroen
 
Dag Jeroen,

Dat lijkt inderdaad de oplossing het is echter zo dat alle informatie over de eerste week gekoppeld is aan blad 1, de 2e week aan blad 2, de informatie komt dus op de juiste plek echter de namen van de werkbladen kloppen dan niet meer en kunnen voor verwarring zorgen.

Maik
 
Hoi Maik,

Ik zie het probleem niet zo, maar goed,

Druk met de rechtermuisknop op het tabje van het werkblad, kies Programmacode weergeven.
Je komt nu in de VBA-editor. Kies in de projectverkenner (Geen projectverkenner te zien, kies Beeld uit het menu en klik op projectverkenner) aan de linkerkant voor Blad1 en zet daar de onderstaande code:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target = Sheets(1).Range("$D$2") Then
For i = 1 To Sheets.Count
Sheets(i).Name = "B" & Sheets(i).Name
Next i

n = Range("D2")
If Target < 1 Then n = 1
If Target > 53 Then n = 53
For i = 1 To Sheets.Count
If n > 53 Then n = 1
Sheets(i).Name = n
n = n + 1
Next i
End If
End Sub

Deze code voorkomt een aantal foutmeldingen.

Jeroen
 
Dag Jeroen,

Dit werkt prachtig, echter er zijn naast de 53 werkbladen met een weeknummer ook nog een aantal bladen met een andere naam.
Heb je enig idee hoe dit op te lossen is?

Groet Maik
 
Hoi Jeroen,

het is toch nog iets complexer dan ik dacht, 2011 begint namelijk met week 52 als 1e week???

Maik
 
De vraag staat er al een tijdje op, is er iemand die me er verder mee kan helpen?
 
Probeer het eens met de volgende macro.
Plaats in het 1e blad in cel A1 het juiste weeknummer en start daarna de macro.

Sub Macro1()
'
' Macro1 Macro
'
Dim wk As String
'
Sheets(1).Select
'Controle of sheetnaam al begint met week, zo ja eerst allemaal hernoemen om te voorkomen dat dubbele namen ontstaan.
If Left(ActiveSheet.Name, 4) = "Week" Then
For i = 1 To Sheets.Count
ActiveSheet.Name = "Blad" & i
If i <> Sheets.Count Then
ActiveSheet.Next.Select
End If
Next
End If
Sheets(1).Select
wk = Range("A1").Value
For i = 1 To Sheets.Count

ActiveSheet.Name = "Week " & wk
If i <> Sheets.Count Then
ActiveSheet.Next.Select
End If
wk = wk + 1
If wk > 52 Then
wk = 1
End If
Next
Sheets(1).Select
End Sub



Aanvulling:
=1+INTEGER((B8-DATUM(JAAR(B8+4-WEEKDAG(B8+6));1;5)+WEEKDAG(DATUM(JAAR(B8+4-WEEKDAG(B8+6));1;3)))/7)

hiermee bepaal je het juiste weeknummer volgens de ISO-standaard van de datum in B8.
De functie =Weeknummer() geeft voor sommige jaren niet het juiste weeknummer.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan