El error 1004 se genera cuándo se intenta "escribir" en una hoja protegida, lee ésto....
http://support.microsoft.com/kb/905164/es
Lo que no me queda claro es...¿quieres proteger la hoja? ó ¿quieres proteger la macro?
La macro se protege desde el editor de VBA.
Saludos...