Cómo funciona JustAnswer:

  • Preguntar a un Experto
    Los expertos tienen muchos conocimientos valiosos y están dispuestos a ayudar en cualquier pregunta. Credenciales confirmadas por una empresa de verificación perteneciente a Fortune 500.
  • Obtener una respuesta profesional
    Por correo electrónico, mensaje de texto o notificación mientras espera en su sitio.
    Haga preguntas de seguimiento si lo necesita.
  • Garantía de satisfacción plena
    Garantizamos tu satisfacción.

Formule su propia pregunta a Rubén Díaz

Rubén Díaz
Rubén Díaz, Técnico en computación, informática
Categoría: Informática
Clientes satisfechos: 389
Experiencia:  Más de 7 años de experiencia en soporte informático in-situ y remoto, con conocimientos en equipos Windows, Mac, Smartphone y periféricos.
51963821
Escriba su pregunta sobre Informática aquí...
Rubén Díaz está en línea ahora

En una plantilla de Excel con macro, tengo varias columnas

Pregunta del cliente:

En una plantilla de Excel con macro, tengo varias columnas con fórmulas que habitualmente el operador borra la misma por tipear mal. Deseo bloquear todas las celdas que tienen fórmulas y que mientras éstas estén bloqueadas funcione la macro. Es decir, si desbloqueamos la hoja hacemos correr la Macro y volvemos a bloquear, no me sirve.-
Puedes decirme si es posible lo que pretendo?
Enviada: hace 4 año.
Categoría: Informática
Experto:  Rubén Díaz escribió hace 4 año.

Rubén Díaz :

Bienvenido al servicio de asistencia informática de Just answer.

Rubén Díaz :

Hola, buenos días,

Rubén Díaz :

En estos casos, lo más sencillo que puedes hacer es bloquear la hoja y que la macro la desbloquee cuando necesite acceder a los datos, bloqueándola de nuevo al terminar.

Customer:

La pregunta fue muy clara. No quiero que la plantilla (Hoja) de desbloquée para que opere la Macro, porque justamente allí es cuando la persona que digita o tipea (son varias) comete el error de borrar fórmulas. Entonces mi pregunta apunta a que siempre la plantilla esté bloqueada, aquellas celdas que tienen fórmulas, y que permita hacer correr la Macro sin desbloquear, se entiende?

Rubén Díaz :

Para hacer eso, podría incluir algo así al inicio de su macro:

Sheets("Formulario. Shiv"). Unprotect "clave"

Sustituyendo el nombre "formulario" por el de la hoja en concreto que estés usando, o, simplemente por activesheet. Y, naturalmente, cambiando la palabra "clave" por la contraseña que uses en la hoja. Este argumento, al igual que cuando trabajas directamente en la hoja, es opcional. Es decir, que tienes la opción de bloquear y desbloquear sin contraseña.

Y, cuando termines la ejecución de la macro, vuelves a bloquear la hoja del mismo modo. Esta vez, el código sería:

Sheets("Formulario. Shiv"). Protect "clave"


Pruebelo a ver si puede resolverlo de este modo.

Saludos.

Customer:

Entonces tu me dices que la macro no opera si la planilla de cálculo (la hoja en éste caso) está bloqueada?

Rubén Díaz :

La fórmula que le he indicado, tendría que ir agregada al principio y final de cada macro, de tal modo que cuando la macro tenga que ejecutarse estando la hoja bloqueada, dicha macro la desbloquea automáticamente y la vuelve a bloquear una vez que se ha ejecutado.

Rubén Díaz :

Planteandolo de otro modo, en la primeroa línea del macro (o en la segunda, si es que en la primera tiene el Application.ScreenUpdating = False), se pondría esto (mantén las comillas dobles, tal y como lo pongo):


Código:
'desprotegemos la hoja ActiveSheet.Unprotect "aqui_tienes_que_poner_el_password_de_tu_hoja"


Y en la última línea (o penúltima, si tienes al final Application.ScreenUpdating = True):


Código:
'protegemos la hoja ActiveSheet.Protect "aqui_tienes_que_poner_el_password_de_tu_hoja"


De esa forma, desproteges la hoja antes de ejecutar las instrucciones del macro, y al finalizar las instrucciones, vuelves a protegerla.

Customer:

Gracias Rubén, voy a probar y luego te cuento

Rubén Díaz :

De acuerdo, estaré a la espera de sus comentarios

Rubén Díaz :

Saludos.

Customer:

Rubén. He probado de dos formas, agregando al comienzo y al final como me sugeriste y no consigo respuesta favorable. El tema es así: -la plantilla tiene suponte 22 líneas, cuando se llenó la última línea hago funcionar la macro para que borre toda la información de las 22 líneas pero reserve los totales de esa primera hoja para ser aplicado en la segunda hoja y así sucesivamente. Para hacer correr la Macro hago "Ctrl t".-

Rubén Díaz :

De acuerdo, en principio debería de funcionar en cualquier macro siempre y cuando las sintaxis estén bien definidas, por favor verifiquelo y compruebe si no contiene algún error en la escritura de los comandos.

Customer:

Rubén. Te mando el comienzo de la sintaxis y el final para que me corrijas:

Rubén Díaz :

De acuerdo, copielo y péguelo aquí por favor.

Customer:

Sub Macro1()
'
' Macro1 Macro
' Macro grabada el 15/03/2007 por Registro del Automotor
'
' Acceso directo: CTRL+t
'
ActiveSheet.Unprotect "422"
ActiveWindow.LargeScroll Down:=1
Range("A43").Select
Selection.Copy
ActiveWindow.LargeScroll Down:=-1
Range("A10").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.LargeScroll Down:=1
Range("AB43").Select
Application.CutCopyMode = False
Selection.Copy
Range("X43").Select
ActiveWindow.LargeScroll Down:=-1
Range("X9").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.LargeScroll Down:=1
Range("AC43").Select
Application.CutCopyMode = False
Selection.Copy
Range("Y43").Select
ActiveWindow.LargeScroll Down:=-1
Range("Y9").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.LargeScroll Down:=1
Range("AD43").Select
Application.CutCopyMode = False
Selection.Copy
Range("Z41").Select
ActiveWindow.LargeScroll Down:=-1
Range("Z9").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.LargeScroll Down:=1
Range("AE43").Select
Application.CutCopyMode = False
Selection.Copy
Range("AA41").Select
ActiveWindow.LargeScroll Down:=-1
Range("AA9").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("AA35").Select
ActiveWindow.LargeScroll Down:=1
Range("AF43").Select
Application.CutCopyMode = False
Selection.Copy
Range("R41").Select
ActiveWindow.LargeScroll Down:=1
Range("R75").Select
ActiveWindow.LargeScroll Down:=-1
Range("R41").Select
ActiveWindow.LargeScroll Down:=-1
Range("R9").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.LargeScroll Down:=1
Range("AA43").Select
ActiveWindow.LargeScroll Down:=-1
Range("B10:F10").Select
ActiveWindow.LargeScroll Down:=1
Range("B10:F40").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("L10:M10").Select
ActiveWindow.LargeScroll Down:=1
Range("L10:M40").Select
Selection.ClearContents
Range("O10").Select
ActiveWindow.LargeScroll Down:=1
Range("O10:O40").Select
Selection.ClearContents
Range("S10").Select
ActiveWindow.LargeScroll Down:=1
Range("S10:S40").Select
Selection.ClearContents
Range("V10:W10").Select
ActiveWindow.LargeScroll Down:=1
Range("V10:W40").Select
Selection.ClearContents
Range("A10").Select
ActiveSheet.Protect "422"
End Sub

Rubén Díaz :

Disculpe la espera, estoy revisando la macro, en unos minutos copiaré y pegaré la corrección aquí.

Customer:

Gracias Ruben

Customer:

Rubén agrego algo para una mejor comprensión. Mientras se incorporan datos o bien números en las columnas que no tienen fórmulas, las que si tienen fórmulas deben encontrarse bloqueadas. Al llenar la última línea de la plantilla hacemos "Ctrl+t" y la macro aún estando bloqueadas las celdas de las distintas columnas que tienen fórmulas, debería ejecutarse igualmente. Tal vez la solución sea que mientras se carga la información las celdas bloqueadas se mantengan como tal y una vez que hacemos correr la Macro, ésta desbloquea para cumplir su función e inmediatamente vuelve a bloquear. Pero no se como solucionarlo. Manuel

Customer:

Te aclaro que soy Contador, no Analista ni programador. Manuel

Rubén Díaz :

Correcto, precisamente esa sería la función al añadir el comando antes mencionado, ahora le sugiero que cambie las líneas que anteriormente hemos añadido por las siguientes:

ActiveSheet.Unprotect Password:="422", UserInterfaceOnly:=True (al principio de la macro)

ActiveSheet.Protect Password:="422", UserInterfaceOnly:=True (al final de la macro)

Customer:

Bien, eso haré

Customer:

Ruben. Queda bloqueado el botón que hace correr a la Macro, o sea, "Ctrl + t".

Rubén Díaz :

Por favor, pruebe modificandolo nuevamente:

ActiveSheet.Unprotect Password:="422"

ActiveSheet.Protect Password:="422"

Customer:

Bien

Customer:

Listo amigo. Eres un campeón. Hay va la valoración. Ah!, cuando yo necesite alguna consulta en el futuro ingreso en la página con mi correo electrónico y mi clave, pagando desde luego la consulta, es así?

Rubén Díaz, Técnico en computación, informática
Categoría: Informática
Clientes satisfechos: 389
Experiencia: Más de 7 años de experiencia en soporte informático in-situ y remoto, con conocimientos en equipos Windows, Mac, Smartphone y periféricos.
Rubén Díaz y otros otros especialistas en Informática están preparados para ayudarle

Opiniones de nuestros clientes:

 
 
 
  • Explicación simple y concreta que facilitó enormemente lo que tenía que hacer. Osvaldo Argentina
  • Explicación simple y concreta que facilitó enormemente lo que tenía que hacer. Osvaldo Argentina
  • Gracias! Servicio excelente. Me ha gustado trabajar con los Expertos. Éxito y gracias. Estefanía Chile
  • Muy agradecida. Si lo necesito volveré a utilizar el site. Mari Ramírez San Juan, Puerto Rico
  • El tiempo de respuesta es excepcional, de menos de 6 minutos. La pregunta se respondió con profesionalidad y con un alto grado de compasión. Inés Santander
  • Quedé muy satisfecho con la rapidez y la calidad de los consejos que recibí. Me gustaría añadir que puse en práctica los consejos y que funcionaron la primera vez y siguen haciéndolo. Luis Málaga
  • Es un servicio fantástico y M. Castillo me ayudó muchísimo y me proporcionó algunos sitios web y herramientas estupendos que me permitieron ampliar mis conocimientos sobre la pregunta. ¡Muchas gracias! Esther Sevilla
  • Un servicio estupendo: rápido, eficiente y preciso. ¿Qué más se puede pedir? No tengo palabras para agradecer su ayuda. María Barcelona
 
 
 

Conozca a los expertos:

 
 
 
  • Jesús

    Jesús

    Técnico Informático

    Clientes satisfechos:

    711
    Experto en Software, Hardware y Redes.
  • http://ww2.justanswer.es/uploads/JE/jesemo/2012-2-26_21847_yocarnet.64x64.jpg Avatar de Jesús

    Jesús

    Técnico Informático

    Clientes satisfechos:

    711
    Experto en Software, Hardware y Redes.
  • http://ww2.justanswer.es/uploads/ES/Estigia/2011-10-18_211225_VMNB.64x64.JPG Avatar de Estigia

    Estigia

    Ing. en Electrónica

    Clientes satisfechos:

    1009
    Especializado en HW, SW e Infraestructura de Redes.
  • http://ww2.justanswer.es/uploads/AR/arcangelus/2012-1-3_2523_Jluis.64x64.jpg Avatar de arcangelus

    arcangelus

    Ing. en Sistemas

    Clientes satisfechos:

    428
    Más de 20 años de experiencia en Informatica
  • http://ww2.justanswer.es/uploads/RR/rrubidio/2015-3-16_19381_arnetnuevo.64x64.jpeg Avatar de Rubén Díaz

    Rubén Díaz

    Técnico en computación, informática

    Clientes satisfechos:

    381
    Más de 7 años de experiencia en soporte informático in-situ y remoto, con conocimientos en equipos Windows, Mac, Smartphone y periféricos.
  • http://ww2.justanswer.es/uploads/AL/Albertillo/2012-10-29_21350_newtshirthe.64x64.jpg Avatar de Albertillo

    Albertillo

    Ingeniero Superior en Informática

    Clientes satisfechos:

    23
    Último curso de carrera
  • http://ww2.justanswer.es/uploads/RA/ratonxi/2012-1-3_151146_1.64x64.png Avatar de ratonxi

    ratonxi

    Licenciatura

    Clientes satisfechos:

    13
    Licenciado en Física, expecialidad física computacional.
 
 
 

Preguntas relacionadas con Informática