Corregir función que pegue los datos en la fila correspondiente de la base de datos.
Hola dante… creo que por esta ocasión será la última… pido tu apoyo de nuevo… tengo esta macro que es para modificar datos que obtengo en el USERFORM1 con el botón consultar y que se encuentran en su base de datos en orden alfabético por nombre y en Col. “B”. El caso es que cuando modifico uno o más datos, al accionar el botón “Modificar”, estos se colocan bien en la columna correspondiente pero en la última fila de la base de datos. Pido tu colaboración para corregir esa función que lo ordene en la fila que le corresponde… Muchas gracias por tus atenciones…
Private Sub CommandButton3_Click() 'Modificar
Application.ScreenUpdating = False
'xxxxxxx
Dim Mp As String
Mp = ComboBox1.Value
Sheets(Mp).Unprotect 'DESPROTEGE LA HOJA
Sheets(Mp).Activate
On Error GoTo 0
‘xxxxxxxx
'Set b = h1.Columns("B").Find(ComboBox1, LookAt:=xlWhole)
Range("b" & Cells.Rows.Count).End(xlUp).Offset(1).Select 'este es el mejor pero no los coloca en la fila correspondiente.
'xxxxxxxxx
ActiveCell.Offset(0, 1).Value = TextBox1 ' Apellidos
ActiveCell.Offset(0, 2).Value = TextBox2 ' Dirección
ActiveCell.Offset(0, 3).Value = TextBox3 ' Telefonos
ActiveCell.Offset(0, 4).Value = TextBox8 ' Mail
ActiveCell.Offset(0, 5).Value = ComboBox3
ActiveCell.Offset(0, 6).Value = ComboBox4
ActiveCell.Offset(0, 7).Value = Val(TextBox4) ' Dia
ActiveCell.Offset(0, 8).Value = Val(TextBox5) ' Mes
ActiveCell.Offset(0, 9).Value = Val(TextBox6) ' Año
ActiveCell.Offset(0, 10).Value = TextBox7 ' Comentarios
Application.ScreenUpdating = True
ComboBox2 = "" 'Limpia el combobox2
Dim respuesta As Integer, ctr As Control
respuesta = MsgBox("Datos modificados", vbInformation, "AVISO")
If respuesta = vbOK Then
For Each ctr In Me.Controls
If TypeOf ctr Is MSForms.TextBox Then
ctr = ""
End If
Next ctr
ComboBox2.SetFocus
Exit Sub
End If
Hoja1.Protect
'Mp.Protect
End Sub