Programar en excel

Hola, quería ver si alguien me puede orientar en 3 inconvenientes que me impiden terminar el trabajo que quiero desarrollar
1.- En una hoja tengo un cuadro combinado (combobox) desde donde selecciono a que hoja ir a trabajar, lo que quería saber es de que forma puedo fijar la hoja y que no se mueva si muevo la rueda del mouse, que muestre siempre el cuadro combinado
2.-Como puedo hacer para que no este el cursor de desplazamiento dentro de esta misma hoja, que el desplazamiento sea solo por el puntero del mouse
3.-Como puedo fijar el nivel de seguridad de las macros en el nivel bajo, dado que si copio el archivo en otra maquina toma el nivel de esa y me anula el uso de las macros hasta que lo modifico y ahí si me permite usarlas.
Bueno, desde ya les agradezco la orientación que puedan darme, les estoy muy agradecido
Peron

1 respuesta

Respuesta
1
Tengo 2 repuestas buenas y 1 mala. Iva a preguntarte ¿cuál quieres primero? Pero bueno mejor la mala primero para que al final te quede mejor sabor de boca.
Respecto a tu última pregunta es imposible cambiar de ninguna manera el nivel de seguridad de las macros en los pc. Eso sería un virus ya que para eso lo tiene creado Office para que cada usuario elija si quiere ejecutar macros o no dependiendo de la confianza que tenga en el titular del archivo que esta abriendo. No te queda otra que configurar la seguridad en cada pc al que lleves tu archivo.
Vale ya esta bien para la mala noticia, ahora la solución a tus dos problemas de un plumazo mira esta macro que te envío crea en la barra de herramientas un menu personalizado con un combobox para que vayas a tus hojas sin tener que tenerlo en el medio de la página o donde lo sitúas o si cambias de hoja no tener que meter un combobox por hoja.
Aquí tienes el código ahora te lo explico:
Sub Crearmenu()
Dim Hoja As Worksheet
On Error Resume Next
CommandBars("Menu de hojas").Delete
With CommandBars.Add(Name:="Menu de hojas")
With .Controls.Add(Type:=msoControlButton)
.FaceId = 59
.TooltipText = "Acerca de..."
End With
With .Controls.Add(Type:=msoControlDropdown)
For Each Hoja In Worksheets
.AddItem Hoja.Name
.OnAction = "Irahoja"
.TooltipText = "Seleccione hoja"
Next
End With
.Visible = True
End With
End Sub
Sub Irahoja()
Dim strnombrehoja$
With CommandBars.ActionControl
strnombrehoja$ = .List(.ListIndex)
End With
Sheets(strnombrehoja$).Select
End Sub
Como puedes ver la 4ª linea de código elimina la nueva barra de herramientas por si la quieres quitar, vuelves a ejecutarlo hasta esa linea con F8 y listo. Quedó sencillita y muy útil para cualquier libro que tengas y si tiene muchas hojas mejor.
Hola Julio, antes que nada te agradezco la respuesta que me das, gracias por la "mala" noticia primero, no había tenido presente el tema de los virus en las macros, gracias por aclarármelo.
Una ultima consulta, yo estoy haciendo este trabajo en Office 2007, mi consulta es saber si el código que tan bien me detallas funciona en 2007 o es para versiones anteriores de office, de hecho esto que estoy desarrollando va a correr en versión anterior a 2007, en 97 2003.
Bueno no me quiero exceder en tu tiempo, espero tu comentario y te reitero mi agradecimiento a tu ayuda
Saludos cordiales
Adrián
Comprobado funciona con Office 2007, pero esto es Visual Basic para Aplicaciones, por lo tanto el código es el mismo para las versiones anteriores, también funcionará en 2003 y en 97 no te preocupes.
Hola Julio, muchas gracias por la respuesta, lo ultimo que te pregunto, en que parte de visual cargo el código, discúlpame pero es la primera vez que hago algo como lo que me explicas.
Entiendo perfectamente el código pero al ser algo que se va a poner dentro de la barra de herramientas y a operar desde ahí no se como cargarlo en visual, lo mismo que la rutina irahoja()
Desde ya te pido mil disculpas por mi ignorancia pero es el precio de aprender.
Un abrazo fuerte
Adrián
Es fácil, tú estando situado en la Hoja1 pulsas las teclas ALT+F11 se abrirá el editor de Visual Basic en la parte izquierda verás los componentes del libro Hoja1, Hoja2, Hoja3 y This WorkBook pincha encima de cualquiera de ellos con el botón derecho y eliges insertar modulo. Se te abrirá una ventana en el lado derecho donde insertar todo el código que te puse, lo copias y lo pegas, le pinchas en guardar. Vale ya tienes el código ahora tan solo debes de ejecutarlo y se creará la barra personalizada para desplazarte entre hojas. Pinchas en Vista a la derecha Macros te mostrará esta que se llama Crearmenu pinchas en el botón de ejecutar y ya la tienes, aparecerá una nueva opción en la barra de herramientas que se llama complementos. Sin pinchas en ella te aparece la ventana para desplazarte entre las hojas.
Ok, mil gracias Julio, te quería preguntar si existe la posibilidad en caso de que me surja algún inconveniente una dirección de correo donde consultarte, ya que al cerrar este mensaje y calificarte no se como poder consultarte puntualmente ya que todo esto lo conseguí gracias a vos.
Te paso mi correo electrónico (xxxxxx)
Desde ya muchas infinitas gracias y un abrazo fuerte
Adrián
No tienes problemas cuando quieras puedes hacerme preguntas directas, abres esta misma pregunta y tienes la opción preguntar al experto y me mandaras la nueva pregunta directamente sin ponerla en el tablón.
Julio, realmente un muy buen experto, no solo en excel si no en orientar en la solución de un problema de programación, excelente como profesional.
Mis saludos Julio
Adrián

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas