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

Opgelost VBA, Kopieren Werkblad en naam wijzigen

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

gpiket7

Gebruiker
Lid geworden
25 jul 2008
Berichten
169
Ik heb een urenregistratie, als je op het werkblad "BLANCO" op de knop drukt "Aanmaken nieuwe week" werkt de knop prima.
Als ik dezelfde knop gebruik op een ander tabblad pakt hij de waarde van C4 op dat actieve tabblad en niet die op het tabblad "BLANCO".

Ik heb al geprobeerd door te wijzigen naar ActiveSheet.Name = "Week " & Sheets("BLANCO").Range("C4").Value
maar dat werkt helaas ook niet. Iemand wel een idee?

Code:
Private Sub CommandButton1_Click()
For a = 1 To 1
    'kopieer blad BLANCO en zet de copie achter blad Instructies
    Sheets("BLANCO").Copy After:=Sheets("Instructies")
    'hernoem het (nieuwe) actieve blad = naam & nummer
    ActiveSheet.Name = "Week " & Range("C4").Value
    ActiveSheet.Unprotect "Welkom123"
Next a
    'Weeknummer omzetten van formule naar vaste waarde
    ActiveSheet.Range("C4").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
ActiveSheet.Range("B8").Select
 
End Sub
 

Bijlagen

Volgens mij is dit voldoende:
Code:
Private Sub CommandButton1_Click()
    Sheets("BLANCO").Copy After:=Sheets("Instructies")
    With ActiveSheet
        .Unprotect "Welkom123"
        .Name = "Week " & .Range("C4").Value
        .Range("C4") = .Range("C4")
        .Range("B8").Select
    End With
End Sub
 
Laatst bewerkt:
Waarom steeds in nieuwe week aanmaken.
Maak aan het begin van het jaar meteen alle weken aan.
Code:
Sub Weken()
Application.ScreenUpdating = False
For i = 1 To 52
   Sheets("BLANCO").Copy After:=Sheets("Instructies")
    ActiveSheet.Name = i
    ActiveSheet.Range("C4") = i
Next
Application.ScreenUpdating = True
Application.Goto Sheets("1").Range("B8")

End Sub
Of zet alles op 1 blad met toevoeging van het weeknr. in de tabel.
Dan kun je filteren op het weeknummer.
 
En verwijder eerst alle samengevoegde cellen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan