Autor Tema: Totalizar, AYUDA...!!!  (Leído 2573 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado intimdq

  • PIC10
  • *
  • Mensajes: 15
Totalizar, AYUDA...!!!
« en: 19 de Febrero de 2009, 00:45:58 »
Hola tengo algunos problemas con este programa de Excel, no hace lo que quiero que haga, les cuento a ver si alguien me puede dar alguna ayuda
Ejemplo de planilla: tenemos la planilla “0” es la planilla resumen o suma de las planillas “1” elegidas según la fecha que pongamos en “F7” desde y “H7” hasta (de esta forma se determina un intervalo de fechas, en la planilla “0” aparecerá la suma de todas las planillas pertenecientes al intervalo)
Si ponemos desde 01/01/09 hasta 03/01/09 se deben sumar tres planillas correspondientes a los tres días pertenecientes al intervalo de fechas:
D15=D54+D88+D122; D16= D55+D89+D123; D17=D56+D90+D124; D18= D57+D91+D125
En D21 va el promedio de D60, D94, D128
En síntesis se suman todas las casillas de las planillas como si se superpusiesen una encima de otra, excepto D21 que es el promedio del casillero correspondiente a todas las planillas
Este es el programa que estoy utilizando,
Sub totalizar()
'Declarar variables
Dim temp As Long
Dim Mfiados As Long
Dim Mtotalgastos As Long
Dim Mtotalcobros As Long
Dim canti_producto(26) As Long
Dim Mexistencias(26) As Long
Dim Mentrantes(26) As Long
Dim MsalientesP(26) As Long
Dim MsalientesF(26) As Long
Dim McostoCU(26) As Variant
Dim McostoTotales(26) As Long
Dim rango As Long
Dim n As Long
'Modificacion de variables de String a Date
Dim SfechaDesde As Date
Dim SfechaHasta As Date
Dim SfechaConsulta As Date
'Inicializar variables
Mfiados = 0
Mtotalgastos = 0
Mtotalcobros = 0
For i = 1 To 26
Mexistencias(i) = 0
Mentrantes(i) = 0
MsalientesP(i) = 0
MsalientesF(i) = 0
McostoCU(i) = 0
McostoTotales(i) = 0
canti_producto(i) = 0
Next i
rango = 34
n = 0
'Inicio Procedimiento
SfechaDesde = Cells(7, 6)
SfechaHasta = Cells(7, 8)
SfechaConsulta = Cells(46, 6)
'Bucle debe recorrer todas las celdas de fecha, condición que "sfechaConsulta >0"
Do While (SfechaConsulta > 0)
If (SfechaConsulta <= SfechaHasta) And (SfechaConsulta >= SfechaDesde) Then
For i = 1 To 26
'Declarar cada producto de un solo día
Mexistencias(i) = Mexistencias(i) + Cells(54 + n * rango, i + 3)
Mentrantes(i) = Mentrantes(i) + Cells(55 + n * rango, i + 3)
MsalientesP(i) = MsalientesP(i) + Cells(56 + n * rango, i + 3)
MsalientesF(i) = MsalientesF(i) + Cells(57 + n * rango, i + 3)
McostoCU(i) = McostoCU(i) + Cells(60 + n * rango, i + 3).Value
McostoTotales(i) = McostoTotales(i) + Cells(61 + n * rango, i + 3)
'codigo nuevo
temp = Cells(60 + n * rango, i + 3)
If temp > 0 Then
canti_producto(i) = canti_producto(i) + 1
End If
Next i
End If
n = n + 1
'Se calcula fuera del ciclo, se agrega referencia de columna, y rango
Mfiados = Mfiados + Cells(45 + n * rango, 4)
Mtotalgastos = Mtotalgastos + Cells(46 + n * rango, 4)
Mtotalcobros = Mtotalcobros + Cells(47 + n * rango, 4)
'Se pasa al siguiente día
SfechaConsulta = Cells(46 + n * rango, 6)
Loop
'Imprimir valores totales en la primera
Cells(6, 4) = Mfiados
Cells(7, 4) = Mtotalgastos
Cells(8, 4) = Mtotalcobros
For i = 1 To 26
Cells(15, 3 + i) = Mexistencias(i)
Cells(16, 3 + i) = Mentrantes(i)
Cells(17, 3 + i) = MsalientesP(i)
Cells(18, 3 + i) = MsalientesF(i)
On Error Resume Next
Cells(21, 3 + i) = McostoCU(i) / canti_producto(i)
Cells(22, 3 + i) = McostoTotales(i)

Next i
End Sub

Pero tengo problemas como:
a) No respeta fechas, suma una planilla mas a la fecha que se le indica solo en los casilleros correspondientes a
Cells(6, 4) = Mfiados
Cells(7, 4) = Mtotalgastos
Cells(8, 4) = Mtotalcobros
b) no suma la primer planilla "1" correspondiente a los mismos casilleros son 350 planillas "1" una correspondiente a cada dia. El intervalo de planillas es de 34 como se menciona el programa.

Gracias por la ayuda, mi correo es intimdq@hotmail.com si quieren me pasan el suyo y les mando el archivo asi lo ven mejor , nuevamente Gracias...!!

Desconectado MARKUS

  • PIC10
  • *
  • Mensajes: 11
Re: Totalizar, AYUDA...!!!
« Respuesta #1 en: 15 de Marzo de 2009, 17:20:21 »
Saludos, quizá sería favorable que subas el archivo, de manera que quere un poco más claro. Es una aplicacion de VB, o un script de VBA?
"Para mover al mundo debemos primero movernos nosotros mismos" -Sócrates