Funcionamiento de 2 macros de combobox según selección en botón de opción

No encuentro como hacer funcionar dos combobox dependientes para los cuales tengo macros que los hacen funcionar el segundo en base al primero, y otra macro que las hacen funcionar el primero en base al segundo.

En userforms separados funcionan muy bien, pero cuando los integro en un solo userforms, y selecciono el funcionamiento de una de las dos direcciones en optionbuttons, dejan de funcionar, me salta error solo en un punto.

Cuando selecciono el optionbutton1 el comobobox2 funciona en base al combobox1 y

Cuando selecciono el optionbutton2 el comobobox1 funciona en base al combobox2

Esto lo hace muy bien el problema es cuando selecciono el valor en el combobox final cualquiera que sea, me da error en:

¿Dónde esta el error?

Los datos pertenecen a una hoja "Asignatura" con la cual trabajo constantemente.

Aunque hay una posible solución haciendo un rearreglo en una hoja de trabajo adicional -que tendría que ocultarla-, así no deseo hacerlo pues los datos los traigo de la hoja que quiero conservar (la Hoja "Asignatura")

1 respuesta

Respuesta
1

H o l a:

Lo que pasa, es que si la variable "valores" está vacía, no puedes extraer un dato (Mid), es por eso que te envía el error, lo que se tiene que hacer es verificar si es diferente de vacía:

Sub semestregrupo()
'Act.Por.Dante Amor
    ComboBox2.Clear
    For Each celda In Range("E4:E" & 10)
        If celda.Offset(0, 1) = ComboBox1 Then
            If InStr(valores, celda) = 0 Then
                valores = valores & "," & celda.Value
            End If
        End If
    Next
    If valores <> "" Then
        valores = Mid(valores, 2)
        valores = Split(valores, ",")
        For y = 0 To UBound(valores)
            ComboBox2.AddItem valores(y)
        Next
    End If
End Sub

Lo que entiendo es que estás cargando en el combobox2 los valores únicos, entonces puede ser así:

Sub semestregrupo()
'Por.Dante Amor
    ComboBox2.Clear
    For Each celda In Range("E4:E" & 10)
        If celda.Offset(0, 1) = ComboBox1 Then
            If InStr(valores, celda) = 0 Then
                valores = valores & "," & celda.Value
                ComboBox2.AddItem celda.Value
            End If
        End If
    Next
End Sub

Prueba y me comentas.


':)
':)

¡Gracias! Creo que el problema no fue duplicar los combobox pues pretendia hacerlos dependientes pero solo entre dos combobox: Por lo que tuve que poner en total cuatro combobox y hacerlos funcionar de dos en dos. Gracias de todos modos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas