Como modificar valores de un rango de celda desde un formulario con vba

Estoy trabajando con un formulario en Excel, el cual tiene un ListBox que se llena automáticamente al acceder al formulario, en este puedo realizar filtros dinámicos de la información mientras escribo el texto según el campo elegido en un ComboBox, en donde los registros están contenidos en un rango de celda el cual asigne un nombre (RowSource) llamado INFORMACIÓN el cual contiene 10 columnas.

En este formulario tengo 2 CommandButton 1 para Adicionar Nuevos Registros a la lista de excel y el otro lo usare para las modificaciones, entonces, aquí viene el problema quiero que para realizar las Modificaciones de la información registrada en las celdas, al hacer Click en la información presentada en el Listbox, tome la información contenida en la selección y al hacer Doble Click en el pase esta información y la coloque en un nuevo form para realizar las modificaciones y se actualice la celda y el listbox al guardarlo.

Entonces, realice un código en donde intente capturar la línea donde se encuentra la información del ListBox para posteriormente pasar al formulario donde se harán las modificaciones, pero no se como hacer referencia a que cuando guarde la modificación me afecte la línea de la celda que contiene la información a modificar, he intentado de varias maneras pero nada resulta.

Anexo el código que estoy utilizando, cuando hago click en el ListBox me envía un mensaje de error que dice en la línea que esta en negrita más abajo (Rango. Find), cuando no me da este error me da el error 91, no se que estoy haciendo mal a ver si me pueden ayudar.

Run-Time Error '13'

Typemismatch

Private Sub lstTerapeutas_Click()Range("A2").Activate
Dim Valor As Integer
Contar = Me.lstTerapeutas.ListCount
Set Rango = Range("A1").CurrentRegion
For i = 0 To Contar - 1
If Me.lstTerapeutas.Selected(i) Then
Valor = Me.lstTerapeutas.List(i)
Rango.Find(What:=Valor, LookAt:=xlWhole, After:=ActiveCell).Activate
End If
Next i
End Sub

Private Sub UserForm_Initialize()
Dim Rango, Celda As Range
Set Rango = Worksheets("Listados").Range("BA1:BA5")
For Each Celda In Rango
cmbCampo.AddItem Celda.Value
Next Celda

End Sub

Private Sub UserForm_Activate()
UltimoRegistro = Sheets("Listados").Range("A65536").End(xlUp).Row

'al contenido de la última celda le sumo 1
i = Sheets("Listados").Range("A" & UltimoRegistro).Value + 1

Me.lstTerapeutas.RowSource = "Terapeutas"
Me.lstTerapeutas.ColumnCount = 10
Me.lstTerapeutas.ColumnWidths = " 30;150;70;70;85;30;120;25;65;25;"
Me.lstTerapeutas.ColumnHeads = True
End Sub

Private Sub lstTerapeutas_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

If Me.lstTerapeutas.ListIndex < 0 Then
MsgBox "No se ha elegido ningún registro", vbExclamation, "CIADIF"
Else
frmMantTerapeutaMod.Show
End If
End Sub

He buscado en internet a ver si leyendo logro identificar algo que me sirve, no soy muy experto especialmente en las modificaciones, solo adicionar nuevos o en su defecto eliminar la línea con la información, pero no quiero estar haciendo esto cada vez que manipule un registro.

Añade tu respuesta

Haz clic para o