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

Añade tu respuesta

Haz clic para o