ComboBox: Valor a mostrar a partir de un rango definido por nombre

Resuelto
xaveria -  
 xaveria -
Bonjour,

Tengo un formulario que se encuentra en una hoja de mi libro de Excel (hoja1), y todas las listas de opciones que quiero tener están en otra hoja (hoja3). Todas estas listas tienen nombres definidos en mi libro.

En mi formulario, quiero tener una lista desplegable de opciones, por lo que he utilizado el ComboBox, pero no logro que se muestren los valores deseados cuando hago clic en la flecha de la lista en el formulario. No estoy segura de qué evento elegir para lograrlo. La lista permanece vacía.

Aquí está lo que hay actualmente en el código:
Private Sub cbxSecteur_change()

Dim ChoixSecteurs As String
ChoixSecteurs = Hoja3.Range("Sectores").Value

CbxSecteur.Rowsource = ChoixSecteurs

End Sub

Configuración: Windows 7 / Internet Explorer 8.0

1 respuesta

  1. f894009 Mensajes publicados 17417 Fecha de registro   Estado Miembro Última intervención   1 717
     
    Hola,

    Tengo un formulario que se encuentra en una hoja de mi libro de Excel (hoja1) ¿Userform o controles en la hoja de cálculo?
    0
    1. xaveria
       
      Tengo un botón de comando en la hoja1 del libro de Excel, que abre un Useform (Formulariobox) en el que me gustaría que los ComboBox tuvieran listas desplegables que se encuentran en mi hoja3 de Excel (por ejemplo, nombre del rango = Sectores).
      0
    2. f894009 Mensajes publicados 17417 Fecha de registro   Estado Miembro Última intervención   1 717
       
      Re,

      'Formulario de usuario de VBA

      Private Sub UserForm_Activate()
      Dim pt As Integer, nb As Integer

      'limpiar lista
      ComboBox1.Clear
      'número de valores en la lista
      nb = Worksheets("feuil3").Range("Sectores").Cells.Count
      'bucle para escribir valor en combobox
      For pt = 1 To nb
      ComboBox1.AddItem (Worksheets("feuil3").Range("Sectores").Cells(pt, 1))
      Next pt
      End Sub

      'o

      Private Sub UserForm_Activate()
      ComboBox1.Clear
      'llenado por dirección del rango
      ComboBox1.RowSource = Worksheets("feuil3").Range("A1:A5").Address
      End Sub

      'o

      'Directamente en la propiedad RowSource de ComboBox1: Sectores

      A+
      0
    3. xaveria
       
      No funciona, he ajustado el nombre del combobox para el nombre de mi combobox, y el A1:A5 por el nombre de mi rango, y no funciona, tengo un mensaje de error que aparece en la pantalla, el índice no pertenece a la selección: No parece encontrar mi rango en mi hoja de excel que se llama "Sectores"

      Private Sub UserForm_Activate()
      CbxSecteur.Clear
      'rellenado por dirección del rango
      CbxSecteur.RowSource = Worksheets("feuil3").Range("Sectores").Address

      End Sub
      0
    4. f894009 Mensajes publicados 17417 Fecha de registro   Estado Miembro Última intervención   1 717
       
      Re,

      CbxSecteur.RowSource = Worksheets("feuil3").Range("Secteurs").Address

      No funciona, por eso no lo había puesto, ¡pero pasando por una variable intermedia está bien, así que!!!

      Private Sub UserForm_Click()
      x = Worksheets("feuil1").Range("lista").Address
      ComboBox1.RowSource = x
      End Sub

      ¡Hasta luego!
      0
    5. f894009 Mensajes publicados 17417 Fecha de registro   Estado Miembro Última intervención   1 717
       
      Hola,

      He olvidado el nombre de la hoja:
      ej:
      Private Sub UserForm_Activate()
      x = "feuil3!" & Worksheets("feuil3").Range("liste2").Address
      ComboBox1.RowSource = x
      End Sub
      0