Hola Elsa!

Hola Elsa como estas, espero que bien, con la molestia de que si por favor me ayudaras con lo siguiente:
La otras vez te pedí capturar información de un formulario a una hoja de calculo y luego crear otro formulario que me arrastrala la información previamente capturada a otro formulario.
Ahora resulta que de aveces necesito capturar o modificar la información, pero a la hora de insertar la la nueva información, me la inserta en otra linea nueva, quedando esta como otro registro y no en el linea del registro original, es decir:
Clave descripción precio existencias
1 martillo 50 0
Pero a la hora de modificar o agregar datos queda así:
Clave descripción precio existencias
60 0
1 martillo 50 2
Queda en otra linea diferente, siendo información reciente de ese mismo producto, no se si me puedes ayudar por favor... Gracias de ante mano. Saludos y cuidate
1

1 Respuesta

2.194.165 pts. En mi sitio encontraran material de ayuda, ejemplos...
Disculpa, pero no guardo todas las repuestas enviadas, así que busqué la que creo fue tu consulta y basé mi ejemplo en un Userform que espero sea el tuyo:
Agrega al Userform 2 botones: Aceptar, Eliminar.
Se ingresará un código, por ejemplo. Si existe te mostrará los datos para que los modifiques o no. Si no existe los cuadros quedarán vacíos para que ingreses datos.
Con Aceptar se modifica el registro existente o se graba uno nuevo a partir de la primer fila vacía.
Con Eliminar se elimina la fila completa.
NO se podrá modificar el campo CÓDIGO
En el Userform, escribir ls siguientes rutinas:
Private Sub cmdAgregar_Click()
Sheets("Hoja3").Select
If control > 0 Then
Range(ubica).Value = Val(TextBox1)
Range(ubica).Offset(0, 1).Value = TextBox2
Range(ubica).Offset(0, 2).Value = Val(TextBox3)
control = 0
Else
Cells(filalibre, 1).Value = Val(TextBox1)
Cells(filalibre, 2).Value = TextBox2
Cells(filalibre, 3).Value = Val(TextBox3)
End If
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3 = ""
TextBox1.SetFocus
End Sub
Private Sub cmdEliminar_Click()
Sheets("Hoja3").Select
Range(ubica).EntireRow.Delete
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3 = ""
TextBox1.SetFocus
End Sub
Private Sub TextBox1_AfterUpdate()
Sheets("Hoja3").Select
filalibre = Range("A2").End(xlDown).Offset(1, 0).Row 'la variable filalibre guarda el nro. de la primer celda vacía.
control = 0
dato = Val(TextBox1)
rango = "A2:A" & filalibre
Set midato = ActiveSheet.Range(rango).Find(dato, LookIn:=xlValues, LookAt:=xlWhole)
If Not (midato) Is Nothing Then
ubica = midato.Address(False, False)
TextBox2.Value = Range(ubica).Offset(0, 1).Value
TextBox3.Value = Range(ubica).Offset(0, 2).Value
control = 1
End If
Set midato = Nothing
End Sub
Insertar un módulo y escribir lo siguiente:
Public ubica As String
Public control As Integer
Public filalibre As Integer
Disculpa la demora.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas