Combobox no me muestra datos repetidos en la misma columna

el combobox lo relleno con rowsorce:

filalibre = Sheets("Gastos").Range("A65500").End(xlUp).Row
ComboBox1.RowSource = "Gastos!A2:I10000 " & filalibre

en la misma columna hay datos de nombre de proveedores repetidos, el combobox los muestra todos pero no me cambia, es decir al cambiar el mismo proveedor con otros datos estos no cambian quedan con el registro unicial, que puedo hacer??....gracias...

1 respuesta

Respuesta
1

Para actualizar los datos del combobox debes recargar los datos

Primero anulas en enlace:

combobox1.rowsource = ""

Y posteriormente lo vuelves a establecer con tu código

hola gracias por tu aportación..pero aun me sigue sin funcionar...he optado por otro método pero no hace lo que la instrucción dice te pongo lo que tengo puesto:

Private Sub UserForm_Activate()
Sheets("Gastos").Select
ComboBox1.List = Range("A2", Range("B65536").End(xlUp)).Value
ComboBox1.ColumnCount = 2
ComboBox1.ColumnWidths = 30
End Sub

hasta aquí todo solucionado me muestra todos los nombres repetidos en la misma columna, y en esta otra instrucción tengo puesto esto para el combobox:

Private Sub ComboBox1_Click()
If ind = 1 Then
ind = 0
Exit Sub
End If
dato = ComboBox1.Value
rango = "A2:I10000"
Set midato = Sheets("Gastos").Range(rango).Find(dato, LookIn:=xlValues, LookAt:=xlWhole)
If Not (midato) Is Nothing Then
ubica = midato.Address(False, False)
TextBox1.Value = Sheets("Gastos").Range(ubica).Offset(0, 0).Value
TextBox2.Value = Sheets("Gastos").Range(ubica).Offset(0, 1).Value
TextBox3.Value = Sheets("Gastos").Range(ubica).Offset(0, 2).Value
TextBox4.Value = Sheets("Gastos").Range(ubica).Offset(0, 3).Value
TextBox5.Value = Sheets("Gastos").Range(ubica).Offset(0, 4).Value
TextBox6.Value = Sheets("Exsistencias").Range(ubica).Offset(1, 6).Value 'unidades pedidas
TextBox8.Value = Sheets("Exsistencias").Range(ubica).Offset(1, 4).Value 'stock actual
control = 1
Else
MsgBox "No se encuentra los datos del Proveedor"
End If
Set midato = Nothing
End Sub

lo del combobox1 lo he solucionado, pero al cambiar que muestre 2 columnas ahora cuando pulso el combobox1 no me muestra o no localiza los datos de textbox6 y textbox8,por que la instrucción que tiene es ubicar el código al que corresponde de la hoja exsistencias..en que estoy fallando...Gracias un saludo

El fallo es bastante evidente, lo que busca tu código es en la hoja Gastos, y la posicion devuelta corresponde a su celda en dicha hoja, que no tiene porque ser la misma celda que en la hoja Existencias, por eso no te la encuentra. Lo que debes hacer es una nueva busqueda dentro de la hoja existencias para el articulo.

El codigo ya lo tienes, solo es adaptarlo a la hoja existencias:

Set midato = Sheets("Exsistencias").Range(rango).Find(dato, LookIn:=xlValues, LookAt:=xlWhole)
If Not (midato) Is Nothing Then
ubica = midato.Address(False, False)
TextBox6.Value = Sheets("Exsistencias").Range(ubica).Offset(1, 6).Value 'unidades pedidas
TextBox8.Value = Sheets("Exsistencias"). Range(ubica).Offset(1, 4).Value 'stock actual

tal vez deberias adaptar el valor de la variable rango para tu hoja de existencias

Muchísimas Gracias Por Tus Respuestas, Pero Aun Sigue Sin Mostrarme Los Datos Del Textbox6 y textbox8 de la hoja exsistencias a la misma vez que me muestra los datos de la hoja gastos, no se que hago mal, Un Saludo

¿Cómo has modificado tu código? Ponme como tienes el código actualmente

Hola... Que tal..?Te Comento,Trabajo con userform en todas mis hojas, cuando grabo registros como por ejemplo: crear pedidos con un userform grabo los registros en la hoja exsistencias, Proveedor,código del articulo, descripción,precio compra precio de venta,unidades compradas y unidades recibidas y su fecha,y con otro userform valido las entradas creadas con el userform "validar pedidos" a la hora de buscar el código que he comprado lo busco en el rango donde se han grabado los registros AO3:AX20000, hasta ahy todo bien...pero en otro rango de la misma hoja necesito que me muestre las unidades pedidas y eso me lo da el textbox6,muestra unidades pedidas, textbox8, muestra las unidades en Stock actual, y textbox9 mostraría las unidades pendientes de servir....si es que las ahy,todo esos datos se encuentran en la columna D, F , H de la misma hoja pero el userform "validar Pedidos" cuando pulso el combobox me muestra esos datos Pero no haciendo referencia al código que hay que encontrar, te pongo lo que tengo puesto en el userform "validar pedidos":

Private Sub ComboBox1_Click()
If ind = 1 Then
ind = 0
Exit Sub
End If
dato = ComboBox1.Value
rango = "AO3:AX20000"
Set midato = Sheets("Exsistencias").Range(rango).Find(dato, LookIn:=xlValues, LookAt:=xlWhole)

If Not (midato) Is Nothing Then
ubica = midato.Address(False, False)

TextBox1.Value = Sheets("Exsistencias").Range(ubica).Offset(0, 0).Value
TextBox2.Value = Sheets("Exsistencias").Range(ubica).Offset(0, 1).Value
TextBox3.Value = Sheets("Exsistencias").Range(ubica).Offset(0, 2).Value
TextBox4.Value = Sheets("Exsistencias").Range(ubica).Offset(0, 3).Value
TextBox5.Value = Sheets("Exsistencias").Range(ubica).Offset(0, 4).Value
TextBox6.Value = Sheets("Exsistencias").Range(ubica).Offset(0, -34).Value 'und pedidas
TextBox8.Value = Sheets("Exsistencias").Range(ubica).Offset(0, -36).Value 'stock actual
TextBox9.Value = Sheets("Exsistencias").Range(ubica).Offset(0, -34).Value' pendientes de servir
control = 1
Else
MsgBox "No se encuentra los datos del Proveedor"
End If
Set midato = Nothing
End Sub

El problema esta en que encuentre los datos Del textbox6 textbox8 y textbox9

según el proveedor encontrado por el combobox1 No se Si Me He Explicado Bien Espero

que si...y sobre todo darte las gracias por las molestias que te estoy ocasionando..pero es que este tema me tiene muy rallado de todo el libro para poder finalizarlo me falta esto

¿Puedes enviarme tu libro a [email protected]? si es que no tiene información sensible, asi me hago una idea mejor del problema y como solucionarlo

heyyyy.......ya lo encontré en el mismo código he puesto esto:

Private Sub ComboBox1_Click()
If ind = 1 Then
ind = 0
Exit Sub
End If
dato = ComboBox1.Value
rango = "AO3:AX20000"
Set midato = Sheets("Exsistencias").Range(rango).Find(dato, LookIn:=xlValues, LookAt:=xlWhole)
If Not (midato) Is Nothing Then
ubica = midato.Address(False, False)
TextBox1.Value = Sheets("Exsistencias").Range(ubica).Offset(0, 0).Value
TextBox2.Value = Sheets("Exsistencias").Range(ubica).Offset(0, 1).Value
TextBox3.Value = Sheets("Exsistencias").Range(ubica).Offset(0, 2).Value
TextBox4.Value = Sheets("Exsistencias").Range(ubica).Offset(0, 3).Value
TextBox5.Value = Sheets("Exsistencias").Range(ubica).Offset(0, 4).Value

HE AÑADIDO ESTO Y HE CAMBIADO EL RANGO Y EL DATO.....


If ind = 1 Then
ind = 0
Exit Sub
End If

dato = TextBox1.Value
rango = "A3:L20000"


Set midato = Sheets("Exsistencias").Range(rango).Find(dato, LookIn:=xlValues, LookAt:=xlWhole)
If Not (midato) Is Nothing Then
ubica = midato.Address(False, False)
TextBox6.Value = Sheets("Exsistencias").Range(ubica).Offset(0, 7).Value 'unidades pedidas
TextBox8.Value = Sheets("Exsistencias").Range(ubica).Offset(0, 5).Value 'stock actual -1, 4
TextBox9.Value = Sheets("Exsistencias").Range(ubica).Offset(0, 7).Value

control = 1
Else
MsgBox "No se encuentra los datos del Proveedor"
End If
Set midato = Nothing
End If
End Sub

MUCHÍSIMAS GRACIAS POR TU APORTACIÓN AUNQUE TENGO EN CUENTA EN ENVIARTE EL LIBRO PARA VER EN QUE ME LO PODÍAS MEJORAR...QUE SEGURO QUE SI.....

UN SALUDO DESDE ALMERÍA...!!!!!

SENCILLAMENTE GRACIAS POR LA DEDICACIÓN QUE APLICÁS A NUESTRAS INTERMINABLES DUDAS Y POR LA ENORME PACIENCIA Y RAPIDEZ EN LAS RESPUESTAS

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas