PDA

Ver la Versión Completa : No Permitir modificar una celda de Excel


Viky
12-01-2010, 20:36:31
Desde mi aplicacion en delphi 6.0, genero un archivo en excel, quisiera saber si existe la posibilidad de "bloquear" de algunas celdas para no permitir que el usuario modifique.

Gracias
Viky.

luisgutierrezb
12-01-2010, 21:57:18
Pues si mal no recuerdo, puedes grabar una macro donde lo hagas directo en una hoja de excel, despues ves el codigo de la macro que te genero y lo utilizas desde delphi

Neftali [Germán.Estévez]
13-01-2010, 10:18:39
Si no recuerdo mal, el propio excel tiene opciones para bloquear Celdas, accediendo desde el formato de Celda.
Para ello debes proteger la hoja completa y luego desbloquear todas las celdas excepto las que quieras bloquear.

Se trata de ver cómo loquear y desbloquear celdas desde Excel (formato) y cómo bloquear la hoja (método Protect).

Tal vez este código te pueda servir de ayuda.


var
R1 : TOpExcelRange;
begin
....
R1 := WS.Ranges.Add;
R1.Address := 'A1';

if CheckBox1.Checked then begin
R1.AsRange.Locked := False; // Set the range (cell A1) to unlocked so
we can still edit it
WS.AsWorksheet.Protect(EmptyParam, True, True, True, True, 0);
ShowMessage('Worksheet protected...');
end else begin
R1.AsRange.Locked := True; // Set the range (cell A1) to the default
locked state
WS.AsWorksheet.Unprotect(EmptyParam, 0);
ShowMessage('Worksheet Unprotected...');
end;
end;