Excel - ComboBox con Rango HORIZONTAL

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

ComboBox con Rango HORIZONTAL

Publicado por Jelis (6 intervenciones) el 05/09/2018 17:39:08
Hola, buenas tardes.

Estoy utilizando listas desplegables por medio de ComboBox.

Cuando añado el rango en ListFillRange sólo me permite hacerlo con columnas (Rangos Verticales) por ej: A1:A20.

Necesito añadir rangos horizontales (del tipo A1:J1).

¿Alguna macro para añadir al ComboBox?


Muchas gracias
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 Andres Leonardo
Val: 3.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

ComboBox con Rango HORIZONTAL

Publicado por Andres Leonardo (1583 intervenciones) el 05/09/2018 21:09:41
dentro del ecento que necesitas es esto


1
2
3
4
5
6
7
Dim rng As Range: Set rng = Application.Range("A1:J1")
Dim cel As Range
For Each cel In rng.Cells
    With cel
        ComboBox1.AddItem cel.Value
    End With
Next cel
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: 8
Ha aumentado su posición en 3 puestos en Excel (en relación al último mes)
Gráfica de Excel

ComboBox con Rango HORIZONTAL

Publicado por Jelis (6 intervenciones) el 06/09/2018 12:59:44
Hola Andres Leonardo.

Me reporta error.

Adjunto las imágenes.

Gracias de antemano
Depuracion-ComboBox
Error-Combobox
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

ComboBox con Rango HORIZONTAL

Publicado por Antoni Masana (2477 intervenciones) el 06/09/2018 13:28:41
El código que te puso Andres Leonardo es para cargar el ComboBox1 y no lo puedes cargar (llenar la lista de opciones) cuando cuando seleccionas una opción.

Debes ponerlo para que se ejecute al abrir el Libro.

1
2
3
4
5
6
7
8
9
10
11
Private Sub Workbook_Open()
    Dim rng As Range, cel As Range
 
    Set rng = Application.Range("A1:J1")
    With cel
        Hoja1.ComboBox1.Clear
         For Each cel In rng.Cells
             Hoja1.ComboBox1.AddItem cel.Value
         Next
    End With
End Sub

También puedes ponerlo para que refresque el ComboBox1 si modificas el contenido del rango

1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range, cel As Range
 
    If Target.Row = 1 And Target.Column <= 10 Then
        Set rng = Application.Range("A1:J1")
        With cel
            ComboBox1.Clear
             For Each cel In rng.Cells
                 ComboBox1.AddItem cel.Value
             Next
        End With
    End If
End Sub

Adjunto ejemplo.

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

ComboBox con Rango HORIZONTAL

Publicado por Jelis (6 intervenciones) el 06/09/2018 14:10:08
Muchas Gracias Antoni.

El ejemplo funciona genial.

¿Cómo puedo modificar el rango (por ejemplo A2:J2)? La casilla del ComboBox "ListFillRange está vacía y si la modifico no cambia nada.
Tampoco se modifica si lo cambio en el VB.

Muchas 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

ComboBox con Rango HORIZONTAL

Publicado por Antoni Masana (2477 intervenciones) el 07/09/2018 21:47:04
No entiendo que es lo que significa esta frase:

¿Cómo puedo modificar el rango (por ejemplo A2:J2)? La casilla del ComboBox "ListFillRange está vacía y si la modifico no cambia nada.

Entiendo la pregunta o eso creo.

Si en lugar de Tener el rango de A1:J1 es A2:J2 debes cambiar dos cosas:

En la funcion que carga el ComboBox:

1
2
3
4
5
6
7
8
9
10
11
Private Sub Workbook_Open()
    Dim rng As Range, cel As Range
 
    Set rng = Application.Range("A1:J1")("A2:J2")
    With cel
        Hoja1.ComboBox1.Clear
         For Each cel In rng.Cells
             Hoja1.ComboBox1.AddItem cel.Value
         Next
    End With
End Sub

Y en la función de modificar las celdas:

1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range, cel As Range
 
    If Target.Row = 2 And Target.Column <= 10 Then    ' --- Aqui dice: Si modificas una celda de la FILA 2 
        Set rng = Application.Range("A2:J2")          '      y la columna de la 1 a la 10 has esto:
        With cel
            ComboBox1.Clear
             For Each cel In rng.Cells
                 ComboBox1.AddItem cel.Value
             Next
        End With
    End If
End Sub

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

ComboBox con Rango HORIZONTAL

Publicado por jelis (6 intervenciones) el 11/09/2018 22:04:02
Muchas gracias por la atención prestada Antoni.
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