Estoy realizando desde excel y visual basic varios registros, entre unos de ellos es el boton Actualizar, que al momento de presionar, no cumple su funcion, al contrario Guarda como si fuera un nuevo registro, la linea de comando que estoy realizando es la siguiente:
Private Sub CommandButton4_Click()
Dim fila, final As Integer
Dim codigob As String
Dim Nombreb, sueldo As Variant
Dim nombre As String
codigob = TextBox1.Text
nombre = TextBox2.Text
sueldo = TextBox3.Text
Sheets("empleados").Select
Nombreb = Application.VLookup(codigob, Range("a:c"), 2, 0)
fila = Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
If IsError(Nombreb) Then
End If
If Sheets("empleados").Select Then
Cells(fila, 1) = codigob
Cells(fila, 2) = nombre
Cells(fila, 3) = sueldo
End If
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
End Sub
Adjunto | Tamaño |
---|---|
deber.xlsm | 20.55 KB |
el fallo lo tienes en la línea que busca la fila donde guardar los datos
fila = Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Esto siempre va a la fila siguiente a la última fila con datos, es decir, que siempre anotas los datos en la siguiente fila en blanco creando un registro nuevo.
Imagino que lo que querrás hacer será localizar la fila donde tienes el registro que has cargado en el formulario y guardar en esa misma fila sobrescribiendo lo que hay para actualizar la información ¿no?
Puedes utilizar por ejemplo la función de la hoja de cálculo MATCH (coincidir) para encontrar la posición del código qeu estás buscando
posicionbuscada= Application.WorksheetFunction.Match(...
------
Ya sé Excel, pero necesito más.