** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - Mostrar/Ocultar ComboBox
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoMostrar/Ocultar ComboBox

 Responder Responder
Autor
Mensaje
Gladiador Ver desplegable
Habitual
Habitual
Avatar

Unido: 22/Junio/2006
Localización: Venezuela
Estado: Sin conexión
Puntos: 87
Enlace directo a este mensaje Tema: Mostrar/Ocultar ComboBox
    Enviado: 15/Junio/2017 a las 19:12
Hola, nuevamente recurro a ustedes por una ayuda

Se trata de los siguiente:

Tengo un ComboBox desplegable, el cual quisiera que se mostrara cuando coloco/activo una celda de la columna F y, luego, se oculte cuando paso a cualquier otra columna

Gracias
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 4949
Enlace directo a este mensaje Enviado: 16/Junio/2017 a las 23:39
Ese es el funcionamiento por defecto de una celda validada por lista: Datos > Herramienta de datos > Validación de datos > Validación de datos... > (Permitir) Lista > (Origen) =$K$2:$K$12 > ... etc.


Editado: Si no se trata de «eso» sino de un ComboBox propiamente dicho (Cuadro combinado), podrías lograrlo mediante código VBA.

¿Qué tipo de ComboBox es?
¿Pertenece a un Formulario VBA?
¿Pertenece a Controles ActiveX?
¿Pertenece a Controles de Formulario?




Editado por AnSanVal - 17/Junio/2017 a las 00:00
Pregunta lo que no sabes, recuérdalo para cuando te pregunten y ofrece tu ayuda (reconforta).

Mi sitio_web con ejemplos Excel.
Arriba
Gladiador Ver desplegable
Habitual
Habitual
Avatar

Unido: 22/Junio/2006
Localización: Venezuela
Estado: Sin conexión
Puntos: 87
Enlace directo a este mensaje Enviado: 17/Junio/2017 a las 22:45
Hoila AnSanVal. Muchas gracias por tu tiempo y tu interés.

Lo que tengo en un Control ActiveX, disculpa mi omisión.

Un poco de explicación sobre lo que estoy haciendo.

En la Columna F, de una lista debo ingresar un Código. 
El Combobox me muestra la lista que tengo, al seleccionar algún rubro de la lista, en la celda me aparece el código de ese rubro.

En las propiedades del ComboBox ya indique que el cual es el "ListFillRange" y cual es la "LinkedCell" etc.
En la hoja, donde se encuentra el ComboBox, incluí la instrucción

 Private Sub ComboBox1_Change()
  ActiveCell.Value = Range("B2").Value
End Sub

Lo que deseo es que el ComboBox se oculte, cuando no he activado/seleccionado alguna celda de la columna F, para evitar que el usuario intente usarlo, cuando no está en la columna F.

Ya incluí la siguiente instrucción:

Private Sub ComboBox1_GotFocus()
    If Selection.Column <> 6 Then CreateObject("wscript.shell").popup "No está en la columna correcta. Debe colocarse en la columna CÓDIGO", 5, ""
End Sub

Pero igual el ComboBox queda desplegado y el usuario se confunde.

Es por eso que deseo hacer una instrucción que haga el ComboBox visible, cuando me coloco en la Columna F.

Gracias

Gladiador
 
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 4949
Enlace directo a este mensaje Enviado: 18/Junio/2017 a las 11:43

Pues insisto; no estás utilizando la herramienta correcta. Con VALIDACIÓN te evitas código VBA, es más eficiente y Excel se encarga (por ti) de llevar a cabo esas tareas de control que estás pidiendo.


Pero si prefieres entrar los tornillos a martillazos  aunque el agarre sea menor y algunos tornillos se deterioren, copia/pega el siguiente código en el módulo de tu hoja:


Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Column = 6 Then

ActiveSheet.Shapes("ComboBox1").Visible = True

Else

ActiveSheet.Shapes("ComboBox1").Visible = False

End If

End Sub



Nota:  Cambia  «ComboBox1» por el nombre real de tu ComboBox.



Pregunta lo que no sabes, recuérdalo para cuando te pregunten y ofrece tu ayuda (reconforta).

Mi sitio_web con ejemplos Excel.
Arriba
Gladiador Ver desplegable
Habitual
Habitual
Avatar

Unido: 22/Junio/2006
Localización: Venezuela
Estado: Sin conexión
Puntos: 87
Enlace directo a este mensaje Enviado: 18/Junio/2017 a las 18:50
Hola AnSanVal

Muy, pero muy buena tu respuesta. Eso es lo que necesito.

Y si, tienes razón, con VALIDACIÓN puediera hacerlo, pero el punto es hacer que el usuario memorice cada uno de los códigos. Si con Validación pudiera tener dos columnas y que tomara solo el valor de una columna, sería la solución.

Pongo un ejemplo:

Descripción  Código
Gastos por flete              FLT
Gastos por Viáticos          VTS
Gastos de Teléfono         TLF
Gastos de embalaje        EMB
Ingreso por Ventas         VNT
ETC
ETC
Son como 20 rubros.
Si pudiese mostrar la tabla anterior y que tome solo el código, sería ideal.

Eso es lo que estoy tratando de hacer con el combo box.
Cuando se despliega, solo aparece la descripción, al seleccionar alguna, hago que, en la celda activa, aparezca el código. Con la siguiente instrucción:

ActiveCell.Value = Range("BH2").Value
La celda BH2 es la que tengo "vinculada" (LinkedCell) al ComboBox

También, sería ideal, que el ComboBox, se mostrara, sin que haya un cambio en la hoja, como sucede con el botón de desplegar de VALIDACIÓN, que se muestra cuando me coloco sobre la celda "Validada". 

Es eso posible con una instrucción VBA?

Gracias

Gladiador

Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 4949
Enlace directo a este mensaje Enviado: 18/Junio/2017 a las 23:39
Creo que... ¿No has probado el código que te ofrecí?

Lo que hace es precisamente eso: Cuando seleccionas una celda de la columna F se muestra el Cuadro combinado y cuando seleccionas una celda de otra columna se oculta el Cuadro combinado.
Pregunta lo que no sabes, recuérdalo para cuando te pregunten y ofrece tu ayuda (reconforta).

Mi sitio_web con ejemplos Excel.
Arriba
Gladiador Ver desplegable
Habitual
Habitual
Avatar

Unido: 22/Junio/2006
Localización: Venezuela
Estado: Sin conexión
Puntos: 87
Enlace directo a este mensaje Enviado: 20/Junio/2017 a las 05:23
Hola.
Si tienes razón, no me había dado cuenta que la instrucción es "Selection Change", yo estaba anclado en "Worksheet_Change"

Funciona de maravilla.
Gracias, se puede cerrar el hilo

Gladiador
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable