Macro para Registro desde formulario en Excel

Para Dante Amor

¿De qué consiste?

Si Combo EntradaSalida dice PROCEDE ENTRADA, con el botón E/S registrar todos los textbox en hoja EntraSale (menos en columna E de salida) y sumar en columna C de hoja Productos en su línea correspondiente.

Si Combo EntradaSalida dice PROCEDE SALIDA, con el botón E/S registrar todos los textbox en hoja EntraSale (menos en columna DE de entrada) y RESTAR en columna C de hoja Productos en su línea correspondiente

El registro efectuarse siempre línea debajo de línea en la hoja entrasale

Si se puede hacer el registro y suma usando el mismo botón de Editar; cbtEdCli, mi preferencia es absoluta.

¿Si prefieres envío el libro?

El libro en una hoja llamada ejemplo tengo la descripción con imagen de lo que pretendo tener y en hoja EntraSale ya 2 líneas de como deben quedar, si entrada o si salida

1 respuesta

Respuesta
2

Sí, envíame tu archivo, r ecuerda poner tu nombre de usuario en el asunto.

Buen día Dante.

Ya enviado, si me atraso, es por navegación. Esta madrugada tengo navegación pero no sehasta que hora o hasta cuando porque aquí CANTV hace l oque le bien en gana con los usuarios y la asignación de la banda, si tienes 2 megas, te mandan 500kb y si por el estilo.

En alguna parte dice que, "si se puede hacer con el mismo botón de Validar Edición del formulario, mejor", si no con el E/S

Gracias por tu tiempo amigo

Te el código para las entradas

Private Sub dbtEntra_Sale_Click()
'Por.Dante Amor
    If Entrada_Salida = "" Or Entrada_Salida.ListIndex = -1 Then
        MsgBox "Selecciona entrada / salida"
        Entrada_Salida.SetFocus
        Exit Sub
    End If
    '
    If txtCod = "" Then
        MsgBox "Captura cod prod"
        txtCod.SetFocus
        Exit Sub
    End If
    '
    Set h1 = Sheets("EntraSale")
    Set h2 = Sheets("Productos")
    Set b = h2.Columns("A").Find(txtCod, lookat:=xlWhole)
    If b Is Nothing Then
        MsgBox "No existe cod prod"
        txtCod.SetFocus
        Exit Sub
    End If
    '
    u = h1.Range("A" & Rows.Count).End(xlUp).Row + 1
    h1.Cells(u, "A") = txtCod
    h1.Cells(u, "B") = txtProd
    h1.Cells(u, "C") = Val(txtProve)
    h1.Cells(u, "D") = DTPicker1
    h1.Cells(u, "G") = txtObser
    '
    h2.Cells(b.Row, "C") = h2.Cells(b.Row, "C") + Val(txtProve)
    Call buscar_Change
    MsgBox "Entrada realizada"
End Sub

sal u dos

Hola Dante

Quiero tu aprobación o corrección para esto que hice al final de la macro

Private Sub dbtEntra_Sale_Click()
'Por.Dante Amor
    If Entrada_Salida = "" Or Entrada_Salida.ListIndex = -1 Then
        MsgBox "Selecciona si Entrada o Salida"
        Entrada_Salida.SetFocus
        Exit Sub
    End If
    '
    If txtCod = "" Then
        MsgBox "Captura cod prod"
        txtCod.SetFocus
        Exit Sub
    End If
    '
    Set h1 = Sheets("EntraSale")
    Set h2 = Sheets("Productos")
    Set b = h2.Columns("A").Find(txtCod, lookat:=xlWhole)
    If b Is Nothing Then
        MsgBox "No existe cod prod"
        txtCod.SetFocus
        Exit Sub
    End If
    '
    If Entrada_Salida = "PROCEDE ENTRADA" Then
    '
        u = h1.Range("A" & Rows.Count).End(xlUp).Row + 1
        h1.Cells(u, "A") = txtCod
        h1.Cells(u, "B") = txtProd
        h1.Cells(u, "C") = Val(txtProve)
        h1.Cells(u, "D") = DTPicker1
        h1.Cells(u, "G") = txtObser
    '
        h2.Cells(b.Row, "C") = h2.Cells(b.Row, "C") + Val(txtProve)
        MsgBox "Entrada y suma realizada", "Entrada y suma"
    ElseIf Entrada_Salida = "PROCEDE SALIDA" Then
        u = h1.Range("A" & Rows.Count).End(xlUp).Row + 1
        h1.Cells(u, "A") = txtCod
        h1.C ells(u, "B") = txtProd
        h1.Cells(u, "E") = Val(txtProve)
        h1.Cells(u, "D") = DTPicker1
        h1.Cells(u, "G") = txtObser
        h2.Cells(b.Row, "C") = h2.Cells(b.Row, "C") - Val(txtProve)
        MsgBox "Salida y resta realizada", "Salida y Resta"
    End If
    Call buscar_Change
End Sub

Funciona, pero siempre es bueno la opinion o corrección de experto en la materia

Existe un error que ya lo corregí, fue algo que con el cursor desplacé sin darme cuenta

Es correcto, pero no puedes realizar una salida si no tienes existencia, entonces antes de realizar la salida tienes que verificar si tu existencia alcanza. Si alcanza, entonces continua, de lo contrario envías un mensaje.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas