Para modificar un registro, primero hay que presionar dobleclick sobre el registro del listbox y llenar los textbox. Para eso el siguiente evento:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
'Por.Dante Amor
'Pasa los datos del listbox a los textbox
'txtColumna1 = ListBox1.List(ListBox1.ListIndex, 0)
txtColumna1 = ListBox1.List(ListBox1.ListIndex, 1)
txtColumna2 = ListBox1.List(ListBox1.ListIndex, 2)
txtColumna3 = ListBox1.List(ListBox1.ListIndex, 3)
txtColumna4 = ListBox1.List(ListBox1.ListIndex, 4)
txtColumna5 = ListBox1.List(ListBox1.ListIndex, 5)
txtColumna6 = ListBox1.List(ListBox1.ListIndex, 6)
txtColumna7 = ListBox1.List(ListBox1.ListIndex, 7)
txtColumna8 = ListBox1.List(ListBox1.ListIndex, 8)
txtColumna9 = ListBox1.List(ListBox1.ListIndex, 9)
txtColumna10 = ListBox1.List(ListBox1.ListIndex, 10)
txtColumna11 = ListBox1.List(ListBox1.ListIndex, 11)
txtColumna12 = ListBox1.List(ListBox1.ListIndex, 12)
End Sub
Ahora, después de actualizar los datos en los textbox, necesitamos de otro botón para realizar los cambios en la hoja.
Para eso el siguiente:
Private Sub CommandButton1_Click()
'Modificar datos
'mensaje cuando no se eligio hoja
If ComboBox1.ListIndex = -1 Or ComboBox1.Value = "" Then
MsgBox "Selecciona una hoja", vbExclamation
Exit Sub
End If
If ListBox1.ListIndex = -1 Then
MsgBox "Selecciona una línea del listbox", vbExclamation
Exit Sub
End If
Set h = Sheets(ComboBox1.Value)
fila = ListBox1.ListIndex + 3
h.Cells(fila, 2) = txtColumna1
h.Cells(fila, 3) = txtColumna2
h.Cells(fila, 4) = txtColumna3
h.Cells(fila, 5) = txtColumna4
h.Cells(fila, 6) = txtColumna5
h.Cells(fila, 7) = txtColumna6
h.Cells(fila, 8) = txtColumna7
h.Cells(fila, 9) = txtColumna8
h.Cells(fila, 10) = txtColumna9
h.Cells(fila, 11) = txtColumna10
h.Cells(fila, 12) = txtColumna11
h.Cells(fila, 13) = txtColumna12
ComboBox1_Click
txtColumna1.Text = ""
txtColumna2.Text = ""
txtColumna3.Text = ""
txtColumna4.Text = ""
txtColumna5.Text = ""
txtColumna6.Text = ""
txtColumna7.Text = ""
txtColumna8.Text = ""
txtColumna9.Text = ""
txtColumna10.Text = ""
txtColumna11.Text = ""
txtColumna12.Text = ""
MsgBox "Registro actualizado"
End Sub
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias