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

#6 jobmondragon
13/10/2007 - 01:22 | Informe spam
On 12 oct, 15:45, "Héctor Miguel"
wrote:
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- Ocultar texto de la cita -

- Mostrar texto de la cita -



hola gracias por tu respuesta, pero para ser mas preciso, te explico
que tengo un libro con varias hojas, entonces, en cada una de ellas
necesito bloquear las celdas despues de que sean escritas con datos,
para con ello ir guardando esos datos en otra hoja, la cual se llama
base de datos y de esa manera evitar que alguno mas de los que
utilizamos este libro, borre accidental o intencionalmente los datos,
ya que de ellos depende el flujo de informacion, por eso mismo te
preguntaba como puedo hacer eso, te explico: tengo en la hoja:
"inventarios" una macro por cada local que manejamos y esta manda la
informacion capturada en esa hoja a la hoja "base de datos" y en esta
ultima, voy a crear una nueva macro, para que al momento de estar
situado en una celda, copie los datos desde las columnas en las cuales
la macro de inventarios mando la informacion, ya que es diario y son
tres turnos, y los guarde o pegue en las columnas de acuerdo a la
fecha que sea, pero no se como puedo hacer esas dos macros: 1a para
pasar los datos a la columna donde este la celda activa, es decir, si
tengo seleccionada la celda f1 que la informacion se pegue en esta
columna y la 2a para que una vez que lo anterior se alla logrado, se
protega dicha informacion y ya no se pueda eliminar o sobreescribir
sin una contraseña
crees poder ayudarme?
Respuesta Responder a este mensaje
#7 Héctor Miguel
13/10/2007 - 01:57 | Informe spam
hola, !

__ 1 __
... tengo un libro con varias hojas... en cada una... necesito bloquear las celdas despues de que sean escritas


__ 2 __
... para... ir guardando esos datos en otra hoja, la cual se llama base de datos
... por eso mismo te preguntaba como puedo hacer eso [...]


__ 3 __
... tengo en la hoja: "inventarios" una macro por cada local que manejamos
... esta manda la informacion capturada en esa hoja a la hoja "base de datos"


__ 4 __
... esta ultima, voy a crear una nueva macro, para que al... estar situado en una celda copie los datos
... desde las columnas en las cuales la macro de inventarios mando la informacion
... y los guarde o pegue en las columnas de acuerdo a la fecha que sea


__ 5 __
pero no se como puedo hacer esas dos macros: 1a para pasar los datos a la columna donde este la celda activa
es decir, si tengo seleccionada la celda f1 que la informacion se pegue en esta columna
y la 2a para que una vez que lo anterior se alla logrado, se protega dicha informacion
y ya no se pueda eliminar o sobreescribir sin una contrasena crees poder ayudarme?



1) si suponemos que los nombres de *esas* hojas son: "hoja1", "hoja25" y "hoja57"
puedes armar el bucle comentado para el evento '_open' en el modulo de codigo (ThisWorkbook) +/- como sigue:

Private Sub Workbook_Open()
Dim Hoja As Worksheet
For Each Hoja In Worksheets(Array("hoja1", "hoja25", "hoja57"))
Hoja.Protect "aqui tu password", 1, 1, 1, 1
Next
End Sub

2) para este punto es indispensable conocer (exactamente) de donde (rangos origen) pasar a donde (rango destino)
y en que momento, y los nombres de las hojas (y algunos otros detalles que no se alcanzan a ver desde este lado del mensaje)

3) tambien es conveniente que expongas lo que hace la macro, y como es que la ejecuta el usuario ???

4) este punto (a mi parecer) contiene un "abanico" de posibilidades/eventualidades/... sumamente amplio
(no me atrevo a proponer nada, sin antes estar cierto de lo que estamos hablando) :D

5) por el estilo de los puntos anteriores :-((

(OT):
cuando tengas un "tiempecito de ocio"... date una vuelta por: -> http://excel4all.spaces.live.com/
(probable o seguramente) entenderas el por que es que re/preguntamos (a veces) los detalles que se dejan "en el tintero"
detalles en terminos de excel (rangos, hojas, como, cuando, de donde, a donde, por que (si o no), etc.)

o prueba a subir un archivo (con datos exactos e instrucciones) en un sitio de hospedaje (gratuito)
-> para que lo descargue quien quiera participar en ofrecer propuestas

saludos,
hector.
Respuesta Responder a este mensaje
#8 jobmondragon
13/10/2007 - 02:57 | Informe spam
On 12 oct, 18:57, "Héctor Miguel"
wrote:
hola, !

__ 1 __





> ... tengo un libro con varias hojas... en cada una... necesito bloquear las celdas despues de que sean escritas
__ 2 __
> ... para... ir guardando esos datos en otra hoja, la cual se llama base de datos
> ... por eso mismo te preguntaba como puedo hacer eso [...]
__ 3 __
> ... tengo en la hoja: "inventarios" una macro por cada local que manejamos
> ... esta manda la informacion capturada en esa hoja a la hoja "base de datos"
__ 4 __
> ... esta ultima, voy a crear una nueva macro, para que al... estar situado en una celda copie los datos
> ... desde las columnas en las cuales la macro de inventarios mando la informacion
> ... y los guarde o pegue en las columnas de acuerdo a la fecha que sea
__ 5 __
> pero no se como puedo hacer esas dos macros: 1a para pasar los datos a la columna donde este la celda activa
> es decir, si tengo seleccionada la celda f1 que la informacion se pegue en esta columna
> y la 2a para que una vez que lo anterior se alla logrado, se protega dicha informacion
> y ya no se pueda eliminar o sobreescribir sin una contrasena crees poder ayudarme?

1) si suponemos que los nombres de *esas* hojas son: "hoja1", "hoja25" y "hoja57"
puedes armar el bucle comentado para el evento '_open' en el modulo de codigo (ThisWorkbook) +/- como sigue:

Private Sub Workbook_Open()
Dim Hoja As Worksheet
For Each Hoja In Worksheets(Array("hoja1", "hoja25", "hoja57"))
Hoja.Protect "aqui tu password", 1, 1, 1, 1
Next
End Sub

2) para este punto es indispensable conocer (exactamente) de donde (rangos origen) pasar a donde (rango destino)
y en que momento, y los nombres de las hojas (y algunos otros detalles que no se alcanzan a ver desde este lado del mensaje)

3) tambien es conveniente que expongas lo que hace la macro, y como es que la ejecuta el usuario ???

4) este punto (a mi parecer) contiene un "abanico" de posibilidades/eventualidades/... sumamente amplio
(no me atrevo a proponer nada, sin antes estar cierto de lo que estamos hablando) :D

5) por el estilo de los puntos anteriores :-((

(OT):
cuando tengas un "tiempecito de ocio"... date una vuelta por: ->http://excel4all.spaces.live.com/
(probable o seguramente) entenderas el por que es que re/preguntamos (a veces) los detalles que se dejan "en el tintero"
detalles en terminos de excel (rangos, hojas, como, cuando, de donde, a donde, por que (si o no), etc.)

o prueba a subir un archivo (con datos exactos e instrucciones) en un sitio de hospedaje (gratuito)
-> para que lo descargue quien quiera participar en ofrecer propuestas

saludos,
hector.- Ocultar texto de la cita -

- Mostrar texto de la cita -



lo que comento es lo siguiente:
A1 B1 C1 D1 E1 F1 G1 H1--
COLUMNAS L1 M1 N1 O1 P1 Q1 R1 S1
L1 L2 L3 L4 L5 L6 L7 L8--
LOCALES L1 L2 L3 L4 L5 L6
L7 L8
12 23 12 10 7 12 32 45--DATOS Q ENVIA LA MACRO
1 necesito transcribir los datos a estas columnas
24 35 23 13 4 13 30
54 si estoy
en la columna L1, copiar los datos de la
35 56 11 34 5 23 29
90 columna
A1 y si estoy en la columna M1 copiar
67 98 9 12 1 45 76
10 los datos
de la colum B1 y asi sucesivamente
89 23 41 10 14 67 31
105 al decir
"si estoy", me refiero a que la celda de

columna es la celda activa!!
despues de hacer lo anterior, necesito proteger los rangos o
bloquearlos contra escritura.
con esto me podrias ayudar?
mil gracias por tu finisima atencion y paciencia.
saludos
Job
Respuesta Responder a este mensaje
#9 Héctor Miguel
13/10/2007 - 05:02 | Informe spam
hola, Job !

no lo tomes a mal, pero (por esta ocasion) prefiero esperar...
a ver si alguien "descifra" (con mayor lucidez) el contenido de tu mensaje
(y el fondo del asunto... y lo que hace la macro... y cual hoja es cual... y ???)

saludos (y una disculpa),
hector.

p.d. ya te diste una vuelta ??? por: -> http://excel4all.spaces.live.com/
o prueba a subir un archivo (con datos exactos e instrucciones) en un sitio de hospedaje (gratuito)

__ la consulta "detallada" (tal como paso por mi lector) __
lo que comento es lo siguiente:
A1 B1 C1 D1 E1 F1 G1 H1--
COLUMNAS L1 M1 N1 O1 P1 Q1 R1 S1
L1 L2 L3 L4 L5 L6 L7 L8--
LOCALES L1 L2 L3 L4 L5 L6
L7 L8
12 23 12 10 7 12 32 45--DATOS Q ENVIA LA MACRO
1 necesito transcribir los datos a estas columnas
24 35 23 13 4 13 30
54 si estoy
en la columna L1, copiar los datos de la
35 56 11 34 5 23 29
90 columna
A1 y si estoy en la columna M1 copiar
67 98 9 12 1 45 76
10 los datos
de la colum B1 y asi sucesivamente
89 23 41 10 14 67 31
105 al decir
"si estoy", me refiero a que la celda de

columna es la celda activa!!
despues de hacer lo anterior, necesito proteger los rangos o
bloquearlos contra escritura...
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida