Está en la página 1de 3

VBA: Crear una matriz (Array) a partir de un rango de Excel.

Alguna vez he hablado del concepto de matriz o Array en el contexto de nuestras macros (ver),
normalmente emplendola o definindola a partir de elementos constantes, sin embargo, en
ocasiones, se hace necesario emplear estas matrices sobre rangos dinmicos alojados en nuestras
celdas de nuestras hojas de clculo.
Hoy hablar de la forma de crear una Array a partir de los valores de un rango de celdas.
Lo aplicaremos para el supuesto en que deseamos aadir un listado de clientes a un desplegable o
Cuadro combinado, que se encuentra en la 'Hoja1' de nuestro Libro de trabajo y que empieza en la
celda A2 y no sabemos dnde acaba...

Nuestro trabajo consistir en pasar un rango a matriz, para luego emplear los elementos de esa
matriz como parte de un ComboBox o desplegable (controles ActiveX).
Lo primero que haremos ser incrustar un Cuadro combinado (control ActiveX) en nuestra 'Hoja1',
lo que haremos desde la Ficha Programador > Controles > Insertar controles > Controles ActiveX >
Cuadro combinado:

En el siguiente paso, haciendo doble click sobre el Control pasaremos a la ventana de cdigo, donde
incluiremos lo siguiente:

01

Private Sub ComboBox1_gotfocus()

02

Dim clientes As Long

03 'cuenta el nmero de elementos en la Hoja1


clientes = Sheets("Hoja1").Range(Range("A2"),
04
Range("A2").End(xlDown)).Rows.Count
05
06 'definimos una Matriz sin dimensiones determinadas
07 Dim MyArray() As Variant
'sabiendo el nmero de elementos a incluir, redimensionamos nuestra
08
Matriz
09
ReDim MyArray(1 To clientes, 1) As Variant
10
'En caso de error, que contine
11
On Error Resume Next
12
'limpiamos el ComboBox
13 ComboBox1.Clear
'aadimos cada valor del rango definido de la Hoja1 como elemento de
14
la Matriz
15 For i = 1 To clientes
16
MyArray(i, 1) = Worksheets("Hoja1").Cells(i + 1, 1).Value
17
'inclumos cada elemento de la Matriz dentro del Cuadro combinado
18
ComboBox1.AddItem MyArray(i, 1)
19
Next i
20

End Sub

Lo ms importante en este ejemplo ha sido ser capaces de Redimensionar nuestra Matriz 'MyArray' a
una dimensin variable en cada momento, ajustada al nmero de elementos que componen el
rango de celdas.
Podemos ver el resultado:

Comprobando como efectivamente cada nuevo registro aadido en nuestra Hoja de clculo,
esdinmicamente incluido como nuevo elemento dentro de nuestro Cuadro combinado:

También podría gustarte

  • Cálculo Final
    Cálculo Final
    Documento9 páginas
    Cálculo Final
    Heimer Ponciano Cecilio
    Aún no hay calificaciones
  • Protocolo de Prueba de Filtración en Cobertura Metálica
    Protocolo de Prueba de Filtración en Cobertura Metálica
    Documento1 página
    Protocolo de Prueba de Filtración en Cobertura Metálica
    Heimer Ponciano Cecilio
    100% (1)
  • Nuevo Documento de Microsoft Word145
    Nuevo Documento de Microsoft Word145
    Documento1 página
    Nuevo Documento de Microsoft Word145
    Heimer Ponciano Cecilio
    Aún no hay calificaciones
  • Cálculo Final
    Cálculo Final
    Documento9 páginas
    Cálculo Final
    Heimer Ponciano Cecilio
    Aún no hay calificaciones
  • Cálculo Final
    Cálculo Final
    Documento9 páginas
    Cálculo Final
    Heimer Ponciano Cecilio
    Aún no hay calificaciones
  • Cálculo Final
    Cálculo Final
    Documento9 páginas
    Cálculo Final
    Heimer Ponciano Cecilio
    Aún no hay calificaciones
  • Cálculo Final
    Cálculo Final
    Documento9 páginas
    Cálculo Final
    Heimer Ponciano Cecilio
    Aún no hay calificaciones
  • Oeumv f9872
    Oeumv f9872
    Documento1 página
    Oeumv f9872
    Heimer Ponciano Cecilio
    Aún no hay calificaciones
  • Hola Mundo1
    Hola Mundo1
    Documento1 página
    Hola Mundo1
    Heimer Ponciano Cecilio
    Aún no hay calificaciones
  • Cálculo Final
    Cálculo Final
    Documento9 páginas
    Cálculo Final
    Heimer Ponciano Cecilio
    Aún no hay calificaciones
  • Veniusr Venviniev151
    Veniusr Venviniev151
    Documento1 página
    Veniusr Venviniev151
    Heimer Ponciano Cecilio
    Aún no hay calificaciones
  • Veniusr Venviniev
    Veniusr Venviniev
    Documento1 página
    Veniusr Venviniev
    Heimer Ponciano Cecilio
    Aún no hay calificaciones
  • Datos Nueva Requena
    Datos Nueva Requena
    Documento1 página
    Datos Nueva Requena
    Heimer Ponciano Cecilio
    Aún no hay calificaciones
  • Cronograma Reprogramado Ejecutado
    Cronograma Reprogramado Ejecutado
    Documento32 páginas
    Cronograma Reprogramado Ejecutado
    Heimer Ponciano Cecilio
    Aún no hay calificaciones
  • GR GR GR % Desechar Ensayo: Andabamba Fino ###
    GR GR GR % Desechar Ensayo: Andabamba Fino ###
    Documento4 páginas
    GR GR GR % Desechar Ensayo: Andabamba Fino ###
    Heimer Ponciano Cecilio
    Aún no hay calificaciones
  • Ya Puede Empezar
    Ya Puede Empezar
    Documento4 páginas
    Ya Puede Empezar
    Heimer Ponciano Cecilio
    Aún no hay calificaciones
  • Oeumv f987
    Oeumv f987
    Documento1 página
    Oeumv f987
    Heimer Ponciano Cecilio
    Aún no hay calificaciones
  • Hola Enen
    Hola Enen
    Documento1 página
    Hola Enen
    Heimer Ponciano Cecilio
    Aún no hay calificaciones
  • Yuk Ktyy y y y
    Yuk Ktyy y y y
    Documento1 página
    Yuk Ktyy y y y
    Heimer Ponciano Cecilio
    Aún no hay calificaciones
  • Tabla Clasificacion Sucs
    Tabla Clasificacion Sucs
    Documento1 página
    Tabla Clasificacion Sucs
    Misael Salazar
    81% (16)
  • Hola Mundo2
    Hola Mundo2
    Documento1 página
    Hola Mundo2
    Heimer Ponciano Cecilio
    Aún no hay calificaciones
  • Limit Es
    Limit Es
    Documento77 páginas
    Limit Es
    Heimer Ponciano Cecilio
    Aún no hay calificaciones
  • Hol, A Bebe
    Hol, A Bebe
    Documento1 página
    Hol, A Bebe
    Heimer Ponciano Cecilio
    Aún no hay calificaciones
  • Metodo de La Fuerza
    Metodo de La Fuerza
    Documento17 páginas
    Metodo de La Fuerza
    Elvin Cabrera
    Aún no hay calificaciones
  • Diapositivas Eurotunel
    Diapositivas Eurotunel
    Documento18 páginas
    Diapositivas Eurotunel
    Heimer Ponciano Cecilio
    Aún no hay calificaciones
  • Gradient Es
    Gradient Es
    Documento8 páginas
    Gradient Es
    Heimer Ponciano Cecilio
    Aún no hay calificaciones
  • Matrix Inversa y de Carga Ejemplo, CINEMATICA Y DESPLAZAMIENTOS
    Matrix Inversa y de Carga Ejemplo, CINEMATICA Y DESPLAZAMIENTOS
    Documento6 páginas
    Matrix Inversa y de Carga Ejemplo, CINEMATICA Y DESPLAZAMIENTOS
    Juan Carlos
    Aún no hay calificaciones
  • Diapositivas Eurotunel
    Diapositivas Eurotunel
    Documento18 páginas
    Diapositivas Eurotunel
    Heimer Ponciano Cecilio
    Aún no hay calificaciones
  • Diapositivas Eurotunel
    Diapositivas Eurotunel
    Documento18 páginas
    Diapositivas Eurotunel
    Heimer Ponciano Cecilio
    Aún no hay calificaciones