En anteriores ocasiones ya he comentado en el blog, algunas formas para proteger nuestros trabajos de Excel. Entre ellas, una que consiste en leer el número de serie de un disco duro donde se abre el archivo Excel, para evitar que nuestro fichero corra de mano en mano, en el caso de que deseemos limitar el uso del mismo a una serie de usuarios registrados, o a aquellos que hayan pagado por utilizar el fichero.
Entiendo que hay gente que proteja sus trabajos, porque en muchas ocasiones, ha sido descomunal el esfuerzo y el tiempo invertido, como para que un día encontremos nuestros trabajos, circulando por Internet, y que sea otro quien acredite la propiedad intelectual de ese trabajo. Yo personalmente, no he protegido ningún fichero, y ni tan siquiera incluyo un copyright en el mismo. Alguna vez he incluido un enlace hacia este blog, simplemente para que el usuario no se olvide de pasarse por aquí de vez en cuando :-) pero nada más, en relación a la protección de ficheros.
En otra ocasión también hablé de cómo proteger un fichero Excel, para que no se pueda trabajar con él, si el usuario no introduce correctamente la contraseña que se solicita, cuando se abre el fichero. Esta opción es similar a la que ya incorpora Excel de forma nativa, y que también se explica al final de ese mismo artículo.
En esta ocasión vamos a ver como podemos utilizar otra técnica de protección que utilizan algunos programas en sus versiones trial o de demo. En esta ocasión, protegeremos nuestros trabajos de dos formas distintas:
- Limitando el número de veces que se usa el fichero.
- Limitando el uso del fichero a X días contados desde el primer uso.
Comenzaremos aplicando la primera de las técnicas, es decir, limitaremos el número de veces que se utiliza el fichero. Para ello, crearemos una hoja de control. Es decir, una hoja donde anotaremos las veces que se ha abierto el fichero. En el ejemplo que podéis descargar al final del artículo, el fichero consta de dos hojas normales, más esa tercera de control, que evidentemente tendremos oculta.
El macro que deberemos grabar en ThisWorkbook (no en un módulo), es este:
Private Sub Workbook_Open() 'Si hay errores, que continúe On Error Resume Next 'Ocultamos el procedimiento Application.ScreenUpdating = False 'Omitimos los mensajes de aviso Application.DisplayAlerts = False 'Desactivamos las teclas de cancelacion de macros Application.EnableCancelKey = xlDisabled 'Mostramos la Hoja3 que tenemos oculta Hoja3.Visible = True 'Sumaremos el contador de veces que se ha utlizado 'el fichero, cada vez que se abra el mismo Hoja3.Select 'si hemos llegado a los 10 usos (ponemos esta 'cantidad como límite, aunque la podéis cambiar) 'entonces mostraremos un mensaje y cerraremos 'el libro por haber cubierto el cupo de veces 'que podemos utilizar el fichero If Range("B1") >= 10 Then 'mostramos un mensaje MsgBox ("Lo siento, ya has trabajado con el fichero 10 veces," & _ Chr(10) + "tiempo más que suficiente para evaluar esta aplicación." & _ Chr(10) + Chr(10) + "Ha llegado el momento de comprarlo :-)") 'cerramos el fichero ThisWorkbook.Close Else 'si todavía no hemos llegado a los 10 usos, 'escribimos lo que nos interesa Range("A1") = "Veces abierto:" 'ponemos la fecha y hora del sistema Range("B1") = Range("B1") + 1 End If 'Ocultamos de nuevo la Hoja3 Hoja3.Visible = xlSheetVeryHidden 'grabamos los cambios ActiveWorkbook.Save 'Nos situamos en la Hoja1 Hoja1.Select 'Mostramos el procedimiento Application.ScreenUpdating = True End Sub |
Cuando abramos el fichero la 11ª vez, nos aparecerá este mensaje, y se cerrará el libro:
Vamos a ver ahora como podemos controlar el uso de nuestro fichero limitando el uso del fichero, a X días contados desde el primer uso.
Private Sub Workbook_Open() 'Si hay errores, que continúe On Error Resume Next 'Ocultamos el procedimiento Application.ScreenUpdating = False 'Omitimos los mensajes de aviso Application.DisplayAlerts = False 'Desactivamos las teclas de cancelacion de macros Application.EnableCancelKey = xlDisabled 'Mostramos la Hoja3 que tenemos oculta Hoja3.Visible = True 'Nos situamos en la Hoja3 Hoja3.Select 'Si es la primera vez que abrimos el fichero, 'ponemos la fecha de ese primer uso If Range("B1") = "" Then 'escribimos lo que nos interesa Range("A1") = "1ª apertura:" 'ponemos la fecha del sistema Range("B1") = Date Else 'si ya lo hemos abierto antes ese fichero, 'controlamos si hay más de 30 días de diferencia 'entre la primera apertura, y la apertura actual. 'También controlaremos si han caducado los 30 días, 'pero puede que el usuario haya puesto una fecha 'de sistema anterior a la del primer uso. En este caso 'fecha actual será anterior a esa del primer uso, 'por lo que también cerraremos el libro 'porque la fecha del sistema ha sido manipulada If Date - Range("B1") >= 30 Or Date - Range("B1") < 0 Then 'mostramos un mensaje indicando que 'ha caducado el uso del fichero MsgBox ("Lo siento, pero ya has trabajado con el fichero" & _ Chr(10) + "durante 30 días, desde su primer uso." & _ Chr(10) + Chr(10) + "Ha llegado el momento de comprarlo :-)") 'cerramos el fichero ThisWorkbook.Close End If End If 'Ocultamos de nuevo la Hoja3 Hoja3.Visible = xlSheetVeryHidden 'grabamos los cambios ActiveWorkbook.Save 'Nos situamos en la Hoja1 Hoja1.Select 'Mostramos el procedimiento Application.ScreenUpdating = True End Sub |
Cuando abramos el fichero transcurridos 30 días o más desde el primer uso del fichero, nos aparecerá este mensaje, y se cerrará el libro:
El mensaje anterior también nos aparecerá en el caso de que el usuario haya sido espabilado, y haya cambiado la fecha del sistema y haya puesto una fecha anterior a la del primer uso.
No obstante, este último sistema de protección mediante control de fechas, tiene un pequeño inconveniente. ¿Qué pasa si el usuario manipula y pone como fecha de su sistema (fecha de su PC), una fecha que esté entre la fecha del primer uso, y esos 30 días de caducidad?. Pues efectivamente, que el usuario puede utilizar la aplicación indefinidamente, simplemente cambiando la fecha de su ordenador, y poniendo una fecha que esté dentro de los 30 días contados desde la primera vez que uso el fichero. Este mismo defecto, es habitual encontrarlo en el software de demo, o trial que los fabricantes ponen e nuestra disposición, para evaluar si cubre nuestras necesidades y en tal caso comprarlo. También ellos adolecen de este error de protección.
¿Cómo podemos solucionar este pequeño contratiempo?. Pues haciendo un mix entre el primer sistema de protección, es decir, controlando la caducidad a los 10 usos, más la limitación de uso a 30 días más allá de la fecha del primer uso. Mezclando ambos sistemas, tenemos todo controlado. Este es el macro:
Private Sub Workbook_Open() 'Si hay errores, que continúe On Error Resume Next 'Ocultamos el procedimiento Application.ScreenUpdating = False 'Omitimos los mensajes de aviso Application.DisplayAlerts = False 'Desactivamos las teclas de cancelacion de macros Application.EnableCancelKey = xlDisabled 'Mostramos la Hoja3 que tenemos oculta Hoja3.Visible = True 'Nos situamos en la Hoja3 Hoja3.Select 'Si hemos llegado a los 10 usos (ponemos esta 'cantidad como límite, aunque la podéis cambiar) 'entonces mostraremos un mensaje y cerraremos 'el libro por haber cubierto el cupo de veces 'que podemos utilizar el fichero If Range("B1") >= 10 Then 'mostramos un mensaje MsgBox ("Lo siento, ya has trabajado con el fichero 10 veces," & _ Chr(10) + "tiempo más que suficiente para evaluar esta aplicación." & _ Chr(10) + Chr(10) + "Ha llegado el momento de comprarlo :-)") 'cerramos el fichero ThisWorkbook.Close Else 'si todavía no hemos llegado a los 10 usos, 'escribimos lo que nos interesa Range("A1") = "Veces abierto:" 'ponemos la fecha y hora del sistema Range("B1") = Range("B1") + 1 'Ahora controlamos la fecha y el 'límite de los 30 días de uso If Range("B2") = "" Then 'escribimos lo que nos interesa Range("A2") = "1ª apertura:" 'ponemos la fecha del sistema Range("B2") = Date Else 'si ya lo hemos abierto antes ese fichero, 'controlamos si hay más de 30 días de diferencia 'entre la primera apertura, y la apertura actual. 'También controlaremos si han caducado los 30 días, 'pero puede que el usuario haya puesto una fecha 'de sistema anterior a la del primer uso. En este caso 'fecha actual será anterior a esa del primer uso, 'por lo que también cerraremos el libro 'porque la fecha del sistema ha sido manipulada If Date - Range("B2") >= 30 Or Date - Range("B2") < 0 Then 'mostramos un mensaje indicando que 'ha caducado el uso del fichero MsgBox ("Lo siento, pero ya has trabajado con el fichero" & _ Chr(10) + "durante 30 días, desde su primer uso." & _ Chr(10) + Chr(10) + "Ha llegado el momento de comprarlo :-)") 'cerramos el fichero ThisWorkbook.Close End If End If End If 'Ocultamos de nuevo la Hoja3 Hoja3.Visible = xlSheetVeryHidden 'grabamos los cambios ActiveWorkbook.Save 'Nos situamos en la Hoja1 Hoja1.Select 'Mostramos el procedimiento Application.ScreenUpdating = True End Sub |
Con todo lo explicado en las otras entradas del blog a las que hacía referencia al principio de este artículo, más lo explicado aquí, creo que ya tenéis las herramientas imprescindibles para proteger la propiedad intelectual de vuestros trabajos. Si combináis todas las técnicas juntas, y encima protegéis las hojas y el código VBA con unas contraseñas que combinen letras, números, y signos (exclamación, arroba, comas, etc.), le pondréis las cosas más difíciles a quien intente apropiarse de vuestro trabajo intelectual.
Desde aquí podéis descargar un fichero comprimido, con tres libros de Excel, cada uno de ellos con los ejemplos que hemos visto en este artículo: protección para 10 usos, protección para 30 días de uso, y protección de ficheros Excel con ambos sistemas.
24 comentarios:
Apreciado Javier:
Muy interesante todo lo planteado en tu artículo, pero al igual que tu, definitivamente considero que lo que se desea compartir pues que vaya sin seguros, el resto (lo que se vende a cliente o algo parecido) pues lleve el "sofisma" de la seguridad y digo "sofisma" porque la seguridad absoluta en Excel (y en general en Office) no existe! Es más, el mismo Microsoft, con todo y sus millones en investigación y desarrollo, no ha logrado la seguridad para sus productos, mucho menos un pobre mortal como yo podría hablar de seguridad.
Sin embargo se hace lo que mejor se puede y como decimos por acá en estas latitudes, "en tierra de ciegos, el tuerto es rey"; es decir, como un gran porcentaje de usuarios de Excel no saben o no manejan el tema de "seguridad" para Excel, resulta fácil aplicar algunos truquillos de "seguridad" y así logramos que cierta información o diseño no queden a simple vista, pero cuando este archivo llega uno de esos "verdaderos expertos", pues nada que hacer, no hay seguridad que valga. Hace poco tiempo hice una prueba colocando en la red un archivo con unos muy buenos niveles de protección (en mi modesto entender) y dentro del nivel mas alto de seguridad (password en el editor de VBA) coloqué un mensaje que decía algo así como esto:
"Saludos! si usted llegó hasta aquí y está leyendo este mensaje es por que sus herramientas para vulnerar la seguridad de Excel son muy buenas; lo Felicito y permítame conocerlo escribiéndome a mi correo xxxx@xxx.xxx; será todo un placer conocerlo!."
Pues bien amigo Javier, cual sería mi sorpresa cuando recibí cinco (5) correos de diferentes personas citando mi invitación.
En síntesis creo que la seguridad en materia informática es más como la ventaja sobre a ignorancia de los demás que verdadera seguridad.
Gracias por tu aporte y un abrazo desde Colombia
ElProfe
Hola ElProfe. Estoy completamente de acuerdo con tus comentarios. Ni una sola pega a los mismos, porque los comparto plenamente.
Hoy en día te encuentras con jóvenes de 15 o 16 años, que son capaces de entrar en los sistemas de la NASA, o de descodificar un DVD en un plis-plas, así que imagina lo que deben tardar en descubrir uo, dos, o veinte passwords en un fichero excel.
He intentado explicar algunas cosillas básicas para esos usuarios que llegan al blog buscando como proteger sus trabajos, y que seguramente le pondrán las cosas un poco más difíciles a los usuarios noveles de Excel, esos que son unos inquietos y quieren descubrir todos los entresijos que hay tras el telón. Para el resto, seguramente son barreras inútiles, pero la verdad es que de estos, aunque los hay, tampoco son tantos :-)
Buenos días Javier:
Antes que nada, me gustaria felicitarte por el magnífico blog que compartes con nosotros. Tus entradas me han sido de valiosísima ayuda.
Estoy realizando un proyecto excel para unos amigos que llevan un bar y lo necesitan para aclararse con las cuentas al final del dia.
Tengo por costumbre usar los nombres de rango para las formulas asi las escribo de manera que me sea más fácil seguirles la pista posteriormente cuando me piden algun cambio (nunca se están los clientes conformes con lo que se tiene...) y hace poco me metí con el tema de mas macros para abarcar situaciones que con las funciones de cálculo existentes en excel no podía.
Y ahí llegó mi talón de aquiles... ¿¿como usar las etiquetas en las macros?? busqué y busqué pero no encontré nada que me ayudase a hacer lo que quería de modo que realizé mi propia función para trabajar con las macros.
Me gustarñia compartirla con los demás usuarios/visitantes de este blog pero no encontré forma de enviártela para que pudieses verla, de modo que me he decidido a publicarla en un comentario dentro de la última entrada a día de hoy de tu blog.
La función es la siguiente:
Private Function »(ByVal nombre As String) As String
Dim buscar As String
buscar = ActiveSheet.Name & "!" & nombre
' se le añade la referencia a la hoja en uso para poder encontrarlas. las etiquetas tienen que estar creadas teniendo como ámbito la hoja en cuestión.
For Each etiqueta In ActiveWorkbook.Names 'buscamos en la lista de nombres de rango de la hoja el que concuerde con el que busco
If etiqueta.Name = buscar Then ' si lo encuentro
» = etiqueta.RefersTo 'devuelvo la/s celda/s a la/s que hace referencia
Exit Function 'termino la función para evitar buscar más si ya tengo la respuesta
End If
Next etiqueta
MsgBox "ETIQUETA " & buscar & " NO ENCONTRADA" ' si llegamos a esta linea mostramos un mensaje de error
End Function
Tiene que ser incluida dentro de VBA de la hoja en la que se quiera usar.
El uso es muy sencillo, basta poner algo como »("NOMBRE_ETIQUETA") y la función devolverá el rango de celdas que lo compone.
Por ejemplo:
Si las celdas A2,A9 y B15 tuviesen una etiqueta como pudiesa ser "TOTALES_PARCIALES"
Range("A2","A9","B15").select
Podría escribirse como:
Range(»("TOTALES_PARCIALES")).select
De modo que no tendríamos que estar lidiando con rutas absolutas y si por algún casual se mueven dichas celdas, como el nombre de rango es actualizado automáticamente por Excel, no tendríamos que preocuparnos por nada.
Un saludo y espero que les sea util a los lectores.
(He borrado los comentarios anteriores por erratas y para poner explicaicones necesarias para que fuese bien entendida la función)
Hola Amigo expertos, bueno tengo una duda no se si me podrian ayudar quiero decorar un formulario con nuevos colores como hago para añadir nuevos colores en el editor de vb en la propiedad BackColor
Elprofe excelente sitio me ha sido útil ahora que lo encontré, espero me puedas ayudar, necesito evitar que copien un archivo de Excel que tengo en la red de la oficina, todos lo deben usar pero nadie debe copiarlo a su PC o memoria, saludos cordiales
Es un tema de Windows, no de Excel. Imagino que el fichero lo tienes alojado en el servidor, así que los permisos los tendrás que dar desde él (lectura, ejecución, control total, etc).
También deberás inhabilitar las conexiones USB de los puestos de trabajo, para que nadie saque info de la empresa...
Yo no estoy puesto en estos temas, pero te invito que te pases por el subforo de Seguridad y redes corporativas de forosdelweb.com:
http://www.forosdelweb.com/f89/
Saludos
No creas que son tan pocos los que podrían vulnerar la "seguridad" de Excel; sin necesidad de encuestas podemos establecer lo siguiente: cualquiera que desee manipular un archivo protegido y lo intente, lo hará.
Con todo respeto, pero si buscamos en internet como hacerlo, nos llueven propuestas, e incluso sin buscarlo podemos ver nuestras maravillosas macros VBA si lo abrimos en Calc !! O sea que una macro que trabaje en una hoja protegida mostrará la contraseña, etc etc ...
Completamente de acuerdo con tu observación, pero ¿crees que son tantos esos usuarios?. Yo pienso que no, la verdad...
pero depues de que pase el tiempo o los dias, por ejemplo el de la apertura de 10 dias hay alguna forma de abrir el archivo nuevamente para modificar el codigo o para quitar la macro.
Pues dependiendo del sistema de protección, deberías hacer alguna de estas cosillas:
- Cambiar la fecha del sistema (del ordenador), para que esté dentro del rango de esos 30 días de uso.
- Tener una copia original sin protección, para hacer cambios y demás.
hola, que tal tu blog es muy interesante y en especial este tema.
Utilice un codigo de los que publicaste y lo quize modificar para comparatar un dato en una hoja de excel con una clave escrita en VBA del mismo archivo para que si eran iguales, accediera al archivo y si no, salga del mismo. pero no me respeta el codigo.
Ocupe el que tiene contador a 10 y lo modifique para comparar el dato de la siguiente manera:
Hoja3.Select
clave = "abcdef"
If Range("B1") <> clave Then
MsgBox ("la clave modificada en el archivo de excel es incorrecta")
ThisWorkbook.Close
Else
MsgBox ("El acceso esta autorizado")
End If
y el resto que tienes, el problema es que aunque las claves sean diferentes me permite el acceso.
Espero puedas ayudarme con esto
Mírate este artículo: Proteger un libro de excel. Quizás pueda serte de utilidad.
En estos momentos estoy de vacaciones, y no vuelvo hasta septiembre.
Un saludo.
Javier!!, buen día que tal!. Te escribo de nuevo puesto que tengo una consulta.
Me he leído todo el blog y no encuentro "cómo hacer para que cada vez que se abre el Excel no se desactiven los Macross automáticamente (dándote a solicitar tu decisión)". Eso es de gran inconveniente para esta publicación.
Gracias, por su ayuda!
Mírate lo que le contesté a Medianoche Tropical en este otro artículo: ejecutar un macro al abrir o cerrar un fichero.
Saludos
Hola Javier, gracias por tu respuesta. Si me imaginaba algo parecido.
Valla, entonces habrá una forma que mis archivos nos corran sin la activación de Macross?.
Hola Javier. Vengo siguiendo tu blog varias semanas y recién se me ha presentado un problema, maestro.
Me gustaría saber si puedo hacer que una hoja en un fichero de excel aparezca únicamente cuando se trabaja con macross.
Es decir, solamente cuando activo el macross una hoja del excel aparezca con determinada información confidencial mía.
Muchas gracias de ante mano. Suerte
Daniel, ten presente que con macros se pueden borrar ficheros, y encima sin avisar de que se van a borrar (sin mostrar los típicos avisos de Excel). Si con Excel se pudiera hacer eso, sin haber habilitado previamente las macros de forma expresa por parte del usuario, estaríamos ante un problema muy grave de seguridad. De ser así, yo te podría mandar un fichero maldito, y la liaríamos.
Por eso, siempre debe ser el usuario quien habilite las macros. No obstante, creo que se puede conseguir lo que quieres, con una firma digital añadida al fichero, pero sería complicar el tema, una barbaridad, porque entrarían en juego autoridades de certificación y demás. Mírate este link:
http://office.microsoft.com/es-es/excel-help/agregar-una-firma-digital-a-un-archivo-o-proyecto-de-macro-HP005249557.aspx
Xander, échale un vistazo a este artículo, y descárgate el fichero de ejemplo: mostrar y ocultar hojas con macros.
No olvides proteger el código VBA (en el ejemplo está desprotegido para que lo veais).
Hola Javier,
Como tu dices, poner medidas de protección con macros en el excel no asegura una seguridad del fichero ya esta misma macro o software que circula por la red lo desprotege en unos segundos.
Es por ello que, yo soy partidario de proteger además mis ficheros con algoritmos dentro del propio código VBA. Hay muchos maneras, por ejemplo en una linia de código que fuese x=x+1, la coonvierto en x=x+y. Y que es Y?. Pues es una variable que en otra parte del código recoge el mes y año del PC, lo divido por 052012 y por tanto si el programa se usa en otro mes que no sea mayo 2012, la variable x tendrá un valor no válido, por lo que el fichero trabajará incorrectamente.
La idea es que cualquier joven de 15 años conun minimo de conocimientos informáticos puede desproteger el código en un segundo, pero si te dedicas a poner 5 o 10 algoritmos de protección, la única manera de conseguir que el fichero funcione correctamente es ir validando todo el código , lo que puede llevar muchas horas para dilucidar los "huevos de pascua".
Se puede complicar si se ponen varios algoritmos trampa que no sirven de nada pero que confunden a quien no sabe que busca y ademas las variables las defines con nombres similares
xdfsfsgfg=gkrthlrphrphk+gdfgdgfd
xdfsjsffg=gkrihlrphtphk+gdfgdmfd
xdfsasgfg=gkrnhlrphrphk+gdfkdgfd
xdfsfsgfg=gkthlrphrphk+gdfgdcrd
xdfsfsgfg=gkruthlrphrphk+gdngdgfd
...
búscalo :-)
Se que no es muy ortodoxo, pero para aquello que tenemos ficheros con macros que queremos proteger es muy útil, y seguramente habrá quien pueda encontrar los bugs, pero mis ficheros tampoco merecen invertir tanto tiempo :-)
buen dia!!!
utilice su macro limitando el numero de veces que se usa el fichero y CALIDAD MUCHISIMAS GRACIAS
envie el archivo a una persona interesada y digito informacion guardo el archivo cuando utilizo el numero de veces se le cerro MI PREGUNTA como poner una clave o una macro para que yo pueda recuperar el archivo utilizado y asi poder venderselo GRACIAS POR SU AYUDA
Puedes crear un password para abrir el fichero solo sabiendo la contraseña, de esta forma: proteger un libro de excel.
Aunque para lo que quieres hacer, te bastará con abrir el fichero deshabilitando las macros, localizando la hoja donde tienes el límite de aperturas del libro (en el ejemplo son 10), cambiando ese valor para resetearlo y ponerlo a cero, y volviendo a guardar el fichero de nuevo. Luego habilitas de nuevo las macros, y listo, pues cuando lo vuelvas a abrir el contador se iniciará nuevamente.
Buenas tardes.
Estoy buscando una información sobre Excel en internet y he encontardo su blog y me parece de lo mas interesante. Es de agradecer cuando algo tan interesante se comparte, GRACIAS.
La información que estoy buscando es como poder proteger una hoja de calculo que he preparado para declinar los verbos en frances y quiero colgarla en un blog, pero para evitar que los que la utilicen se equivoquen y pueden estropearla, quiero bloquar las celdas en las que están las formulas de manera que queden desprotegidas las celdas en las que hay que poner el verbo en frances y el significado en español.
Hasta aqui bien, utilizando la protección de excel ( 2010).
El problema es que al habilitar la protección deja de rellenar automaticamente cuando ponemos un verbo nuevo en una fila.
Me explico. Si la hoja no esta protegida, cuando pongo un verbo nuevo, aunque no tenga las formulas metidas en las celdas, excel rellena automanticamente con las formulas de las celdas superiores y así en cuanto pones un verbo nuevo se declina solo ( así evitamos tener que copiar las formulas en un número límitado de filas y que aparezca en la celda el error de formula hasta que se rellene la celda del verbo en frances). Pero en cuanto proteges las hojas se inhabilita la funcion de autorellenado de las celdas.
¿Hay alguna manera de hacerlo para que protegiendo las celdas mantenga la función de autorellenado de las celdas?
Mil Gracias.
En principio, la función autocompletar denería funcionarte, aún con la hoja protegida. De hecho, deberías tener puesta una muesca en: Archivo ---> Opciones ---> Avanzadas ---> Habilitar autocompletar para valores de celda.
Tanto si proteges la hoja como si no, debería funcionarte la función autocompletar.
Pues tengo la casilla de autocompletar marcada y en cuanto protejo la hoja deja de autocompletar. No se si por las opciones que se marcan al bloquar las celdas.
Publicar un comentario