XL97: Cómo rellenar el Control ListBox con varios rangos

Seleccione idioma Seleccione idioma
Id. de artículo: 161534 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Este artículo contiene un ejemplo que rellena la lista de un control ListBox en un formulario de usuario con datos de varios rangos de celda.

Más información

No puede utilizar la propiedad RowSource para enlazar un control ListBox a una hoja de cálculo cuando desee que la lista para dibujar de varios rangos. Debe recorrer los distintos intervalos con un procedimiento de Visual Basic para aplicaciones y agregar los elementos a la lista de uno a la vez.

Los ejemplos siguientes llenar un control ListBox, como se cargue utilizando el evento Initialize para el formulario de usuario.

Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía tanto expresa como implícita, incluyendo, pero sin limitarse a, las garantías implícitas de comerciabilidad e idoneidad para un propósito determinado. En este artículo se supone que está familiarizado con el lenguaje de programación que se muestra y las herramientas utilizadas para crear y depurar procedimientos. Los profesionales de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos a necesidades específicas.
Si tiene poca experiencia en programación, desea póngase en contacto con un Microsoft Certified Partner o servicios de consultoría de Microsoft. Para obtener más información, visite estos sitios Web de Microsoft:

Microsoft certificado Partners - https://partner.microsoft.com/global/30000104

Servicios de asesoramiento de Microsoft - http://support.microsoft.com/gp/advisoryservice

Para obtener más información acerca de las opciones de soporte técnico que están disponibles y cómo ponerse en contacto con Microsoft, visite el siguiente sitio Web de Microsoft: http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS

Rellenar ListBox directamente desde las celdas de hoja de cálculo

Para rellenar el control ListBox, siga estos pasos:
  1. Cierre y guarde los libros abiertos y, a continuación, cree un nuevo libro.
  2. Sheet1, escriba los siguientes valores:
          A1: Planes        C1: Alpha
          A2: Trains        C2: Bravo
          A3: Automobiles   C3: Charlie
  3. Inicie el Editor de Visual Basic (presione ALT+F11).
  4. En el menú Insertar, haga clic en UserForm.
  5. Dibuje un control ListBox en el formulario de usuario.
  6. Haga doble clic en el UserForm para abrir la ventana código para el formulario de usuario.
  7. En el módulo, escriba el siguiente código para inicializar el UserForm evento:
          Private Sub UserForm_Intialize()
              Dim Lrange As Range
              Dim x As Variant
    
              'Set the range to loop through
              Set Lrange = Union(Sheet1.Range("A1:A3"), Sheet1.Range("C1:C3"))
    
              'Loops through the ranges
              For Each x In Lrange
    
                  'Adds an item to the list
                  Listbox1.AddItem x.Value
    
              Next x
    
          End Sub
    						
  8. Ejecutar el UserForm.

    Los elementos de los rangos a1: a3 y C1: C3 de Sheet1 se agregan a la lista de ListBox1.
  9. Cierre el formulario de usuario.

Utilizar una matriz para llenar el control ListBox

También es posible asignar el contenido de una matriz de Visual Basic como la lista de un control ListBox. En el ejemplo siguiente se lee los valores de la hoja de cálculo en una matriz y, a continuación, asigna la matriz al control ListBox como la lista:
  1. En el módulo, cambie el código para el evento UserForm Initialize:
          Private Sub UserForm_Initialize()
              Dim Lrange As Range
              Dim Larray() As Variant
              Dim x As Variant
              Dim ctr As Integer
    
              'Set the range to loop through
              Set Lrange = Union(Sheet1.Range("A1:A3"), Sheet1.Range("C1:C3"))
    
              'Loops through the ranges
              For Each x In Lrange
    
                  ReDim Preserve Larray(ctr)
    
                  'Add an item to the array
                  Larray(ctr) = x.Value
    
                  ctr = ctr + 1
    
              Next x
    
              'Assign the array to the listbox
              ListBox1.List = LArray
    
          End Sub
    						
  2. Ejecutar el UserForm.

    Los elementos de los rangos a1: a3 y C1: C3 de Sheet1 se leen en una matriz y, a continuación, se asignan a la lista de ListBox1.
  3. Cierre el formulario de usuario.

Referencias

Para obtener información adicional sobre cómo rellenar cuadros de lista de versiones anteriores de Microsoft Excel, consulte en contacto con el siguiente artículo en Microsoft Knowledge Base:
153603XL: Macro para rellenar un cuadro de lista con varios rangos
Para obtener más información acerca de controles ListBox, haga clic en el Ayudante, escriba el cuadro de lista , haga clic en Buscar y, a continuación, haga clic para ver "ListBox control"

Propiedades

Id. de artículo: 161534 - Última revisión: jueves, 23 de noviembre de 2006 - Versión: 2.4
La información de este artículo se refiere a:
  • Microsoft Excel 97 Standard Edition
Palabras clave: 
kbmt kbdtacode kbprogramming KB161534 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 161534
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com