Ayuda con Combobox dependientes
Publicado por jonathan (1 intervención) el 15/02/2019 17:41:48
Buenas tardes,
Soy nuevo programando , tengo un problema con la codificación de mi formulario; la estructura de mi formulario es la siguiente:
AREA: COMBOBOX1
NOMBRES:COMBOBOX2
PRODUCTO:COMBOBOX3
FECHA: TEXTBOX1
MOTIVO : TEXTBOX2
Los 3 son combobox, el área selecciona la hoja de excel , el nombre me indica la lista de nombres que se encuentran en la hoja ya seleccionada y al elegir el producto quiero que se seleccione la celda xx ( fila : nombre escogido y columna : producto escogido ) , no logro encontrar un código para poder seleccionar la celda que cumpla esos 2 criterios para luego poder modificarla con un textbox , luego utilizar el activecell.offsett para modificar la columna de lado que es el motivo.
He logrado realizar todos los pasos menos el de seleccionar la celda de acuerdo al nombre y producto escogido , ayuda porfavor.
Gracias de Antemano ;
Adjunto mi codif. hasta el momento :
Private Sub ComboBox1_Change()
On Error Resume Next
Aplication.ScreenUpdating = False
ComboBox2.Clear
lista_corresp = ComboBox1.List(ComboBox1.ListIndex)
Sheets(lista_corresp).Select
Range("E12").Select
Do While Not IsEmpty(ActiveCell)
ComboBox2.AddItem ActiveCell
ActiveCell.Offset(1, 0).Select
Loop
End Sub
Private Sub ComboBox1_Enter()
On Error Resume Next
Aplication.ScreenUpdating = False
ComboBox1.Clear
For h = 1 To Sheets.Count
ComboBox1.AddItem Sheets(h).Name
Next h
End Sub
Private Sub ComboBox2_Change()
On Error Resume Next
Aplication.ScreenUpdating = False
ComboBox3.Clear
celda = ComboBox2.List(ComboBox2.ListIndex)
Cells.Find(What:=celda, LookAt:=xlWhole).Select
Range("F11").Select
ActiveCell.Offset(0, 0).Select
Do While Not IsEmpty(ActiveCell)
ComboBox3.AddItem ActiveCell
ActiveCell.Offset(0, 2).Select
Loop
End Sub
Private Sub ComboBox2_Click()
On Error Resume Next
Cells(ComboBox2.ListIndex + 12, 5).Select
End Sub
Private Sub ComboBox3_Change()
On Error Resume Next
Dim valor As Boolean
celda = ComboBox3.List(ComboBox3.ListIndex)
Cells.Find(What:=celda, SearchOrder:=xlRows, LookAt:=xlWhole).Select
ActiveCell.Offset(1, 0).Select
End Sub
Private Sub ComboBox3_Click()
On Error Resume Next
End Sub
Private Sub CommandButton1_Click()
ActiveCell.Offset(0, 0).Value = TextBox1.Text
ActiveCell.Offset(0, 1).Value = TextBox2.Text
End Sub
Private Sub CommandButton2_Click()
End
End Sub
Private Sub Label6_Click()
End Sub
Private Sub TextBox1_Change()
End Sub
Private Sub TextBox2_Change()
End Sub
Private Sub UserForm_Initialize()
On Error Resume Next
For Each Sh In Sheets
ComboBox1.AddItem Sh.Name
Next Sh
End Sub
Private Sub ComboBox1_Click()
On Error Resume Next
Sheets(ComboBox1.Value).Select
End Sub
Soy nuevo programando , tengo un problema con la codificación de mi formulario; la estructura de mi formulario es la siguiente:
AREA: COMBOBOX1
NOMBRES:COMBOBOX2
PRODUCTO:COMBOBOX3
FECHA: TEXTBOX1
MOTIVO : TEXTBOX2
Los 3 son combobox, el área selecciona la hoja de excel , el nombre me indica la lista de nombres que se encuentran en la hoja ya seleccionada y al elegir el producto quiero que se seleccione la celda xx ( fila : nombre escogido y columna : producto escogido ) , no logro encontrar un código para poder seleccionar la celda que cumpla esos 2 criterios para luego poder modificarla con un textbox , luego utilizar el activecell.offsett para modificar la columna de lado que es el motivo.
He logrado realizar todos los pasos menos el de seleccionar la celda de acuerdo al nombre y producto escogido , ayuda porfavor.
Gracias de Antemano ;
Adjunto mi codif. hasta el momento :
Private Sub ComboBox1_Change()
On Error Resume Next
Aplication.ScreenUpdating = False
ComboBox2.Clear
lista_corresp = ComboBox1.List(ComboBox1.ListIndex)
Sheets(lista_corresp).Select
Range("E12").Select
Do While Not IsEmpty(ActiveCell)
ComboBox2.AddItem ActiveCell
ActiveCell.Offset(1, 0).Select
Loop
End Sub
Private Sub ComboBox1_Enter()
On Error Resume Next
Aplication.ScreenUpdating = False
ComboBox1.Clear
For h = 1 To Sheets.Count
ComboBox1.AddItem Sheets(h).Name
Next h
End Sub
Private Sub ComboBox2_Change()
On Error Resume Next
Aplication.ScreenUpdating = False
ComboBox3.Clear
celda = ComboBox2.List(ComboBox2.ListIndex)
Cells.Find(What:=celda, LookAt:=xlWhole).Select
Range("F11").Select
ActiveCell.Offset(0, 0).Select
Do While Not IsEmpty(ActiveCell)
ComboBox3.AddItem ActiveCell
ActiveCell.Offset(0, 2).Select
Loop
End Sub
Private Sub ComboBox2_Click()
On Error Resume Next
Cells(ComboBox2.ListIndex + 12, 5).Select
End Sub
Private Sub ComboBox3_Change()
On Error Resume Next
Dim valor As Boolean
celda = ComboBox3.List(ComboBox3.ListIndex)
Cells.Find(What:=celda, SearchOrder:=xlRows, LookAt:=xlWhole).Select
ActiveCell.Offset(1, 0).Select
End Sub
Private Sub ComboBox3_Click()
On Error Resume Next
End Sub
Private Sub CommandButton1_Click()
ActiveCell.Offset(0, 0).Value = TextBox1.Text
ActiveCell.Offset(0, 1).Value = TextBox2.Text
End Sub
Private Sub CommandButton2_Click()
End
End Sub
Private Sub Label6_Click()
End Sub
Private Sub TextBox1_Change()
End Sub
Private Sub TextBox2_Change()
End Sub
Private Sub UserForm_Initialize()
On Error Resume Next
For Each Sh In Sheets
ComboBox1.AddItem Sh.Name
Next Sh
End Sub
Private Sub ComboBox1_Click()
On Error Resume Next
Sheets(ComboBox1.Value).Select
End Sub
Valora esta pregunta


0