Mostrar resultado de optionbutton al hacer click en un listbox (vba excel)

Me gustaría saber como puedo mostrar la opción elegida en dos optionbutton (Nuevo o Seminuevo) cuando hago click en un listbox. Estos dos optionbutton estan metidos dentro de un frame.

Y tengo otro frame con otros dos option button (Coleccion/Venta)

Tengo este código para cargar los textbox y combobox:

cargar = ListBox1.ListIndex
txt_codigo = ListBox1.List(cargar, 0)
txt_nombre = ListBox1.List(cargar, 1)
cbx_plataforma = ListBox1.List(cargar, 2)
cbx_consola = ListBox1.List(cargar, 3)
cbx_categoria = ListBox1.List(cargar, 4)
cbx_grupo = ListBox1. List(cargar, 5)

Coloque estas lineas pero me da error "el uso de la propiedad no es valido.

frame_estado = ListBox1.List(cargar, 6)
frame_condicion = ListBox1.List(cargar, 7)

Alguna sugerencia/solucion??

1 respuesta

Respuesta
2

Depende de lo que intentas marcar, o mejor dicho del valor que tenga ese campo del listbox.

Por ejemplo:

If ListBox1.List(cargar, 6) = "SI" Then 
     frame_estado.value = True
else
     frame_estadoOtro.value = True
End if

Si hay 2 option en un mismo frame y uno de los 2 seguro queda en True podrías dejar la macro así (ajusta el nombre de tu control).

Si no te quedó claro explica un poco más la situación. Cuales son los grupos de controles en cada frame y qué información se muestra en cada col (6 y 7) del Listbox.

Si el tema queda resuelto no olvides valorar la respuesta (opciones: excelente o buena)

Una imagen vale más que mil palabras..

Necesito que al seleccionar un item del listbox en los frames estado y condición, se señalize la opción que hay en las columnas del listbox "estado y condición.

No consigo hacer funcionar las líneas de código que me mandaste (las adapte a mis controles, creo!JAJJAJAJA, pero creo que algo hago mal)

If ListBox1.List(cargar, 6) = "SI" Then
     opt_nuevo.Value = True
Else
     opt_seminuevo.Value = True
End If

Como no tenés los valores SI-NO sino Seminuevo y otro, entonces debieras dejar las instrucciones así por cada grupo:

If ListBox1.List(cargar, 6) = "Nuevo" Then
     opt_nuevo.Value = True
Else
     opt_seminuevo.Value = True
End If
If ListBox1.List(cargar, 7) = "Venta" Then
     opt_venta.Value = True                  'Ajustar nbre del control
Else
     opt_comision.Value = True               'Ajustar nbre del control
End If

Sdos!

Nada, no consigo hacer que vaya cambiando al seleccionar el item del listbox.

Probé este:

If ListBox1.List(cargar, 6) = "estado" Then
     opt_nuevo.Value = True
Else
     opt_seminuevo.Value = True
End If
If ListBox1.List(cargar, 7) = "condicion" Then
     opt_coleccion.Value = True                  'Ajustar nbre del control
Else
     opt_venta.Value = True               'Ajustar nbre del control
End If

y este:

If ListBox1.List(cargar, 6) = "Nuevo" Then
     opt_nuevo.Value = True
Else
     opt_seminuevo.Value = False
End If
If ListBox1.List(cargar, 6) = "Seminuevo" Then
     opt_nuevo.Value = False
Else
     opt_seminuevo.Value = True
End If

Y no consigo que funcione

Enviame tú hoja. Mis correos aparecen en mi sitio que dejo al pie.

Sdos!

El segundo código que me envias no va... porque un option cancela al otro en un mismo frame o cuadro.

Mantené el código que te envié y solo ajustá el texto que aparece en la celda... si va con mayúsculas o con acento... que coincida con el valor de LA CELDA, no el título de columna como lo estás poniendo.

'Para columna Estado:
If ListBox1.List(cargar, 6) = "Nuevo" Then    'colocar el mismo texto que aparece en celda
     opt_nuevo.Value = True
Else
     opt_seminuevo.Value = True
End If
'Para columna condición
If ListBox1.List(cargar, 7) = "Venta" Then    'colocar el mismo texto que aparece en celda
     opt_venta.Value = True                  'Ajustar nbre del control
Else
     opt_comision.Value = True               'Ajustar nbre del control
End If

Si tus celdas tendrás valores con diferente sintaxis (Venta, VENTA, venta) entonces se compara de este modo, pasándolo siempre a mayúsculas con la función UCASE:

If UCASE(ListBox1.List(cargar, 6)) = "VENTA"

Desconozco los nombres de tus controles como para saber si los estás escribiendo bien...si sigues sin resolverlo enviame la hoja para revisarla.

Mis correos en la imagen:

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas