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

Elke tab een week

Status
Niet open voor verdere reacties.

TiborP

Gebruiker
Lid geworden
18 sep 2007
Berichten
12
Hallo,

Op dit moment ben ik bezig met het maken van een soort agenda in excel. Elke tab moet een week voorstellen maar hoe kan ik dit makkelijk en snel maken. heb namelijk geen zin om elke tab apart een naam tegeven. De naam van de tab moet zijn:

1-5 okt
8-12 okt
15-19 okt
..enz

Bij voorbaat dank!
 
Hoi Tibor

Hier heb ik kant-en-klare code voor jou, vers van de pers :thumb:

Code:
Option Explicit

Sub TabPerWeek()

    Dim d As Date
    Dim iWeekcounter As Integer
    Dim i As Integer
    Dim sSheetName As String
    Dim wb As Workbook
    Dim ws As Worksheet
    
    Const dBeginDate As Date = #10/1/2007#
    
    Application.ScreenUpdating = False
    
    Set wb = Workbooks.Add
    
    With wb
    
        For iWeekcounter = 1 To 52
            
            d = dBeginDate + 7 * (iWeekcounter - 1)
            
            Set ws = .Worksheets.Add(After:=.Sheets(.Sheets.Count))
            
            sSheetName = Format(d, "d")
            sSheetName = sSheetName & "-" & Format(d + 4, "d mmm")
            
            ws.Name = sSheetName
            
        Next iWeekcounter
    
        Application.DisplayAlerts = False
        For i = 1 To Application.SheetsInNewWorkbook
            
            .Sheets(i).Delete
            
        Next
        Application.DisplayAlerts = True
        
        .Sheets(1).Select
    
    End With
    
    Application.ScreenUpdating = True
    
End Sub

Wigi
 
Laatst bewerkt:
Hoi Tibor

Hier heb ik kant-en-klare code voor jou, vers van de pers :thumb:

Code:
Option Explicit

Sub TabPerWeek()

    Dim d As Date
    Dim iWeekcounter As Integer
    Dim i As Integer
    Dim sSheetName As String
    Dim wb As Workbook
    Dim ws As Worksheet
    
    Const dBeginDate As Date = #10/1/2007#
    
    Application.ScreenUpdating = False
    
    Set wb = Workbooks.Add
    
    With wb
    
        For iWeekcounter = 1 To 52
            
            d = dBeginDate + 7 * (iWeekcounter - 1)
            
            Set ws = .Worksheets.Add(After:=.Sheets(.Sheets.Count))
            
            sSheetName = Format(d, "d")
            sSheetName = sSheetName & "-" & Format(d + 4, "d mmm")
            
            ws.Name = sSheetName
            
        Next iWeekcounter
    
        Application.DisplayAlerts = False
        For i = 1 To Application.SheetsInNewWorkbook
            
            .Sheets(i).Delete
            
        Next
        Application.DisplayAlerts = True
        
        .Sheets(1).Select
    
    End With
    
    Application.ScreenUpdating = True
    
End Sub

Wigi

Dank je. Dit is al zware kost voor mij maar ga eens kijken wat ik ermee kan.
 
He Wigi ik neem aan dat ik hem bij Visual Basic moet invoeren maar waar dan en hoe precies?

Ik heb het al bij verschillende bladen geprobeerd, maar het wil niet lukken.
 
Laatst bewerkt:
In een Excel bestand, druk Alt-F11.

Doe Invoegen > Module, plak de code in het lege witte vlak van de module.

Sluit VBE af met Alt-F11.

Ga naar Extra > Macro > Macro's en voer de macro uit.

Wigi
 
In een Excel bestand, druk Alt-F11.

Doe Invoegen > Module, plak de code in het lege witte vlak van de module.

Sluit VBE af met Alt-F11.

Ga naar Extra > Macro > Macro's en voer de macro uit.

Wigi

Geweldig!!! Dit scheelt mij zeer veel werk!!
 
Zeker!!!

Ik heb nu al een heel werkblad gemaakt wat in al die tabs moet komen heb je hier ook nog een trukje voor? Het gaat om bijgaant bestand ik wil voor de dagen ook graag een datum vermelding mocht dat mogelijk zijn.

Let niet op de opmaak. Heb ik nog niks aangedaan.

BVD
 

Bijlagen

Verander de naam van het tweede tabblad naar Master.

Dat wordt een soort van template dat gekopieerd wordt voor elke week.

Plak deze code in een module van het agendabestand, en voer de code weer uit:

Code:
Sub TabPerWeekKopiërenMasterSheet()

    Dim d As Date
    Dim iWeekcounter As Integer
    Dim sSheetName As String
    Dim wb As Workbook
    Dim ws As Worksheet
    
    Const dBeginDate As Date = #10/1/2007#
    Const sSheetBasis As String = "Master"
    
    Application.ScreenUpdating = False
    
    Set wb = ThisWorkbook
    
    With wb
    
        For iWeekcounter = 1 To 52
            
            Sheets(sSheetBasis).Copy After:=.Sheets(.Sheets.Count)
            
            Set ws = .Sheets(.Sheets.Count)
            
            d = dBeginDate + 7 * (iWeekcounter - 1)
            
            sSheetName = Format(d, "d")
            sSheetName = sSheetName & "-" & Format(d + 4, "d mmm")
            
            ws.Name = sSheetName
            
            'change month name in C9
            ws.Range("C9").Value = Application.WorksheetFunction.Proper(Format(d, "mmmm"))
            
        Next iWeekcounter
        
        .Sheets(sSheetBasis).Select
    
    End With
    
    Application.ScreenUpdating = True
    
End Sub

Wigi
 
Dit is geweldig!!! Hoe weet je dit allemaal?

Er is een onzichtbare geest die boven mij komt zweven. En dan fluistert die 1 voor 1 alle stukjes code in mijn oor. Ik moet ze enkel nog uittypen. Best handig hoor.

Wigi
 
Laatst bewerkt:
He dat is makkelijk kan diegene dan nog iets meer uitleggen?

Het is namelijk zo dat ik bij elke "dagtabel" ook de juist datum krijg. Corresponderend met datum van tabblad.

hier dus

th_96207_naamloos_123_993lo.JPG


Bedank hem maar!
 
Laatst bewerkt:
He dat is makkelijk kan diegene dan nog iets meer uitleggen?

Het is namelijk zo dat ik bij elke "dagtabel" ook de juist datum krijg. Corresponderend met datum van tabblad.

hier dus

th_96207_naamloos_123_993lo.JPG


Bedank hem maar!

Ik ben een beetje aan het spelen met de code misschien lukt het al wel.:)
 
Inderdaad, experimenteer maar verder. :thumb:

Dat is trouwens ook wat ik doe/gedaan heb, geesten ben ik nog niet tegengekomen... ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan