Excel - Mostrar en ComboBox ActiveX datos que se aumentan en BD

 
Vista:
sin imagen de perfil
Val: 5
Ha aumentado su posición en 3 puestos en Excel (en relación al último mes)
Gráfica de Excel

Mostrar en ComboBox ActiveX datos que se aumentan en BD

Publicado por Antonio (3 intervenciones) el 02/03/2020 02:57:04
Hola!!, gracias de antemano.

Tengo un ComboBox ActiveX en la "Hoja1" de un libro de Excel, que despliega todos los nombres que aparecen en la Columna "B" de una tabla que se encuentra en la "Hoja2" del mismo libro de Excel. En las propiedades del ComboBox, en el dato correspondiente a ListFillRange está anotado: Hoja2!B2:B453

Los nombres de la columna "B" aparecen correctamente, pero si adiciono nuevos nombres a la tabla, todos aquellos que estén abajo de la celda B453 no aparecen. Lo puedo solucionar (tramposamente) cambiando el rango a uno mayor, por ejemplo de B2 a B900 y ya tengo 450 celdas en blanco disponibles que apareceran en el ComboBox. Pero esa no es la idea.

Me gustaría y no he encontrado cómo, que al adicionar en la tabla, se adcione en el ComboBox. Pense en poner como dato en el ListFillRange el nombre de la tabla, pero no lo reconoce, además de que debería proporcionar cuál sería la columna que deseo desplegar. Si la tabla se llama "Generales" y la columna B se llama "Nombre", pensé en poner en el ListFillRange: Generales[Nommbre], que es como aparece si utilizo la fórmula "Coincidir" para designar a una columna específica de una Tabla, pero no lo acepta.

Intenté poner código de Visual Basic en un macro para el ComboBox_DropButtomClick, pero no pude hacerlo.

Les agradezco la ayuda
Antonio de los Reyes
[email protected]
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Mostrar en ComboBox ActiveX datos que se aumentan en BD

Publicado por Antoni Masana (2477 intervenciones) el 02/03/2020 15:47:41
Se me ocurren dos posibles soluciones, sin probar:

Solución 1: poner en el rango B2:B de esta forma toma los datos de la B2 hasta la última fila con datos.

Solución 2: En la macro Worksheet_SelectionChange de la hoja 2 poner que cuando modifiques la columna B calcule cuantas lineas de datos hay y modifique el ComboBox de la hoja 1.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 5
Ha aumentado su posición en 3 puestos en Excel (en relación al último mes)
Gráfica de Excel

Mostrar en ComboBox ActiveX datos que se aumentan en BD

Publicado por Antonio (3 intervenciones) el 02/03/2020 17:43:17
Hola Antoni, gracias por tu respuesta.

Probé tu solución 1 y no lo acepta el cuadro de propiedades del ComboBox; en el ListFillRange le quito el 453 a la dirección dada, (quedando: Hoja2!B2:B) y al dar enter para aceptar desaparece lo que escribí.... No lo acepta

Para tu solución 2 no sé que código anotar al abrir en la macro el Worksheet_SelectionChange de la hoja 2.... Me podrías ayudar por favor

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Mostrar en ComboBox ActiveX datos que se aumentan en BD

Publicado por Antoni Masana (2477 intervenciones) el 02/03/2020 19:57:32
Esta es una macro que se ejecuta cada vez que se modifica una celda, evidentemente cada hoja tiene la suya.

Si se pone esta macro en la hoja 2 (Que por cierto me he equivocado en el nombre de la misma, nunca recuerdo cual es cual) Cada vez que modifiques una celda de la columna B te dice cual es el rango de datos, ahora solo falta que esta macro modifique el rango en el ComboBox

1
2
3
4
5
6
7
8
9
10
11
12
13
Option Explicit
 
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Fila As Long
    If Target.Column = 2 Then
        Fila = 0
        While Cells(Fila + 2, "B") <> ""
            Fila = Fila + 1
        Wend
    End If
    ' ---&--- Modificar el Rango
    MsgBox "Rango: B2:B" & Fila + 1
End Sub

Para la segunda parte necesito el libro, puedes subirlo aquí o enviarlo a mi correo: [email protected]

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 5
Ha aumentado su posición en 3 puestos en Excel (en relación al último mes)
Gráfica de Excel

Mostrar en ComboBox ActiveX datos que se aumentan en BD

Publicado por Antonio (3 intervenciones) el 03/03/2020 01:18:53
Gracias Antoni, te envié el archivo a tu correo.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar