No puedo actualizar base de datos (query) porque la macro del combo box predefine el rango

Adjunto el error y la instrucción, el error es en lo marcado en negrita, el problema es que es un listado que va a seguir creciendo y si no lo puedo actualizar no vale de nada, cualquier aporte sería muy valioso

Private Sub ComboBox1_Change()
'cargamos listado desde la tabla 'Equipos' previamente creada...
Sheets("Equipos").Activate
ComboBox1.ListFillRange = "Equipos"
Dim ListadoEquipos As Range
Dim Buscado As Object
'Definimos la variable ListadoEquipos
Set ListadoEquipos = Sheets("Equipos").Range("Equipos")
'Definimos una variable 'buscado'
Set Buscado = Nothing
'damos un valor a la variable 'buscado'
Set Buscado = ListadoEquipos.Find(ComboBox1.Value)
If Buscado Is Nothing Then
'Si el equipo escrito no está en la lista arroja el siguiente error
MsgBox "El equipo introducido [" & ComboBox1.Value & "] no se encuentra en la lista", vbInformation, _
"Detalle del error..."
Else
'si está, entonces devuelve el valor del 'importe' correspondiente
Sheets("Equipo Detalle").Activate
Range("B2").Value = Sheets("Equipos").Range("Equipos").Offset(ComboBox1.ListIndex, 0).Value
End If
Set ListadoEquipos = Nothing
Set Buscado = Nothing

End Sub

1 Respuesta

Respuesta
1

Tu macro tiene un detalle cuando entras a modificar el combobox, se vuelven a cargar todos los datos que tienen en el rango "equipos" entonces como estás nuevamente modificando el combo, entra en un ciclo.

Pero como todavía no sé qué es lo que pretendes, no sé cómo apoyarte.

Mejor explícame qué es lo que necesitas y hago la macro nueva. Lo primero que hay que hacer cuando abras tu libro es actualizar el combo, si modificas un dato en el rango "nombres" actualizar el combo, también me tienes que decir qué es lo que tienes en el rango "nombres": la tabla o una columna o una rango de la tabla, no lo sé, necesito que me digas qué tienes definido en el rango "nombres".

Muchas gracias antes que todo. El tema es el siguiente, el ComboBox1 lo que hace es traer el listado de equipos de una tabla, el rango "Equipos" solo hace referencia a la columna, la tabla es una consulta query a la base de datos, cuando la intento actualizar se genera el error mencionado y no se actualiza y como es obvio, es importante que los equipos se actualicen. De nuevo gracias 

Envíame tu archivo para actualizar la macro o habilitar una nueva.

Hola Dante, ya le envié el archivo a su correo. 

Saludos. 

Ajusté la macro para que la carga del combobox sea independiente, es decir, puedes ir a la hoja "Equipos", actualizar tus equipos y el combo se actualizará cuando regreses a la hoja "Equipo Detalle".

Private Sub ComboBox1_Change()
'Act.Por.Dante Amor
    Application.ScreenUpdating = False
    Set b = Sheets("Equipos").Range("equipos").Find(ComboBox1)
    If b Is Nothing Then
        'Si el equipo escrito no está en la lista arroja el siguiente error
        MsgBox "El equipo introducido [" & ComboBox1.Value & "] no se encuentra en la lista", _
        vbInformation, "Detalle del error..."
    Else
        'si está, entonces devuelve el valor del 'importe' correspondiente
        Range("B2") = ComboBox1
    End If
    Application.ScreenUpdating = True
End Sub
Private Sub Worksheet_Activate()
'Por.Dante Amor
    ComboBox1.ListFillRange = "equipos"
End Sub

Prueba la actualización y me comentas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas