Revisar data ingresada en formulario excel anteriormente para Dante Amor

El formulario que estoy trabajando es como un registro de venta que te permite registrar nueva venta haciendo clic en un commandbutton que dice NUEVA VENTA luego vienen 5 ventanas con todo el detalle de la venta entonces por ejemplo si hacemos clic en nueva venta toda la información que se va ingresando se completa en la columna B una vez que se termine se pregunta si tiene una venta adicional para el mismo cliente en cuyo caso regresa a la primera ventana cuya data se borra y todo lo nuevo se completaria en la columna C y asi sucesivamente, hasta allí no tengo problema alguno pero tengo dos escenarios:

  • Si la persona que registra está en la ventana DOS y da clic SIGUIENTE para ir a la ventana TRES ya los datos de la ventana dos fueron registrados pero si estando en la ventana TRES da clic en ATRAS y cambia los datos de la ventana DOS, estos se deben cambiar donde se habian registrado inicialmente, lo mismo sucede con la información del resto de las ventanas.
  • Si al terminar las cinco ventanas y todas las hizo OK entonces termina el formulario y le sale una proforma preliminar en el excel que sólo puede copiar y pegar pero no puede modificar la data, por tanto si quiere modificar vuelve al formulario y hace clic en REVISAR INFO pero en este caso el formulario debe ir mostrando la data ya almacenada por ejemplo en la columna B y en caso quiera cambiarla lo podría hacer luego también debe poder ir a la columna C y asi sucesivamente a todas las columnas que ha ido completando.

Por favor tu apoyo, porque he podido hacerlo pero parcialmente aun no en su totalidad y el archivo se me está haciendo super pesado.

1 Respuesta

Respuesta
1

Envíame tu archivo para revisarlo, me explicas paso a paso cómo debo ir llenando el formulario.

También te anexo la macro para centrar los datos en el listbox.

Private Sub CommandButton5_Click()
'Por.Dante Amor
    If ComboBox3 = "" Then
        MsgBox "No ha seleccionado TIPO de servicio RPC a agregar"
    ElseIf TextBox1 = "" Then
        MsgBox "No ha indicado CF del servicio RPC seleccionado"
    ElseIf TextBox2 = "" Or TextBox2 = 0 Then
        MsgBox "No ha indicado CANTIDAD de líneas con servicio RPC seleccionado"
    Else
        ComboBox3.Font.Bold = True
        TextBox2.Font.Bold = True
        TextBox1.Font.Bold = True
        TextBox1.Value = Format(TextBox1, "###0.00")
        cb3 = Len(ComboBox3)
        varTemp = Replace(Me.ListBox1.ColumnWidths, "pt", "")
        anchos = Split(varTemp, ";")
        dato1 = Space(((Val(anchos(0))) / 3 - Len(ComboBox3)) / 2) & ComboBox3
        dato2 = Space(((Val(anchos(1))) / 3 - Len(TextBox2)) / 2) & TextBox2
        dato3 = Format(TextBox1, "###0.00")
        dato3 = Space(((Val(anchos(2))) / 3 - Len(dato3)) / 2) & dato3
        With ListBox1
            .AddItem
            .List(.ListCount - 1, 0) = dato1
            .List(.ListCount - 1, 1) = dato2
            .List(.ListCount - 1, 2) = dato3
        End With
    End If
End Sub

Y esta era la parte para pasar los datos a la hoja

Private Sub CommandButton4_Click()
    If ListBox1.ListCount <= 0 Then
        respuesta = MsgBox("No se ha incluido servicio RPC alguno" & Chr(10) & "Hacer clic en ----> para incluir el servicio RPC." & Chr(10) & "¿Desea continuar?", vbQuestion + vbYesNo, "Confirmar")
        If respuesta = vbYes Then
            UserForm4.Hide
            UserForm5.Show
        End If
    Else
        respuesta = MsgBox("¿Se han incluido todos los servicios de RPC?", vbQuestion + vbYesNo, "Confirmar")
        If respuesta = vbYes Then
            col = 1
            For i = 21 To 30
                Cells(i, col) = ""
            Next
            i = 21
            For x = 0 To ListBox1.ListCount - 1
                For j = 0 To 2
                    Cells(i, col) = LTrim(ListBox1.List(x, j))
                    i = i + 1
                Next
                col = col + 1
                i = 21
            Next
            UserForm4.Hide
            UserForm5.Show
        End If
    End If
End Sub


Añade tu respuesta

Haz clic para o

Más respuestas relacionadas