Como se puede actualizar listbox automaticamente

hola de nuevo

podrian decirme como hago para que el  listbox se actualice automaticamente cuando agrego informacion?

que cuando presione el boton agregar el dato ingresado aparezca automaticamente en la ventana del listbox.

utilizo este codigo para agregar

Private Sub btn_agregar_Click()

    If cbo_nombre.Text = "" Then

        MsgBox "nombre invalido", vbInformation + vbOKOnly

        cbo_nombre.SetFocus

        Exit Sub

    End If

    If Not (Mid(cbo_nombre.Text, 1, 1) Like "[a-z]" Or Mid(cbo_nombre.Text, 1, 1) Like "[A-Z]") Then

        MsgBox "nombre invalido", vbInformation + vbOKOnly

        cbo_nombre.SetFocus

        Exit Sub

    End If

    For i = 2 To Len(cbo_nombre.Text)

        If Mid(cbo_nombre.Text, i, 1) Like "#" Then

            MsgBox "nombre invalido", vbInformation + vbOKOnly

            cbo_nombre.SetFocus

            Exit Sub

        End If

    Next

    Sheets("datos").Activate

    Dim fEmbarazada As Integer

    fEmbarazada = nEmbarazada(cbo_nombre.Text)

    If fEmbarazada = 0 Then

        Do While Not IsEmpty(ActiveCell)

            ActiveCell.Offset(1, 0).Activate 'si el registro no existe, se va al final.

        Loop

    Else

        Cells(fEmbarazada, 1).Select 'cuando ya existe el registro, cumple esta condicion.

    End If

    'aqui es cuando agregamos o modificamos el registro

    Application.ScreenUpdating = False

    ActiveCell = cbo_nombre

    ActiveCell.Offset(0, 1) = comunidad

    ActiveCell.Offset(0, 2) = fecha_nac

    ActiveCell.Offset(0, 4) = fur

    ActiveCell.Offset(0, 5) = fpp

    ActiveCell.Offset(0, 6) = pri_con

    ActiveCell.Offset(0, 8) = seg_con

    ActiveCell.Offset(0, 10) = ter_con

    ActiveCell.Offset(0, 12) = cua_con

    ActiveCell.Offset(0, 14) = qui_con

    ActiveCell.Offset(0, 16) = sex_con

    ActiveCell.Offset(0, 18) = sep_con

    ActiveCell.Offset(0, 20) = oct_con

    ActiveCell.Offset(0, 22) = nov_con

    Application.ScreenUpdating = True

    LimpiarFormulario

    cbo_nombre.SetFocus

    ordemiii ' esta es la llamada de la macro para ordenar los registros

    ActiveWorkbook.Save

    'activeworkbook.save

End Sub

Private Sub cbo_nombre_Change()

On Error Resume Next

    If nEmbarazada(cbo_nombre.Text) <> 0 Then

        Sheets("datos").Activate

        Cells(cbo_nombre.ListIndex + 5, 1).Select

        comunidad = ActiveCell.Offset(0, 1)

        fecha_nac = ActiveCell.Offset(0, 2)

        fur = ActiveCell.Offset(0, 4)

        fpp = ActiveCell.Offset(0, 5)

        pri_con = ActiveCell.Offset(0, 6)

        seg_con = ActiveCell.Offset(0, 8)

        ter_con = ActiveCell.Offset(0, 10)

        cua_con = ActiveCell.Offset(0, 12)

        qui_con = ActiveCell.Offset(0, 14)

        sex_con = ActiveCell.Offset(0, 16)

        sep_con = ActiveCell.Offset(0, 18)

        oct_con = ActiveCell.Offset(0, 20)

        nov_con = ActiveCell.Offset(0, 22)

     Else

        comunidad = ""

        fecha_nac = ""

        fur = ""

        fpp = ""

        pri_con = ""

        seg_con = ""

        ter_con = ""

        cua_con = ""

        qui_con = ""

        sex_con = ""

        sep_con = ""

        oct_con = ""

        nov_con = ""

        cbo_nombre.SetFocus

     End If

End Sub

Private Sub cbo_nombre_Enter()

cargarlista

End Sub

Sub cargarlista()

    cbo_nombre.Clear

    Sheets("datos").Select

    Range("A5").Select

    Do While Not IsEmpty(ActiveCell)

        cbo_nombre.AddItem ActiveCell.Value

        ActiveCell.Offset(1, 0).Select

    Loop

End Sub

Sub LimpiarFormulario()

    cargarlista

    cbo_nombre = ""

    comunidad = ""

    fecha_nac = ""

    fur = ""

    fpp = ""

    pri_con = ""

    seg_con = ""

    ter_con = ""

    cua_con = ""

    qui_con = ""

    sex_con = ""

    sep_con = ""

    oct_con = ""

    nov_con = ""  

End Sub

 ya he intentado varias formas que he encontrado pero no me funcionan.

1 respuesta

Respuesta
1

Si el listbox es dinámico, al meter datos en la base de datos se actualiza automáticamente y si es manual, hazlo dinámico

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas