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
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
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...!!!!!
- Compartir respuesta