Excel - Columnas contabilidad

 
Vista:
Imágen de perfil de Compumakro

Columnas contabilidad

Publicado por Compumakro (4 intervenciones) el 26/05/2011 18:47:48
Amigos de Excel 2007
Gracias de antemano por su ayuda

Tengo 5 columnas:
A B C D E
Fecha.... Nombre.... Ingreso....Egreso....Saldo

La formula por aplicación corriente es: =E2+C3-D3
o sea el saldo que viene de la celda anterior de la columna "E", se le suma o se resta según la columna "C" o "D" que tenga la cifra.

Si lo hago así, me toca, o copiar siempre la formula a la celda siguiente manualmante, o jalar la esquina de la celda y copiar varias celdas y me da el mismo saldo en las siguientes 10 o 20 celdas.

Qué necesito:
Que cuando se genere una fecha, se active la celda siguiente en blanco de la columna "E" y me haga el cálculo

El siguiente ensayo, no me funciona, por una razón: No sirve.... pero les muestro mi intento.

Gracias

Oscar





Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A3:A50,E3:E50")) Is Nothing Then Exit Sub
Dim Fila As Integer
For Fila = 3 To 50
If Cells(Fila, 3) > 0 And Cells(Fila, 3) Or Cells(Fila, 4) > 0 Then
Cells(Fila, 5) = Cells(Fila, 3) + Cells(Fila, 4) - Cells
Cells(Fila, 1) = Application.Count(Range(Cells(fila, 5), Cells(Fila, 7)))
End If
If Not IsEmpty(Cells(Fila, 2)) Then
Cells(Fila, 1) = Application.CountA(Range(Cells(1, 3), Cells(Fila, 3)))
Else
Cells(Fila, 1).ClearContents
End If
If IsEmpty(Cells(Fila, 3)) Or IsEmpty(Cells(Fila, 5)) Then
Cells(Fila, 5).ClearContents
End If

Next Fila
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Columnas contabilidad

Publicado por jcs (494 intervenciones) el 27/05/2011 09:12:03
Muy buenas,

Me he puesto a ejecutar y revisar tu código y he encontrado algunos errores y/o cosas que no entiendo. Ha sido cuestión de amor propio, porque me habría costado mucho menos hacerlo nuevo que intentar depurarlo. Te cuento por partes:

If Intersect(Target, Range("A3:A50,E3:E50")) Is Nothing Then Exit Sub
está mal definido el range, debería ser
If Intersect(Target, Range("A3:A50","E3:E50")) Is Nothing Then Exit Sub
de todas formas yo te sugiero que lo acotes más, porque si no se va a ejecutar de forma infinita, ya que la porpia macro porduce cambios que haría que se volviera a ejecutar:
If Intersect(Target, Range("B3:B50","B3:B50")) Is Nothing Then Exit Sub
If Cells(Fila, 3) > 0 And Cells(Fila, 3) Or Cells(Fila, 4) > 0 Then
la segunda comparación no está bien definida y tampoco sé bien lo que querías poner. Si quieres comprobar que las dos celdas tengan datos debería quedar así:
If Cells(Fila, 3) > 0 And Cells(Fila, 4) > 0 Then
Cells(Fila, 5) = Cells(Fila, 3) + Cells(Fila, 4) - Cells
está incompleta, supongo que quieres poner algo así:
Cells(Fila, 5) = Cells(Fila-1, 5) + Cells(Fila, 3) - Cells(Fila,4)
Cells(Fila, 1) = Application.Count(Range(Cells(fila, 5), Cells(Fila, 7)))
¿Pero en la columna A no tienes la fecha, para qué necesitas esa cuenta?
If Not IsEmpty(Cells(Fila, 2)) Then
Cells(Fila, 1) = Application.CountA(Range(Cells(1, 3), Cells(Fila, 3)))
Else

Lo mismo que antes
If IsEmpty(Cells(Fila, 3)) Or IsEmpty(Cells(Fila, 5)) Then
Supongo que quieres decir
If IsEmpty(Cells(Fila, 3)) Or IsEmpty(Cells(Fila, 4)) Then
En fin, complétalo como tú quieras, yo te sugeriría esta macro:

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("B3:B50", "D3:D50")) Is Nothing Then Exit Sub
Dim Fila As Integer
For Fila = 3 To 50
If Cells(Fila, 3) > 0 And Cells(Fila, 4) > 0 Then
Cells(Fila, 5) = Cells(Fila - 1, 5) + Cells(Fila, 3) - Cells(Fila, 4)
End If
If IsEmpty(Cells(Fila, 2)) Then
Cells(Fila, 1).ClearContents
End If
If IsEmpty(Cells(Fila, 3)) Or IsEmpty(Cells(Fila, 4)) Then
Cells(Fila, 5).ClearContents
End If
Next Fila
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Columnas contabilidad

Publicado por Martha (330 intervenciones) el 29/05/2011 20:13:15
Quizá mi solución sea de principiante, pero es lo que hago:
=si(A3="";"";E2+C3-D3)
Proteges la columna saldo para que nadie la toque y punto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Columnas contabilidad

Publicado por Martha (330 intervenciones) el 29/05/2011 20:16:03
Una explicación excelente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Columnas contabilidad

Publicado por toti (1 intervención) el 05/08/2011 22:27:04
No entiendo las explicaciones!!!! necesito saber en cuál casillero me paro y escribo la fórmula y cuál fórmula es???
tengo ingreso - egresos = saldo
necesito crear una planilla y no sé cómo se haceeeeeeeeeeeeeeeeeeeeeeee
por favor ayuda!! gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar