Leekje2010
Gebruiker
- Lid geworden
- 29 aug 2010
- Berichten
- 7
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo einde
With Target
If Target.Column = 2 Then
Sheets.Add(after:=Sheets(Sheets.Count)).Name = Target
Cells(Target.Row, 5).Value = Cells(Target.Row, 2).Value
End If
End With
Sheets("hoofd").Range("1:76").Copy Sheets(Sheets.Count).Range("1:76")
Sheets(Sheets.Count).Columns.AutoFit
einde:
End Sub
Met behulp van veel snuffelwerk heb ik in mijn excelbestand bovenstaande code ingevoerd en deze code werkt perfect om bij invoer van een nieuwe naam in een kolom (2e , op werkblad "TOTALEN", is het actieve werkblad) een nieuw werkblad aan te maken, wat een kopie is van het werkblad "HOOFD" én met de naam van de naam die is ingevoerd in de cel in de 2e kolom.
Nu merkte ik dat, wanneer ik het werkblad HOOFD beveilig, dat alleen het format wordt gekopieerd en níet alle formules, etc. op de pagina. Ik wil die pagina graag wel beveiligen om te voorkomen dat andere mensen die met het bestand werken per ongeluk het moedermodel en de formules wissen. Ik krijg het niet voor elkaar met de code sheets ("").unprotect en .protect en weet ook niet waar deze te plaatsen.
Tevens zou het werkblad dat wordt aangemaakt ook direct bij het aanmaken beveiligd willen hebben (tenminste, niet de cellen die ik op het werkblad "hoofd" heb aangegeven als invulbaar (niet-vergendeld), maar de rest wel).
Is het mogelijk om dit met een (aanpassing van de) code voor elkaar te krijgen?
Als laatste zou ik graag willen dat op de actieve pagina (Totalen) een melding komt wanneer ik in die 2e kolom een naam invoer die al eerder in die kolom is gebruikt (er wordt dan nl geen werkblad aangemaakt), zodat er een andere naam wordt ingevoerd. Ik hoop dat iemand me kan helpen om dit allemaal in 1 code te krijgen.