Cargar datos en listbox a partir de diferentes rangos de celdas según ítem seleccionado en combobox

Para Dante Amor:

En la misma hoja tengo varias planillas idénticas, cada una de ellas se corresponde con un nº de sesión, así la sesión 1 tiene la planilla (I3:Z36), la sesión 2 la planilla (AB3:AS36) y así sucesivamente

Los registros de cada una de las planillas son llevados a cabo mediante un userform, con un filtro, y a partir de una lista generada se guarda en la planilla que he seleccionado a través del combo (cmbSesión) (en la imagen se ve ya el listbox con los ejercicios que serán cargados a la hoja, y en este caso a la planilla referente a la sesion1, en el caso no hay ninguno)

CmbSesión carga: Sesión 1, Sesión 2, Sesión 3...

En lo que me has ayudado anteriormente al abrir el Userform me salian ya los ejercicios que estaban dentro de la planilla 1 pk son las columnas que he dado de ejemplo (la I y la K) (en este caso da igual que nº de sesión escoja)

El caso es que quiero que al seleccionar el nº de sesión en el combo, el listbox muestre la selección (si la hay, ya que igual no hay ninguno) de ejercicios que están en la planilla correspondiente.

Ej en el caso de la sesión 1 sería algo así, ya con el código en el que tu me has ayudado:

With ListBox2
        .ColumnCount = 2
        .ColumnWidths = "20 pt; 50pt"
        .Clear
            If cmbSesión.text = "Sesión 1" Then
            Set h2 = Sheets("SesionesEntrenamiento2")
                For i = 11 To 25
                    If h2.Cells(i, "I") <> "" Then
                    .AddItem h2.Cells(i, "I")
                    .list(ListBox2.ListCount - 1, 1) = h2.Cells(i, "K")
                    End If
                Next
            End If
    End With
End Sub

Es una idea, pero no me funciona al colocar el IF.. Y me gustaria utilizar el mismo código para cada sesión.

2 respuestas

Respuesta
2

Solamente como breviario:

El evento initalize se utiliza cuando el userform se inicia por primera vez.

El evento Activate se utiliza para cada vez que se muestra el userform, por ejemplo, abres el userform1. Show, en ese momento se activan los eventos initialize y activate (en ese orden).

Si ocultas el userform1 y después lo vuelves a mostrar, entonces solamente se ejecuta el evento Activate.

Avísame si necesitas algo más. sal u dos

Respuesta
1

El problema era que colocaba el código dentro del evento initialize, ahora lo he pasado al evento change del combobox de sesiones y según la sesión que elijo ya me carga los items que hay en la planilla.

Resuelto!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas