Macro para realizar un Reporte Mensual

-1 Tengo 1 libro que incluyen 2 Hojas "JUAN" y "OSCAR" que son empleados que realizan movimientos de entradas y salidas de dinero, para esto he diseñado pequeños y sencillos formularios para ingresar en cada uno dichos movimientos, y con esto al concluir el mes quisiera lograr tener un reporte entre fechas.
Pero el primer inconveniente con el que me encontré fue no poder lograr la forma que al ingresar un importe de "Entrada" o "Salida" se refleje en dichas columnas y por ende sume o resten en la columna "CAJA"
-2 Quisiera generar un reporte de movimientos por cada uno "JUAN" "OSCAR" entre dos fechas en la Hoja "REPORTE" que incluya los datos de la base de datos
Y que muestre el total de la "CAJA" según lo indique la fecha final en cada uno.
-3 En la misma hoja "REPORTE" necesitaría comparar las diferencias entre los importes de caja siendo la caja de JUAN la principal.
Es decir saber si la caja de OSCAR cuanto mayor o menor dinero arroja en dicho reporte.

La macro que tengo tanto en la hoja de JUAN o OSCAR es esta

Private Sub Aceptar_Click()

Dim Clientes As String 'Variable para almacenar valores de Clientes

Dim Movimientos As String 'Variable para almacenar valores de Movimientos

Dim Importe As String 'Variable para almacenar valores de Importe

Dim UltimaFila As Double 'Variable que almacena ultima fila

Fecha = CDate(TextFecha.Value)

Clientes = TextClientes.Value 'Paso del formulario a la variable

Importe = TextImporte.Value 'Paso del formulario a la variable

UltimaFila = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count

Cells(UltimaFila + 1, 1) = Fecha

Cells(UltimaFila + 1, 2) = Clientes

Cells(UltimaFila + 1, 3) = Ingresos

Cells(UltimaFila + 1, 4) = Salidas

Cells(UltimaFila + 1, 5) = Importe

TextFecha = Empty 'Significa borrar
TextClientes = Empty
TextMovimientos = Empty
TextImporte = Empty
TextFecha.SetFocus

End Sub

Private Sub TextBox2_Change()

End Sub

Private Sub Salir_Click()

Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select
Cells(1, 1) = Fecha

End

End Sub

Respuesta
1

En las col 3 y 4 estás enviando información pero esas variables no existen o no tienen el importe (que está en TxtImporte)

Cells(UltimaFila + 1, 3) = Ingresos

Cells(UltimaFila + 1, 4) = Salidas

Si tenés un combo que evalúa si se trata de Ingreso o Salida debes hacer la comparación y según eso enviar el importe a la col correspondiente.

Por ej:

Cells(UltimaFila + 1, 2) = Clientes      'ok
If TxtMovimientos = "Salida" Then
    Cells(UltimaFila + 1, 4) = Importe    'salida
Else
    Cells(UltimaFila + 1, 3) = Importe    'ingreso
End If
Cells(UltimaFila + 1, 5) = Importe        'caja ???

En la col 5 debiera ir el resultado como fórmula entre caja anterior +- el importe.

PD) No olvides que los txt son 'textos' ... quizás necesites convertirlos a valores enteros (VAL) o a decimales (CDBL) salvo que declares correctamente la variable. Encontrarás muchos ejemplos en este foro con el buscador.

Por ej:

Cells(UltimaFila+1,3) = CDBL(Importe) 

Sdos y no olvides valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas