Maria, he visto que no quedaste muy complacida con nuestras respuestas. Bueno te hice un código y un ejemplo, y espero te sirva como una nueva idea para tu repertorio.
Viendo tu ejemplo, en la vida real varias personas podrían tener el mismo nombre y la misma edad, por lo que supongo que lo único que no debe repetirse es el código. Bueno se me ocurrió hacerte algo mas divertido.
Observa el video demo que grabé: Video demo
¿Qué tal si el código se pone automáticamente? En el ejemplo, el TextBox del código esta deshabilitado, por lo que el usuario no podría entrar un código manualmente. Este código se genera a partir del ultimo dato y le suma 1, haciendo los números consecutivos y únicos.
Este es el código (son dos, uno para el evento Initialize del UserForm, y otro para el botón de guardar):
Private Sub CommandButton1_Click()
If Me.TextBox2.Value = "" Then MsgBox "Debe poner un nombre", vbExclamation, "Falta nombre": Me.TextBox2.SetFocus: Exit Sub
If Me.TextBox3.Value = "" Then MsgBox "Debe poner la edad", vbExclamation, "Falta edad": Me.TextBox3.SetFocus: Exit Sub
Dim Estudiante As Worksheet: Set Estudiante = Sheets("Estudiante")
Dim nF As Long: nF = Estudiante.Range("A" & Rows.Count).End(xlUp).Row + 1
Cells(nF, 1).Value = Me.TextBox1.Value
Cells(nF, 2).Value = Me.TextBox2.Value
Cells(nF, 3).Value = Me.TextBox3.Value
Me.TextBox2.Value = ""
Me.TextBox3.Value = ""
Call UserForm_Initialize
End Sub
Private Sub UserForm_Initialize()
Dim Estudiante As Worksheet: Set Estudiante = Sheets("Estudiante")
Dim uF As Long: uF = Estudiante.Range("A" & Rows.Count).End(xlUp).Row
Me.TextBox1.Value = Range("A" & uF).Value + 1
End Sub
Tambien te mejore la manera en que guardas los datos, tambien te agregue una validación al comienzo para asegurarse que el usuario sí introdujo algún nombre y alguna edad, y no haya dejado campos en blanco. Tambien puedes ejecutar estas instrucciones desde cualquier hoja sin tener que activar la hoja Estudiantes.
[