Comparar dos columnas y cargar combobox

Para Dan

¿Hola cómo estas?

Sabes que tengo el siguiente código "lo encontré en la web y lo adapte" que busca según la selección del comboboxcodigo_reb y llena el comboboxlote_reb ...

Los datos que están en el comboboxcodigo_reb los saco de la columna A

Lo datos que se llena en el comboboxlote_reb al elegir un dato del comboboxcodigo_reb los saca de la columna B ... Hasta ahí todo bien...

La idea es que cuando selecciono un dato del combobocodigo_reb este me muestra los datos que le corresponden a ese valor en el comboboxlote_reb.. Aquí esta lo que solicito cuando el código este ejecutándose compare la columna G y si esta tiene cero "0" o menores a Cero los datos de la comboboxlote_reb que tienen cero o menores no se muestren en el comboboxlote_reb...

EJ

A       B         G 

21     3          0

32     6         3

21     6          1

21     2        -3

En el Comboboxcodigo_reb muestra

21

32

21

21

Comboboxlote_reb muestra al elegir en el comboobxcodigo_reb el 21

Aqui solo deberia mostrar el

6

Por que el otro valor de 21 que es el 3 tiene cero en la columna G y el otro valor que tiene 21 que el que tiene 2 tiene valor -3 en ela columna G

No se si me explique bien pero esa es la idea

Application.ScreenUpdating = False
Dim myrange As Range, i As Integer, Celdi As Range, NameCeldi
i = Sheets("Registros").Range("A" & Rows.Count).End(xlUp).Row
Set myrange = Sheets("Registros").Range("A2:A" & i)
ComboBoxLote_Reb.Clear
        Set Celdi = myrange.Find(What:=ComboBoxCodigo_Reb.Text)
        If Not Celdi Is Nothing Then
            NameCeldi = Celdi.Address
            Do
                With ComboBoxLote_Reb
                  .AddItem Sheets("Registros").Range("B" & Celdi.Row)
                  .Column(1, .ListCount - 1) = Celdi.Row
                 End With
            Set Celdi = myrange.FindNext(Celdi)
        Loop While Not Celdi Is Nothing And Celdi.Address <> NameCeldi
        End If
        If ComboBoxLote_Reb.ListCount > 0 Then
            With ComboBoxLote_Reb
                .Visible = True
                .ListIndex = 0
            End With
        Else
        ''aqui tengo otro codigo que me funciona bien
        End If

1 Respuesta

Respuesta
2

Cambia esto:

            Do                With ComboBoxLote_Reb                  .AddItem Sheets("Registros").Range("B" & Celdi.Row)                  .Column(1, .ListCount - 1) = Celdi.Row                 End With            Set Celdi = myrange.FindNext(Celdi)        Loop While Not Celdi Is Nothing And Celdi.Address <> NameCeldi

Por esto:

        Do
            If Cells(Celdi.Row, "G") > 0 Then
                With ComboBoxLote_Reb
                    .AddItem Sheets("Registros").Range("B" & Celdi.Row)
                    .Column(1, .ListCount - 1) = Celdi.Row
                End With
            End If
            Set Celdi = myrange.FindNext(Celdi)
        Loop While Not Celdi Is Nothing And Celdi.Address <> NameCeldi

Saludos.Dante Amor

Recuerda valorar la respuesta.

Muchas gracias Dan

Andaba cerca pero a mi no me funcionaba :) .....

Tema Solucionado

Dan Sabes que el código funciona pero a la segunda vez

Elijo la selección del comboboxcodigo_reb aparecen todos contando los que tienen cero en la columna G elijo otro dato luego vualvoa a elegir el anterior y ahí me muestra solo los que no tienen cero o mayor a cero en la columna G

...

Por favor gracias

Lo que pasa es que en alguna parte realizaste la carga de datos en el combo comboboxcodigo_reb, pero ese código no lo pusiste, si gustas te ayudo con ese código, pero deberás crear una nueva pregunta. En la nueva pregunta pon el código que estás utilizando para cargar los combos.

Lo que pasa que el comboboxcodigo_reb lo cargaba al iniciar el userform

Y los controles los tengo en un multipage así que lo agregue ahí en el evento change y se arreglo...

Gracias Dan por la buena onda de ayudar

Ahora si tema solucionado

Saludos

¡Gracias! 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas