Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Ejemplo de adición y eliminación de elementos de un Combobox

| 4 comentarios

El control del ComboBox se usa para añadir elementos al cuadro de combinaciones y para que el usuario pueda elegir entre ellas. Dependiendo del valor (si está activo o no) se realiza una acción u otra.

Ejemplo: Un ejemplo que involucre la adición y eliminación de elementos seria en una situación en la que un cine tiene que poner en su cartelera las películas de la semana. Los títulos de las películas van cambiando cada semana por ello creamos el siguiente procedimiento en un formulario:

Private Sub UserForm_Activate()
ult = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To ult
ComboBox1.AddItem (Cells(i, 1))
Next
End Sub

Private Sub CommandButton1_Click()
TextBox1.Text = ComboBox1.Value
End Sub

Este código permite que cuando se agregan o se quitan películas en la hoja excel, inmediatamente  se añade o se elimina del cuadro de combinaciones. Como se muestra:

ANTES:

Captura 1 300x92 Ejemplo de adición y eliminación de elementos de un Combobox
Captura2 Ejemplo de adición y eliminación de elementos de un Combobox

DESPUÉS: (Se ha eliminado una película y se ha puesto otra)

Elementos_Combobox 3

 

Elaborado por: Juan Carlos Castillo 

4 comentarios

  1. amigo suponiendo esta situacion uso un combobox para para una tabla "proovedores" y en esta en esta forma

    Codigo_EMpresa Nombre_Empresa
    002522555 Empresa1
    002555458 Empresa2
    004556654 Empresa3

    Mi combobox me muestra ambas columnas perfectamente, al señalar la empresa me guarda el codigo_empresa por ejemplo señalo el 2do registro que es "002555458" quisiera almacenar en una variable o celda de la hoja excel es el nombre que corresponde a ese codigo que sera "Empresa2", para un uso posterior a dicho nombre espero me puedan ayudar o orientar salu2...

  2. Una manera de que omita espacios vacios de la Lista las opciones de Combobox es:
    Private Sub ComboBox1_enter()
    Me.ComboBox1.Clear
    For x = 2 To Range("A" & Rows.Count).End(xlUp).Row
    If Cells(x, 1) Empty Then ComboBox1.AddItem Range("A" & x).Value
    Next
    End Sub

  3. CÓM SE DEBE HACER PARA INGRESAR LOS DATOS AL COMBOBOX, PERO QUE SE ENCUENTRAN EN UNA HOJA DIFERENTE, PO REJEMPLO, TENGO MI FORMULARIO EN LA HOJA 1 Y LOS DATOS DEL COMBOBOX ESTÁN EN LA HOJA 2.

    GRACIAS DE ANTEMANO

  4. necesito que me ayuden a termina un formulario que no he podido terminar

    la cuestion es la siguiente todo los botones me funciona bien pero el boton al que yo le coloque guaradar no funciona ni guardar ni modificar yo quiero que este boton guarde al modificar un textbox tiene como nombre "detalle"
    los textbox son los sgtes

    fecha ruta cliente factura valor detalle
    10/10/17 7610 olimpida 228570 250000 p

    p= pendiente que se encuentra por defecto
    L= liquidada (cambiar por "p") opcional dependiente cual fuera el caso
    I = anulada (cambiar por "p") opcional dependiente cual fuera el caso

    si me puedes ayudar hay le dejo me email. sdeleontous@gmail.com

    muchas gracias de antemano

    Private Sub buscar_Click()

    Set h = Sheets("Hoja1")
    Set b = h.Columns("D").Find(ingreso)
    Set C = h.Columns("D").Find(ingreso)
    Set D = h.Columns("D").Find(ingreso)
    Set E = h.Columns("D").Find(ingreso)
    Set F = h.Columns("D").Find(ingreso)

    If Not b Is Nothing Then

    fecha = h.Cells(b.Row, "A")
    ruta = h.Cells(b.Row, "B")
    cliente = h.Cells(b.Row, "C")
    factura = h.Cells(b.Row, "D")
    valor = h.Cells(b.Row, "E")
    detalle = h.Cells(b.Row, "F")

    End If

    End Sub
    Private Sub guardar_Click()

    "aqui he colocado muchas formulas pero no me funcionan o me salen error"

    fecha = Empty
    ruta = Empty
    cliente = Empty
    factura = Empty
    valor = Empty
    detalle = Empty
    ingreso = Empty

    MsgBox "Datos guardados"

    End Sub

    Private Sub salir_Click()
    End
    End Sub

    Private Sub detalle_Change()
    If IsNumeric(detalle) And _
    detalle.Text "" Then
    Beep
    MsgBox "Se debe ingresar L o I para continuar"
    detalle.Text = ""
    detalle.SetFocus
    End If
    End Sub

    Private Sub ingreso_Change()
    If Not IsNumeric(ingreso.Text) And _
    ingreso.Text "" Then
    Beep
    MsgBox "Se debe ingresar consecutivo de factura"
    ingreso.Text = ""
    ingreso.SetFocus
    End If
    End Sub

Deja una respuesta

Los campos requeridos estan marcados con *.