Posicionarme sobre el item de lisbox de acuerdo a elección
Hola Expertos, va mi preguntaes la siguiente. Deseo que el usuario edite datos de una planilla de seguimiento de licencias. Para ello cuento con un combo 'Seleccione Preceptor', previam. Cargado, un botón 'Buscar', un ListBox (ListHistorialLicencias) con los datos de las licencias tomadas (ordenado por filas con los datos; Desde, Hasta, Observaciones y un Label que muestra N° orden), mas un ComboBox 'cmbTipoLicencia' cargado con los tipos de licencias admitidos
La idea es que, cuando se elija el preceptor, se carguen en el listbox ListHistorialLicencias las licencias que tomo el preceptor.
Luego, si el operador lo desea, agregar una licencia nueva (pres. Botón 'nueva lic.'), eliminarla (btn 'Eliminar') o modificar el registro de las licencias halladas.
La operacion en general esta resuelta, pero por una cuestion de prolijidad y facilitarle las cosas al operador, quisiera que, cuando quiera corregir el tipo de licencia
1ro. Seleccione la operacion a corregir desde el ListBox 'ListHistorialLicencias'
2do que los datos de ese item se trasladen a las cajas de texto pertinentes y que
3ro el registro correspondiente al tipo de licencia seleccionado de este el item se 'aparezca', 'se haga coincidente' o 'se traslade' (No se como llamarlo) al mismo lugar coincidente en el ComboBox 'cmbTipoLicencia', recuerdese que 'cmbTipoLicencia' tiene ya cargados los tipos de licencias admitidos.
Estos le haria posible 'ver' los datos existentes al operador y a su vez permirtele modificar el tipo de licencia si se hubiera equivocado. Gracias
Mando vinculo con la imagen del form. Que coloque en la nube que para aclarar la pregunta
https://skydrive.live.com/redir?resid=7EF5504720FB7BB9!110
Aqui el codigo de lo realizado
Public indiceLic
Private Sub BtnSalir_Click()
Me.Hide
FrmMenu.Show
End Sub
Private Sub cmdBuscar_Click()
ListHistorialLicencias.Clear
i = 0
Range("a1").Select
r = 0
Do While ActiveCell.Value <> ""
If ActiveCell.Offset(0, 0).Value = CmbPreceptores.Text Then
If r = 0 Then
With ListHistorialLicencias
.AddItem "Nombre"
.Column(1, 0) = "Fecha desde"
.Column(2, 0) = "Fecha hasta"
.Column(3, 0) = "Tipo de Licencia"
.Column(4, 0) = "Observaciones"
.Column(5, 0) = "N° de Orden"
End With
With ListHistorialLicencias
.AddItem "--------------------------------------------"
.Column(1, 1) = "--------------------------------------------"
.Column(2, 1) = "--------------------------------------------"
.Column(3, 1) = "--------------------------------------------"
.Column(4, 1) = "--------------------------------------------"
.Column(5, 1) = "--------------------------------------------"
End With
r = r + 1
End If
ListHistorialLicencias.AddItem ActiveCell
i = ListHistorialLicencias.ListCount - 1
ListHistorialLicencias.List(i, 1) = ActiveCell.Offset(0, 1) 'Nombre
ListHistorialLicencias.List(i, 2) = ActiveCell.Offset(0, 2) 'Fecha desde
ListHistorialLicencias.List(i, 3) = ActiveCell.Offset(0, 3) 'Fecha Asta
ListHistorialLicencias.List(i, 4) = ActiveCell.Offset(0, 4) 'Tipo de Licencia
ListHistorialLicencias.List(i, 5) = ActiveCell.Offset(0, 5) 'Observaciones
ListHistorialLicencias.List(i, 6) = ActiveCell.Offset(0, 6) 'N° orden
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
End Sub
Private Sub ListHistorialLicencias_Click()
Me.BtnBaja.Enabled = True
Me.BtnModificar.Enabled = True
Me.BtnAlta.Enabled = False
indiceLic = ListHistorialLicencias.ListIndex
TextBox1 = ListHistorialLicencias.List(indiceLic, 1) 'Fecha desde
TextBox2 = ListHistorialLicencias.List(indiceLic, 2) 'Fecha hasta
Buscar = ListHistorialLicencias.List(indiceLic, 3) 'Tipo de Licencia
TextBox4 = ListHistorialLicencias.List(indiceLic, 4) 'Observaciones
Label23 = ListHistorialLicencias.List(indiceLic, 5) 'Num orden
'*** Habia intentado esto pero no funciono
'*** Dim strTexto As String
'*** Dim i As Long
'*** With ListHistorialLicencias
'*** For i = 0 To .ListCount - 1
'*** If LCase(Left$(.List(i), Len(Buscar))) = Buscar Then Exit For
'*** Next i
'*** If i = .ListCount Then
'*** ' no encontrado
'*** .ListIndex = -1
'*** Else
'*** ' encontrado
'*** .ListIndex = i
'*** End If
'*** End With
End Sub
Private Sub UserForm_Initialize()
Sheets("Licencias Tomadas").Select
Dim i As Long
i = 3
With Worksheets("Preceptores")
Do While .Range("a" & i) <> ""
CmbPreceptores.AddItem .Range("a" & i)
i = i + 1
Loop
End With
i = 3
With Worksheets("Tipos de Licencia")
Do While .Range("b" & i) <> ""
cmbTipoLicencia.AddItem .Range("b" & i)
i = i + 1
Loop
End With
frmEdicionLicencias.CmbPreceptores.ListIndex = 0
'frmEdicionLicencias.cmbTipoLicencia.ListIndex = 0
End Sub
Gracias desde ya por sus respuestas