Propiedades del "Botón de opcion" de la barra "Formularios"

15/05/2010 - 22:11 por ElProfe | Informe spam
Tengo en una hoja una buena cantidad de "Cuadros de grupo", que en su
interior contienen varios "Botones de opción" (hechos con la -Barra de
formularios-) y funcionan perfectamente.

Al respecto me han surgido varias inquietudes:

1) Como hago o por donde, puedo saber o conocer el nombre de cada
botón?

2) Puedo cambiar el nombre de los botones por el que yo quiera
(siempre y cuando sea coherente)?

3) Como puedo hacer para que de manera automática (supongo que con una
macro), cada vez que alguien utilice esa hoja, encuentre todos los
botones limpios; es decir con su "Valor sin activar", el que se
encuentra en la pestaña "Control" del "Formato de control"

La grabadora de macros me provee el siguiente código, pero al
ejecutarlo limpia los botones de un solo cuadro de grupo:

Sub LimpiarBotones()
' Grabada el 13-05-2010 - ElProfe
ActiveSheet.Shapes("Option Button 21").Select
With Selection
.Value = xlOff
.LinkedCell = ""
.Display3DShading = True
End With
ActiveSheet.Shapes("Option Button 43").Select
With Selection
.Value = xlOff
.LinkedCell = ""
.Display3DShading = True
End With
ActiveSheet.Shapes("Option Button 31").Select
With Selection
.Value = xlOff
.LinkedCell = ""
.Display3DShading = True
End With
End Sub

Bueno, eso era todo. Gracias anrticipadas por los que se interesen en
el tema y por la ayuda que me puedan brindar.

Preguntas similare

Leer las respuestas

#1 ElProfe
16/05/2010 - 22:25 | Informe spam
Bueno amigos del foro, como decía mi mamá, "mande y hágalo".

Miestras esperaba alguna luz sobre mis inquietudes, encontré lo
siguiente:

1) Como hacer para conocer el nombre que tiene cada botón?

-Encontré tes posibilidades, a saber:-

R1a) La más sencilla; al momento de crear el botón desde la "Barra de
Herramientas - Formularios", el botón mismo aparece con el nombre
"Botón de opción XX", donde XX es un número consecutivo que se
incrementa en la medida en que se van creando mas botones.

R1b) Si el botón ya está creado y le habíamos cambido el nombre,
hacemos clic derecho sobre el, para seleccionar el botón (que se vea
su contorno que es como una dina malla) y mientras tanto en la parte
superior izquierda de la hoja de Excel, justo en el espacio destinado
al "Cuadro de nombres" se alcansa a apreciar parte del nombre original
del boton (una limitación visual del campo mismo para no quitarle
capacidad a la barra de fórmulas), donde se alcansa a leer algo así
como "Botón de opci...", pero al hacer clic dentro del "Cuadro de
nombres" se conoce el nombre completo del botón seleccionado.

R1c) Si el botón ya está creado y hemos cambido su nombre, hacemos un
clic derecho sobre el, para seleccionar el botón y luego vamos a
[Insertar][Nombre][Definir] y en la caja de dialogo "Definir nombre",
en la sección "Se refiere a:", figura el nombre completo del botón
seleccionado.

2) Como hacer para cambiar el nombre de un botón?

R2) "blanco es, gallina lo pone y frito se come"; como el refrán, si
la respuesta de R1b) habló del "Cuadro de nombres", pues bastaría
seleccionarlo como ya se dijo y allí mismo en el "Cuadro de nombres"
podemos renombrarlo a nuestro gusto o necesidad.

3) Como hacer para que al inicio, los botones queden limpios
automáticamente?

R3) definitivamente el problema era conocer el nombre del botón y una
vez identificado este, pues hice un código (de los simples porque de
VBA no se nada!), que más o menos es como sigue:

Sub Blanqueador()
' Colocamos botones de opción en blanco

' Botón Pregunta 1
ActiveSheet.Shapes("Botón 01").Select
With Selection
.Value = xlOff
End With

ActiveSheet.Shapes("Botón 02").Select
With Selection
.Value = xlOff
End With

ActiveSheet.Shapes("Botón 03").Select
With Selection
.Value = xlOff
End With

' Botón Pregunta 2
ActiveSheet.Shapes("Botón 04").Select
With Selection
.Value = xlOff
End With

ActiveSheet.Shapes("Botón 05").Select
With Selection
.Value = xlOff
End With

End Sub

...y listo! Eso era todo.

Supongo que "mi código se puede hacer más simple o más práctico", pero
en lo que a mi respecta, funcionó bien y conseguí mi objetivo.

Gracias a todos y reciban un cordial saludo desde Bogotá.

ElProfe
Respuesta Responder a este mensaje
#2 Héctor Miguel
17/05/2010 - 08:54 | Informe spam
hola, j manuel ! (solo dos comentarios)...

... al momento de crear el boton desde la "Barra de Herramientas - Formularios"
... aparece con el nombre "Boton de opcion XX"
donde XX es un número consecutivo que se incrementa en la medida en que se van creando mas botones.



la "xx" corresponde al numero secuencial que se incrementa con cada objeto incrustado (sin importar su tipo) p.e.:
al incrustar un boton de opcion, una casilla de verificacion, un cuadro de grupo, un boton y otro boton de opcion
obtienes las siguientes "xx":
- boton de opcion 1
- casilla de verificacion 2
- cuadro de grupo 3
- boton 4
- boton de opcion 5 (aunque solo hay DOS botones de opcion)

3) Como hacer para que al inicio, los botones queden limpios automaticamente?
R3) definitivamente el problema era conocer el nombre del botón y una vez identificado este
pues hice un codigo (de los simples porque de VBA no se nada!), que mas o menos es como sigue: ...
Supongo que "mi codigo se puede hacer mas simple o mas practico"
pero en lo que a mi respecta, funciono bien y consegui mi objetivo...



es lo bueno de excel y vba, que al final de cuentas NO es tan "dificil" como pareciera :))
hablando de objetos de la barra de herramientas "formularios", tambien corresponden a "grupos"
y puedes "blanquear" (p.e.) todos los botones de opcion con una linea +/- como la situiente:

activesheet.optionbuttons.value = false

saludos,
hector.
Respuesta Responder a este mensaje
#3 ElProfe
17/05/2010 - 16:56 | Informe spam
Hola Héctor Miguel:

Muy valiosos tus comentarios.
...
obtienes las siguientes "xx":
- boton de opcion 1
- casilla de verificacion 2
- cuadro de grupo 3
- boton 4
- boton de opcion 5 (aunque solo hay DOS botones de opcion)



R = No me había puesto a detallarlo, pero me ayudó bastante tu
claridad sobre este aspecto.

...

  activesheet.optionbuttons.value = false



R = "Mi limpiador" primario tomaba mas de 200 líneas :(

En estos días alguien me sugirió amablemente que podría simplificarlo
por..

Sub change_status()
Dim sh As Shape
On Error Resume Next
For Each sh In ActiveSheet.Shapes
sh.Select
Selection.Value = xlOff
Next sh
On Error GoTo 0
End Sub

...y ahora tu código simplifica mucho más la tarea.

Héctor Miguel, ¿para "limpiar" un ComboBox también hay una instrucción
así de sencilla?

Gracias por tu interés y por todo tu apoyo.

Saludos,

Manuel
ElProfe
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida