Cuando los datos descargados de una base de datos exceden el rango de un cuadro combinado, los nuevos elementos simplemente no se muestran. Para contrarrestar esto, el rango que subyace a los cuadros de lista o combinado debe expandirse o contraerse para coincidir con los datos. Este artículo examina cómo hacer esto automáticamente.
Se supone que el lector muestra la cinta de desarrollador y está familiarizado con el editor de VBA. De lo contrario, busque en Google "Pestaña de desarrollador de Excel" o "Ventana de código de Excel".
Una forma profesional de mostrar cuadros combinados es expandir o contraer sus rangos según sea necesario. Por ejemplo:
La clave para un rango dinámico es monitorear el número de filas pobladas en la columna relevante, usando la función = countA. Esta función cuenta los elementos poblados en una secuencia de celdas hasta que llega al último; en el caso del primer diagrama en la imagen de arriba, esa sería la fila 11.
Para mantener un rango, automáticamente se requieren nombres definidos para rastrear el número de filas pobladas. Por ejemplo, usamos eCol (columna final) y eRow (fila final) para definir los límites de nuestro rango. Cuantas más filas completemos, mayor será el valor de eRow.
Los nombres definidos anteriormente han establecido la lista en una columna de ancho (eCol = 1) por el número de filas pobladas en eCol (eRow = 11)
Finalmente, los títulos aparecen en el rango “A2: A” y eRow. Notará que la función de índice se usa para establecer la última celda en el rango llamado "Títulos". Efectivamente, el rango "A2: A" y eRow se traduce en "A2: A11" en esta etapa.
Podemos configurar el rango dinámico automáticamente cuando se abre el libro de trabajo, utilizando el subprocedimiento Auto_open, que se ejecuta antes de que el libro de trabajo sea visible.
El código
Abra un libro de trabajo y complételo con un cuadro combinado y algunos datos. El libro de trabajo de muestra utilizado en este ejercicio se puede encontrar aquí.
Abra la ventana del código VBA e inserte un módulo. Copie el siguiente código en el módulo.
El evento Auto_Open configura los valores de la última fila y la última columna para el rango dinámico "Títulos" y toma nota de los cambios posteriores realizados.
Sub auto_open()
Dim eRow As Integer, eCol As Integer, i As Long
On Error Resume Next
'Clear the present define names, to avoid any duplications
activeworkbook.Names("eCol").Delete
activeworkbook.Names("eRow").Delete
activeworkbook.Names("Titles").Delete
Range("A1").Select
'Titles will appear in the first column, A in this case
eCol = 1
'Find the last populated row
eRow = Sheets("Main").Cells(Rows.Count, eCol).End(xlUp).Row
'Define the names
activeworkbook.Names.Add Name:="eCol", RefersTo:="=COUNTA($1:$1)"
activeworkbook.Names.Add Name:="eRow", RefersToR1C1:="=COUNTA(C" & ColNo & ")"
activeworkbook.Names.Add Name:="Titles", RefersTo:="=A2:INDEX($2:$200," & "eRow," & "eCol)"
End Sub
Sub DropDown1_Change()
MsgBox "Directed by " & Cells(2, 5)
End Sub
Nota: Todo se ha colocado en una sola página para simplificar la visualización. Normalmente, los valores de las columnas A y B y D y E estarían en otra hoja, posiblemente oculta. Tenga en cuenta también que la segunda columna, B, no se utiliza en las definiciones del rango en este ejercicio en particular; Los valores de la columna B se obtienen de la forma habitual a través de la propiedad de enlace de celda del cuadro combinado (D2 refleja la selección del tercer elemento en el rango, que starts en A2, junto con una función de índice en “E3” para encontrar el director (= INDICE (B: B, D2 + 1,1)).
Guarde el libro de trabajo y vuelva a abrirlo. El cuadro combinado inicialmente se completará con Auto_open. Agregue elementos a las columnas A y B y observe los cambios en el cuadro combinado.
Recuperar archivos de Excel dañados
De vez en cuando, los archivos de Excel pueden dañarse después de que Excel se bloquea inesperadamente. Si tiene una copia de seguridad, simplemente puede restaurar los datos con su copia de seguridad. De lo contrario, es posible que deba buscar un experto o una herramienta profesional para recuperar el Excel corrupto archivos.
Introducción del autor:
Felix Hooker es un experto en recuperación de datos en DataNumen, Inc., que es el líder mundial en tecnologías de recuperación de datos, incluyendo rar reparación y productos de software de recuperación de sql. Para más información visite www.datanumen.com


