Modificar dato

Buenos días. Con este código llevo los datos de un userform hacia la hoja .Ahora necesito como hacer para que también si necesito pueda modificar o borrar el dato por favor ayúdame..
Gracias!...
Private Sub UserForm_Click()
Private Sub UFAGREGAR_Click()
'definimos las variables
Dim iFila As Long
Dim ws As Worksheet
Set ws = Worksheets(1)
' Encuentra la siguiente fila vacía
iFila = ws.Cells(Rows.Count, 1) _
.End(xlUp).Offset(1, 10).Row
' Verifica que se ingrese un codigo
If Trim(Me.UFCODIGO.Value) = "" Then
Me.UFCODIGO.SetFocus
MsgBox "DEBE INGRESAR UN CODIGO"
Exit Sub
End If
' Copia los datos a la tabla Excel
ws.Cells(iFila, 1).Value = Me.UFCODIGO.Value
' Limpia el formulario
Me.UFCODIGO.Value = ""
Me.UFCODIGO.SetFocus
End Sub
Respuesta
1
Primero que nada disculpa pero tuve que salir y no había revisado los correos
Yo te voy a enviar como yo ingreso los datos a un Userform, ya que yo grabo los datos al final. Y como modificar esos mismos datos
Este código así yo ingreso más o menos los datos ya que espero tener todos los datos en el userform y luego ingreso los datos a la planilla, cuando estoy seguro de que los datos están correctos, ahora bien cada uno ingresa como lo estime conveniente, igual te mando este código para que lo veas y saques tu propia idea.
Luego te mando el tema para modificar los mismos datos.
Private Sub CommandButton1_Click()
'activamos la hoja 1 donde se encuentran los datos
Worksheets("LibrodeCompras").Activate
Dim fila As String
Dim Total1, neto1, exento1, iva1 As Integer
Dim fecha As Date
TextBox9 = UserForm1.TextBox9.Text
'Verificamos que todos los campos esten llenos
If TextBox9 = Empty Or ComboBox1 = Empty Or ComboBox2 = Empty Or NumeroFac = Empty Or Exento = Empty Or Neto = Empty Or Iva = Empty Or Total = Empty Then
    MsgBox Prompt:="No deje NINGUN campo vacio", Buttons:=vbOKOnly, Title:="Campo vacio"
    GoTo seguir
End If
Range("A13").Select
Rows("13:13").Select
fila = ActiveCell.Row
Selection.Insert Shift:=xlDown
hojaderuta = Val(TextBox5)
ActiveCell = Val(TextBox5)
Range("b" + fila) = Val(NumeroFac)
Range("c" + fila) = CDate(TextBox9)
Range("d" + fila) = ComboBox2
Range("e" + fila) = Val(ComboBox1 * 1)
Range("f" + fila) = Val(Label48)
Range("g" + fila) = Label40
Range("h" + fila) = Val(Exento * 1)
Range("i" + fila) = Val(Neto * 1)
Range("j" + fila) = Val(Iva * 1)
Range("k" + fila) = Val(Total * 1)
Range("l" + fila) = TextBox6
Range("m" + fila) = CDate(Vencimiento)
Range("o" + fila) = Val(TextBox13)
Range("p" + fila) = Val(TextBox20)
Range("s" + fila) = DateValue(Now)
Range("t" + fila) = TimeValue(Now)
Range("B13").Select
Unload UserForm1
Worksheets("LibrodeCompras").Activate
Exit Sub
seguir:
CommandButton1.SetFocus
End Sub
Private Sub CommandButton2_Click()
Unload UserForm1
End Sub
'************************************  INICIO DEL SISTEMA **************************************************
Private Sub UserForm_Initialize()
ComboBox2. AddItem "ENERO"
ComboBox2. AddItem "FEBRERO"
ComboBox2. AddItem "MARZO"
ComboBox2. AddItem "ABRIL"
ComboBox2. AddItem "MAYO"
ComboBox2. AddItem "JUNIO"
ComboBox2. AddItem "JULIO"
ComboBox2. AddItem "AGOSTO"
ComboBox2. AddItem "SEPTIEMBRE"
ComboBox2. AddItem "OCTUBRE"
ComboBox2. AddItem "NOVIEMBRE"
ComboBox2. AddItem "DICIEMBRE"
Dim fecha, MiHora As Date
Dim opera As String
Range("D13").Select
ComboBox2 = ActiveCell.Value
Range("a13").Select
TextBox5 = ActiveCell.Value + 1
TextBox21 = ActiveCell.Value + 1
fecha = DateValue(Now)
MiHora = TimeValue(Now)
Vencimiento = DateValue(Now)
Exento = 0
Neto = 0
Iva = 0
Total = 0
TextBox9 = fecha
End Sub
Este código te sirve para modificar, si te darás cuanta es algo similar, debes crear otro userform similar al del ingreso, pero para modificación, este código te muestra la idea de ubicar la fila que vas a modificar y va subiendo dato por dato al userform, una vez que lo carga con los datos queda a la espera de modificaciones y al presionar el botón command de ingreso vuelve a grabar los datos nuevos.
Ademas que quiero contar que la idea de modificar debe tener un dato para encontrar la información, de esta manera se crea otro userform que pide el dato, por ejemplo el numero de factura, un correlativo, una fecha lo que sea más importante en tus datos y obviamente que no se repita en el rango de información.
Velo y me cuentas como te va
' ***********************************   INICIO DE FORMULARIO    ********************************
Private Sub UserForm_Initialize()
Worksheets("LibrodeCompras").Activate
'Cargamos los Meses
ComboBox2. AddItem "ENERO"
ComboBox2. AddItem "FEBRERO"
ComboBox2. AddItem "MARZO"
ComboBox2. AddItem "ABRIL"
ComboBox2. AddItem "MAYO"
ComboBox2. AddItem "JUNIO"
ComboBox2. AddItem "JULIO"
ComboBox2. AddItem "AGOSTO"
ComboBox2. AddItem "SEPTIEMBRE"
ComboBox2. AddItem "OCTUBRE"
ComboBox2. AddItem "NOVIEMBRE"
ComboBox2. AddItem "DICIEMBRE"
Worksheets("LibrodeCompras"). Activate
Range("A13").Select
While ActiveCell.Value <> modifica
    If ActiveCell.Value <> Empty Then
        ActiveCell.Offset(1, 0).Select
    Else
        MsgBox "No existe la Operacion Ingresada"
        GoTo Salir
        Exit Sub
    End If
Wend
TextBox5 = ActiveCell.Value
TextBox5 = UserForm4.TextBox5.Value
TextBox21 = TextBox5
ActiveCell.Offset(0, 1).Select
NumeroFac = ActiveCell.Value
NumeroFac = UserForm4.NumeroFac.Value
ActiveCell.Offset(0, 1).Select
TextBox9 = ActiveCell.Value
TextBox9 = UserForm4.TextBox9.Value
ActiveCell.Offset(0, 1).Select
ComboBox2 = ActiveCell.Value
ComboBox2 = UserForm4.ComboBox2.Value
ActiveCell.Offset(0, 1).Select
ComboBox1 = ActiveCell.Value
ComboBox1 = UserForm4.ComboBox1.Value
UserForm4.ComboBox1.Value = FormatNumber(ComboBox1, 0)
ActiveCell.Offset(0, 1).Select
Label48 = ActiveCell.Value
Label48 = UserForm4.Label48
ActiveCell.Offset(0, 1).Select
Label40 = ActiveCell.Value
Label40 = UserForm4.Label40
ActiveCell.Offset(0, 1).Select
Exento = ActiveCell.Value
Exento = UserForm4.Exento.Value
ActiveCell.Offset(0, 1).Select
Neto = ActiveCell.Value
Neto = UserForm4.Neto.Value
UserForm4.Neto.Value = FormatNumber(Neto, 0)
ActiveCell.Offset(0, 1).Select
Iva = ActiveCell.Value
Iva = UserForm4.Iva.Value
UserForm4.Iva.Value = FormatNumber(Iva, 0)
ActiveCell.Offset(0, 1).Select
Total = ActiveCell.Value
Total = UserForm4.Total.Value
TextBox22 = Total
UserForm4.Total.Value = FormatNumber(Total, 0)
ActiveCell.Offset(0, 1).Select
TextBox6 = ActiveCell.Value
TextBox6 = UserForm4.TextBox6
ActiveCell.Offset(0, 1).Select
Vencimiento = ActiveCell.Value
Vencimiento = UserForm4.Vencimiento.Value
ActiveCell.Offset(0, 1).Select
TextBox12 = ActiveCell.Value
TextBox12 = UserForm4.TextBox12
ActiveCell.Offset(0, 1).Select
TextBox13 = ActiveCell.Value
TextBox13 = UserForm4.TextBox13.Value
UserForm4.TextBox13.Value = FormatNumber(TextBox13, 0)
ActiveCell.Offset(0, 1).Select
TextBox20 = ActiveCell.Value
TextBox20 = UserForm4.TextBox20
ActiveCell.Offset(0, 1).Select
TextBox17 = ActiveCell.Value
TextBox17 = UserForm4.TextBox17
ActiveCell.Offset(0, 1).Select
ActiveCell.Offset(0, -16).Select
Exit Sub
ActiveCell.End(xlToLeft).Select
Salir:
Unload UserForm5
End Sub
Private Sub CommandButton1_Click()
'activamos la hoja 1 donde se encuentran los datos
Worksheets("LibrodeCompras").Activate
Dim fila As String
fila = ActiveCell.Row
ActiveCell = Val(TextBox5)
Range("b" + fila) = Val(NumeroFac)
Range("c" + fila) = CDate(TextBox9)
Range("d" + fila) = ComboBox2
Range("e" + fila) = Val(ComboBox1 * 1)
Range("f" + fila) = Val(Label48)
Range("g" + fila) = Label40
Range("h" + fila) = Val(Exento * 1)
Range("i" + fila) = Val(Neto * 1)
Range("j" + fila) = Val(Iva * 1)
Range("k" + fila) = Val(Total * 1)
Range("l" + fila) = TextBox6
Range("m" + fila) = CDate(Vencimiento)
Unload UserForm4
Worksheets("LibrodeCompras").Activate
Exit Sub
seguir:
TextBox2.SetFocus
End Sub
Private Sub CommandButton2_Click()
Unload UserForm4
End Sub
Tal vez se ve largo pero lo deje con bastante información, ya que así uno puede sacar ideas para otras cosas. Solo debes ocupar los Textbox y combobox, que necesites.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas