Cargar List Box según combo box con filtros Excel

Acudo nuevamente a solicitar de su ayuda en la cual le comento el formulario que estoy realizando y esperado contar con su apoyo.

Estoy elaborando un formulario en la cual busque un numero de pedido y selecciones una cantidad de artículos para luego cargar estos artículos a una plantilla para realizar la impresión de una guía de remisión.

Este es el formulario de ingreso selecciono el numero de pedido y al seleccionar el numero me carga los artículos que tiene este pedido.

Pero de esta lista puedo seleccionar que artículos van a ir en la guía y que productos no, si elimino los producto que no necesito en la guía estos artículos que no salen en la guía me salen como pendientes y los que salieron en la guía me sale como impreso.

Mi problema es el siguiente es cuando quiero cargar en el combo box cargar pedido solo los artículos que están pendientes de la hoja BD_GUIAS me salen todos artículos incluso que ya fueron impresos me puede ayudar con un código para solo carguen en el combo box los números pedidos pendientes y que al seleccionar el pedido se carguen en el LIST BOX y que en el combo box no se repitan los números de pedidos que solo se muestre uno.

Este es el código que utilizo para que en el combo pedido solo se muestren los artículos pendientes de impresión

Private Sub UserForm_Initialize()
Application.ScreenUpdating = False
Dim sd As New Collection
Dim celda As Range
Dim dato
Dim r As String
Dim uf As Integer
Application.ScreenUpdating = False
On Error Resume Next
ComboBox1.Clear
Sheets("BD_GUIAS").Select
Range("i7").Select
uf = Range("i" & Rows.Count).End(xlUp).Row
r = "i7:i" & uf
For Each celda In Range(r)
sd.Add celda.value, CStr(celda.value)
Next celda
For Each dato In sd
ComboBox1.AddItem dato
Next dato
TextBox11.Text = "PENDIENTE"
Application.ScreenUpdating = True
Hoja16.Select
'Unload Me
End Sub

 y este es el código que utilizo para que no mostrar duplicados en combo box pero al ingresarlo se cruza con el de artículos pendientes de impresión.

Dim fila As Integer
Dim uf1 As Integer
Dim d1, d2 As String
fila = 7
uf1 = Sheets("BD_GUIAS").Range("n" & Rows.Count).End(xlUp).Row
ComboBox1.Clear
While Sheets("BD_GUIAS").Cells(fila, 14) <> Empty
d1 = TextBox11.Text
d2 = Sheets("BD_GUIAS").Cells(fila, 14)
If d1 = d2 Then
ComboBox1.AddItem Sheets("BD_GUIAS").Cells(fila, 9)
End If
fila = fila + 1
Wend

gracias por la atención prestada

Slds

Robert

1 respuesta

Respuesta
1

H o l a:

No entendí muy bien lo que necesitas. Envíame tu archivo y me dices en cuál formulario estás trabajando y me explicas con ejemplos en lo que quieres que te ayude.

Recuerda poner en el asunto del correo tu nombre de usuario.

Hola Dante ya le envié la información solicitada..

Slds

Robert

H o l a:

Te anexo el código para cargar los números de pedido únicos en el combobox.

Private Sub UserForm_Initialize()
'Por.Dante Amor
    '
    'Carga Estados
    ComboBox4. AddItem "IMPRESO"
    ComboBox4. AddItem "PENDIENTE"
    ComboBox4 = "PENDIENTE"
    '
    'Carga Número de Pedidos
    CargaPedidos
End Sub
'
Sub CargaPedidos()
'Por.Dante Amor
    'Carga de número de pedidos
    Set h = Sheets("BD_GUIAS")
    ComboBox1.Clear
    For i = 7 To h.Range("A" & Rows.Count).End(xlUp).Row
        If UCase(h.Cells(i, "N")) = ComboBox4 Then
            agregar ComboBox1, h.Cells(i, "I")
        End If
    Next
End Sub
'
Sub agregar(combo As ComboBox, dato As String)
'Por.Dante Amor
    For i = 0 To combo.ListCount - 1
        Select Case StrComp(combo.List(i), dato, vbTextCompare)
            Case 0: Exit Sub 'ya existe en el combo y ya no lo agrega
            Case 1: combo.AddItem dato, i: Exit Sub 'Es menor, lo agrega antes del comparado
        End Select
    Next
    combo.AddItem dato 'Es mayor lo agrega al final
End Sub
'
Private Sub ComboBox4_Change()
'Por.Dante Amor
    CargaPedidos
End Sub

Crea una nueva pregunta para la revisar el código del listbox.


‘
F E L I Z A Ñ O T E D E S E A D a n t e A m o r. Recuerda valorar la respuesta. G r a c i a s
:) 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas