Llamar con un combobox datos de la cell B y en un textbox arrojar el código que esta en la cell a

Ya tengo los tres combobox funcionando, el ultimo combobox como por ejemplo selecciona un material y ese material le coloque un código como por ejemplo tabla 1" tiene el código TE-001. En el caso de la selección de algún material con el combobox de la celda B me arroja el código correspondiente en el textbox. Pero al seleccionar en el combobox los materiales de la celda D m arroja el código del material de la celda B. Este es el código del Combobox que hace esa función Private Sub ComboBox1_change() On Error Resume Next Application.ScreenUpdating = False Cells(ComboBox1.ListIndex + 2, 2).SelectTextBoxCODIGO = ActiveCell.Offset(0, -1)

1 Respuesta

Respuesta
1

Puedes poner el código del combo de la columna B y también el código del combo de la columna D, pero si puedes copiar el código primero a Word y después aquí para que no aparezca amontonado en una solo línea.

Saludos. Dam

Estimado estoy prácticamente en la desesperación, debido a que solo me falta esto para terminar el programa de ordenes de compra. adjunto una imagen en la cual explico lo que en este momento hace la macro.

por asi decirlo.

el primer combobox selecciona la hoja, el segundo combobox, va seleccionado la cabeceras de la hoja seleccionada y el tercer combobox selecciona el material, según en donde se posiciono el combo2, hasta hay todo bien pero, en el combobox 3 tengo un textbox ligado a el, el cual me arroja el código del material del combobox3, pero en este momento solo me arroja el código del primer material que, al colocarme sobre el material de la columna d por ejemplo. me arroja el código del material de la columna b

Private Sub ComboBox1_Enter()
Application.ScreenUpdating = False
ComboBox1.Clear
Range("a1").Select
columna = ComboMODELO.ListIndex + 1
Cells(2, columna).Select
Do While Not IsEmpty(ActiveCell)
ComboBox1.AddItem ActiveCell
ActiveCell.Offset(1, 0).Select
Loop
End Sub
Private Sub ComboMARCA_Enter()
On Error Resume Next
ComboMODELO.Clear
ComboMARCA.Clear
For L = 7 To Sheets.Count
ComboMARCA.AddItem
Sheets(L).Name
Next
End Sub
Private Sub
ComboBox1_change()
On Error Resume Next
Cells(ComboBox1.ListIndex + 2, 2).Select
TextBoxCODIGO = ActiveCell.Offset(0, -1)
End Sub
Private Sub ComboMODELO_Enter()
On Error Resume Next
Application.ScreenUpdating = False
ComboMODELO.Clear
ComboBox1.Clear
list_corresp = ComboMARCA.List(ComboMARCA.ListIndex)
Sheets(list_corresp).Select
Range("A1").Select
Do While ActiveCell <> Empty
ComboMODELO.AddItem ActiveCell.Value
ActiveCell.Offset(0, 1).Select
Loop
End Sub
Private Sub CommandButtonACEPTAR_Click()
Sheets("OC").Select
ActiveCell = ComboMARCA
ActiveCell.Offset(0, 1) = ComboMODELO
ActiveCell.Offset(0, 3) = TextBoxCODIGO
ActiveCell.Offset(0, 4) = ComboUNIDADES
ActiveCell.Offset(0, 5) = TextBoxCANTIDAD
ActiveCell.Offset(0, 6) = TextBoxPRECIO
ComboMARCA.Clear
ComboMODELO.Clear
ComboUNIDADES = ""
TextBoxCODIGO = ""
TextBoxCANTIDAD = ""
TextBoxPRECIO = ""
rellenoorden.Hide
End Sub

No veo la imagen, pero el problema del código es esta línea

TextBoxCODIGO = ActiveCell.Offset(0, -1)

Le dices que el texbox sea igual a una celda donde actualmente está el cursor, pero como el cursor se puede mover, ahora te puede traer un dato de la columna B o te puede traer un dato de la column F, según donde se encuentre el cursor.

Si me puedes enviar tu archivo para hacer pruebas, y te corrijo la macro.

Estimado.

Envío via email la macros.

Cambia este código

ComboBox1_change()
On Error Resume Next
Cells(ComboBox1.ListIndex + 2, 2).Select
TextBoxCODIGO = ActiveCell.Offset(0, -1)
End Sub

Por este

Private Sub ComboBox1_change()
On Error Resume Next
Dim columna As Integer
columna = ComboMODELO.ListIndex + 1
Cells(ComboBox1.ListIndex + 2, columna).Select
TextBoxCODIGO = ActiveCell.Offset(0, -1)
End Sub

Saludos. Dam
Si es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas