ESCRITURA IMBORRABLE

10/10/2007 - 08:31 por Yo mismo | Informe spam
Buenos días.

Me gustaría saber si existe la posibilidad de otorgar a una celda la
posibilidad de que, una vez se ha escrito en ella, el contenido quede
protegido automáticamente. He intentado hacerlo mediante la protección de
celdas, pero eso me impide escribir en ella. Lo que yo quiero es que sólo se
proteja la celda cuando ya se ha escrito, y se haga sin intervención de nadie.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
10/10/2007 - 09:11 | Informe spam
hola, (...) ???

... posibilidad... a una celda... que, una vez se ha escrito en ella, el contenido quede protegido automaticamente.
He intentado hacerlo mediante la proteccion de celdas, pero eso me impide escribir en ella.
Lo que yo quiero es que solo se proteja la celda cuando ya se ha escrito, y se haga sin intervencion de nadie.



necesitaras el apoyo de macros (y obviamente, que tu libro se abra con permiso se usarlas)

1) selecciona TODAS las celdas de esa hoja y quitales la marca de bloqueada
(menu: formato / celdas / proteccion -> bloqueada)

2) proteges la hoja en el evento '_open' de tu libro cada vez que se abra con la opcion de solo la interfase con el usuario
(excel se olvida de algunas caracteristicas como esta)
-> en el modulo de codigo del libro (ThisWorkbook)
Private Sub Workbook_Open()
Worksheets("hoja1").Protect "aBc", 1, 1, 1, 1
End Sub

3) sera necesario evitar que el usuario seleccione mas de una celda a la vez (para prevenir otras eventualidades)
y al mismo tiempo aplicas la propiedad de bloqueada a las celdas que sea necesario
-> en el modulo de codigo de esa hoja:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then ActiveCell.Select
With ActiveCell
If .Locked Then Exit Sub
If Not IsEmpty(ActiveCell) And Not .Locked Then .Locked = True
End With
End Sub

saludos,
hector.
Respuesta Responder a este mensaje
#2 Yo mismo
10/10/2007 - 12:50 | Informe spam
Gracias Hector, peroo soy un bruto o no funciona. Se me olvidó decir que
es para Excel 2007.

"Héctor Miguel" wrote:

hola, (...) ???

> ... posibilidad... a una celda... que, una vez se ha escrito en ella, el contenido quede protegido automaticamente.
> He intentado hacerlo mediante la proteccion de celdas, pero eso me impide escribir en ella.
> Lo que yo quiero es que solo se proteja la celda cuando ya se ha escrito, y se haga sin intervencion de nadie.

necesitaras el apoyo de macros (y obviamente, que tu libro se abra con permiso se usarlas)

1) selecciona TODAS las celdas de esa hoja y quitales la marca de bloqueada
(menu: formato / celdas / proteccion -> bloqueada)

2) proteges la hoja en el evento '_open' de tu libro cada vez que se abra con la opcion de solo la interfase con el usuario
(excel se olvida de algunas caracteristicas como esta)
-> en el modulo de codigo del libro (ThisWorkbook)
Private Sub Workbook_Open()
Worksheets("hoja1").Protect "aBc", 1, 1, 1, 1
End Sub

3) sera necesario evitar que el usuario seleccione mas de una celda a la vez (para prevenir otras eventualidades)
y al mismo tiempo aplicas la propiedad de bloqueada a las celdas que sea necesario
-> en el modulo de codigo de esa hoja:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then ActiveCell.Select
With ActiveCell
If .Locked Then Exit Sub
If Not IsEmpty(ActiveCell) And Not .Locked Then .Locked = True
End With
End Sub

saludos,
hector.



Respuesta Responder a este mensaje
#3 Héctor Miguel
11/10/2007 - 00:15 | Informe spam
hola, (...) ???

...o soy un bruto o no funciona. Se me olvido decir que es para Excel 2007.



(yo creo que) ni lo uno... ni lo otro, y no importa la version de excel donde uses la propuesta ;)

podrias comentar que/como/... *hiciste* en cada uno de los tres pasos ?
(en que tipo de modulo copiaste/pegaste los codigos)

saludos,
hector.

__ las consultas anteriores __
... posibilidad... a una celda... que, una vez se ha escrito en ella, el contenido quede protegido automaticamente.
He intentado hacerlo mediante la proteccion de celdas, pero eso me impide escribir en ella.
Lo que yo quiero es que solo se proteja la celda cuando ya se ha escrito, y se haga sin intervencion de nadie.



necesitaras el apoyo de macros (y obviamente, que tu libro se abra con permiso se usarlas)

1) selecciona TODAS las celdas de esa hoja y quitales la marca de bloqueada
(menu: formato / celdas / proteccion -> bloqueada)

2) proteges la hoja en el evento '_open' de tu libro cada vez que se abra con la opcion de solo la interfase con el usuario
(excel se olvida de algunas caracteristicas como esta)
-> en el modulo de codigo del libro (ThisWorkbook)
Private Sub Workbook_Open()
Worksheets("hoja1").Protect "aBc", 1, 1, 1, 1
End Sub

3) sera necesario evitar que el usuario seleccione mas de una celda a la vez (para prevenir otras eventualidades)
y al mismo tiempo aplicas la propiedad de bloqueada a las celdas que sea necesario
-> en el modulo de codigo de esa hoja:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then ActiveCell.Select
With ActiveCell
If .Locked Then Exit Sub
If Not IsEmpty(ActiveCell) And Not .Locked Then .Locked = True
End With
End Sub
Respuesta Responder a este mensaje
#4 jobmondragon
12/10/2007 - 19:35 | Informe spam
On 10 oct, 17:15, "Héctor Miguel"
wrote:
hola, (...) ???

> ...o soy un bruto o no funciona. Se me olvido decir que es para Excel 2007.

(yo creo que) ni lo uno... ni lo otro, y no importa la version de excel donde uses la propuesta ;)

podrias comentar que/como/... *hiciste* en cada uno de los tres pasos ?
(en que tipo de modulo copiaste/pegaste los codigos)

saludos,
hector.

__ las consultas anteriores __



>>> ... posibilidad... a una celda... que, una vez se ha escrito en ella, el contenido quede protegido automaticamente.
>>> He intentado hacerlo mediante la proteccion de celdas, pero eso me impide escribir en ella.
>>> Lo que yo quiero es que solo se proteja la celda cuando ya se ha escrito, y se haga sin intervencion de nadie.

>> necesitaras el apoyo de macros (y obviamente, que tu libro se abra con permiso se usarlas)

>> 1) selecciona TODAS las celdas de esa hoja y quitales la marca de bloqueada
>> (menu: formato / celdas / proteccion -> bloqueada)

>> 2) proteges la hoja en el evento '_open' de tu libro cada vez que se abra con la opcion de solo la interfase con el usuario
>> (excel se olvida de algunas caracteristicas como esta)
>> -> en el modulo de codigo del libro (ThisWorkbook)
>> Private Sub Workbook_Open()
>> Worksheets("hoja1").Protect "aBc", 1, 1, 1, 1
>> End Sub

>> 3) sera necesario evitar que el usuario seleccione mas de una celda a la vez (para prevenir otras eventualidades)
>> y al mismo tiempo aplicas la propiedad de bloqueada a las celdas que sea necesario
>> -> en el modulo de codigo de esa hoja:
>> Private Sub Worksheet_SelectionChange(ByVal Target As Range)
>> If Target.Count > 1 Then ActiveCell.Select
>> With ActiveCell
>> If .Locked Then Exit Sub
>> If Not IsEmpty(ActiveCell) And Not .Locked Then .Locked = True
>> End With
>> End Sub- Ocultar texto de la cita -

- Mostrar texto de la cita -



oye hector, dime una cosa!!
en el apartado donde dice hoja 1, tiene que ir el nombre de la hoja a
bloquear? y en donde dice "aBc", 1, 1, 1, 1, se refiere a todas las
celdas de la hoja o solo a: A1, B1 Y C1?, y por ultimo como modifico
eso para usar esta macro para varias hojas y varias celdas?
me podrias explicar por favor?
Respuesta Responder a este mensaje
#5 Héctor Miguel
12/10/2007 - 22:45 | Informe spam
hola, !

__ 1 __
en el apartado donde dice hoja 1, tiene que ir el nombre de la hoja a bloquear?


__ 2 __
y en donde dice "aBc", 1, 1, 1, 1, se refiere a todas las celdas de la hoja o solo a: A1, B1 Y C1?


__ 3 __
y por ultimo como modifico eso para usar esta macro para varias hojas y varias celdas?



1) efectivamente, se trata del nombre (en la etiqueta) de "la hoja" a la que se aplica el codigo
si no se trata de la "hoja1"... le corresponde a quien lo necesite modificar al nombre "real"

2) se trata de los argumentos que utiliza el metodo ".Protect" para proteger hojas por codigo:
y que se corresponden con el password y los contenidos que seran bloqueados (p.e.)

<objeto_hoja>.Protect _
Password:="aqui pones tu password", _
DrawingObjects:=True, _
Contents:=True, _
Scenarios:=True, _
UserInterfaceOnly:=True

o simplemente en una linea: <objeto/hoja>.Protect "password", 1, 1, 1, 1

3) dado que la linea con el metodo protect no hace referencia explicita a ninguna celda, sino a los argumentos del metodo...
para usar la sugerencia en varias hojas, habria que hacer un bucle "For...Next" o una linea por cada hoja
y (ademas) considerar que los codigos por los eventos deberan incluirse en el moduo de codigo de cada hoja

se pueden "suponer" eventualidades, nombres de las hojas, etc. (pero creo que)...
sera mas precisa la propuesta si completas los detalles de lo que necesitas :))

saludos,
hector.

__ las consultas anteriores __
> ...o soy un bruto o no funciona. Se me olvido decir que es para Excel 2007.

(yo creo que) ni lo uno... ni lo otro, y no importa la version de excel donde uses la propuesta ;)

podrias comentar que/como/... *hiciste* en cada uno de los tres pasos ?
(en que tipo de modulo copiaste/pegaste los codigos)

... posibilidad... a una celda... que, una vez se ha escrito en ella, el contenido quede protegido automaticamente.
He intentado hacerlo mediante la proteccion de celdas, pero eso me impide escribir en ella.
Lo que yo quiero es que solo se proteja la celda cuando ya se ha escrito, y se haga sin intervencion de nadie.







necesitaras el apoyo de macros (y obviamente, que tu libro se abra con permiso se usarlas)





1) selecciona TODAS las celdas de esa hoja y quitales la marca de bloqueada
(menu: formato / celdas / proteccion -> bloqueada)





2) proteges la hoja en el evento '_open' de tu libro cada vez que se abra con la opcion de solo la interfase con el usuario
(excel se olvida de algunas caracteristicas como esta)
-> en el modulo de codigo del libro (ThisWorkbook)
Private Sub Workbook_Open()
Worksheets("hoja1").Protect "aBc", 1, 1, 1, 1
End Sub





3) sera necesario evitar que el usuario seleccione mas de una celda a la vez (para prevenir otras eventualidades)
y al mismo tiempo aplicas la propiedad de bloqueada a las celdas que sea necesario
-> en el modulo de codigo de esa hoja:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then ActiveCell.Select
With ActiveCell
If .Locked Then Exit Sub




>> If Not IsEmpty(ActiveCell) And Not .Locked Then .Locked = True
End With
End Sub
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida