intergracion de datos con macros

18/09/2008 - 06:44 por johairomo | Informe spam
Saludos amigos del grupo

Ha sido de gran valor los recuersos he ido utilizando de forma
autodidacta los ejemplos mque ustedes describen en este grupo
infinitas gracias

pero me devastado el cerbro tratando de genrar una macro que se lo mas
sencilla, FLEXIBLE Y SOBRE TODO AGIL y que sea rapida para integrar la
informacion que describire a continuacion

1. tengo un cuadro que me envian asi

Columna
A B C D E
F G H I J K
L M
C_33 C_39 C_39_1 C_39_2 C39_3 C_43 C_43_1 C_43_2 C43_3
C44 C_44_1 C_44_2 C44_3

350 112 75 307 485 0 0 0 0 0 0 0 0
350 112 75 307 485 26000 0 0 26000 0 0 0 0
350 112 75 307 485 894000 156000 0 1050000 0 0 0 0
210 432 199 149 198 0 0 0 0 0 0 0 39000
350 112 75 307 485 2546000 0 0 2546000 0 0 0 0
300 432 434 427 447 0 0 0 0 0 0 0 0
300 432 434 427 447 0 0 0 0 0 0 0 0
350 112 75 307 485 27000 0 0 27000 0 0 0 0
210 432 199 149 198 462000 0 0 0 0 0 0 0
350 112 75 307 485 967000 85000 0 1052000 0 0 0 0
300 432 434 427 447 0 0 0 0 0 0 0 0
110 432 199 149 198 0 0 0 0 0 0 29837000 184000
350 112 75 307 485 5000 0 0 5000 0 0 0 0
300 432 434 427 447 3161000 3161000 0 0 0 0 0 0
210 432 199 149 198 0 0 0 0 36904000 0 0 36567000
300 432 434 427 447 0 0 0 0 0 0 0 0
300 432 434 427 447 0 0 25000 0 0 25000 0 0
210 432 199 149 198 234000 0 0 0 0 0 0 0
300 432 434 427 447 0 0 0 0 0 0 0 0
300 432 434 427 447 0 0 0 0 0 0 0 0
210 432 199 149 198 1584000 0 0 0 0 0 0 0
210 432 199 149 198 0 0 0 120000 0 0 0 0
300 432 434 427 447 449000 140000 197000 0 0 0 0 112000
350 112 75 307 485 0 0 0 0 0 0 0 0
300 432 434 427 447 0 0 0 0 0 35000 0 35000
300 432 434 427 447 0 0 74000 0 0 74000 0 0
300 432 434 427 447 0 0 0 0 0 0 0 0
300 432 434 427 447 0 0 0 0 0 1677000 0 1677000
300 432 434 427 447 2668000 0 2668000 0 0 0 0 0
300 432 434 427 447 66000 0 66000 0 0 0 0 0
300 432 434 427 447 1632000 0 0 0 0 40000 0 1672000
350 112 75 307 485 240000 0 0 240000 0 0 0 0
350 112 75 307 485 0 0 0 0 0 0 0 0
300 432 434 427 447 0 0 0 0 0 0 0 0

la casilla 33 no tine sino una sola columna
las casilla 39 va desde la casilla 39 hasta la casilla 39_12 (Cada
columna con Datos de referencia en Cifras ; 15000 filas)
las casilla 43 va desde la casilla 43 hasta la casilla 43_12 (Cada
columna con Valores en Cifras ; 15000 filas)
las casilla 44 va desde la casilla 44 hasta la casilla 44_12 (Cada
columna con Valores en Cifras ; 15000 filas)

lo que se busac es establecer la sumatoria de los valores de las
casillas 43 y de las 44 por cada relacion entre
de cada datos de la casilla 33 en cada columna de cada casilla 39


algo asi



C_33 C_39 C_43 C_44
350 112 3.769.432.836 0
350 75 1.273.438.865 0
350 307 1.727.990.297 0
350 485 6.748.520.998 600.000
350 498 1.511.973.000 0
350 201 8.260.538.998 600.000
210 432 420.402.000 100.533.000
210 199 14.163.000 131.726.535
210 149 0 88.492.233
210 198 351.136.014 228.606.474
210 433 36.753.000 43.383.000
210 378 123.974.474 0
210 498 114.832.000 210.000
210 445 178.930.474 0
210 446 0 332.433.754
300 432 6.068.202.285 2.131.511.453
300 434 3.034.758.223 4.888.154.728
300 427 4.536.245.918 266.346.392
300 447 36.475.000 1.794.571.811
300 149 400.313.970 4.936.707.268
300 496 937.195.214 640.197.991
300 378 2.924.898.140 1.383.000
300 498 757.413.100 1.050.000
300 445 3.172.175.540 0
300 446 0 7.816.918.872
110 432 608.764.000 29.467.000
110 199 4.895.000 8.600.000
110 149 26.000.000 69.992.000
110 198 151.165.000 86.089.000
110 433 40.366.000 7.232.000
110 378 387.532.000 0
110 498 68.272.000 0
110 445 437.281.000 0
110 446 0 219.227.000
420 170 1.651.852.000 51.459.000
420 498 179.333.000 0

lo he intentado filtrando y es demasiado largo y no logro cordinarla
con matrices no la logro entenderla y la macro que hice es la
siguiente pero repite datos y no logro decifrarla cual es el error

Sub Agrupar()
Dim C_1, C_2, C_3, R, Rx, I, Dat, Dat1, Val1, Val2, Rng, Rng1 'Dat,
Dx, D2, C_1, C_2, C_3, Nom, R1, P, Px

Range("A1").Select
Application.ScreenUpdating = False

ActiveSheet.Copy Before:=Sheets(1)
ActiveSheet.Name = "DATOS"

Range("A1").Select
Application.ScreenUpdating = False

C_1 = Cells.Find(What:="CASILLA33").Column
C_2 = Cells.Find(What:="CASILLA43").Column
C_3 = Cells.Find(What:="CASILLA44").Column

R = Range("e65536").End(xlUp).Row

Range(Cells(1, C_1), Cells(R, C_1 + 11)).AdvancedFilter
Action:=xlFilterCopy, CopyToRange:=Range("BG1"), Unique:=True
Rx = Range("BG65530").End(xlUp).Row

Range("C" & R).Offset(3, 0) = "C_33"
Range("D" & R).Offset(3, 0) = "C_39"
Range("E" & R).Offset(3, 0) = "C_43"
Range("F" & R).Offset(3, 0) = "C_44"

For Each Dat In Range("BG2:BG" & Rx)
For I = 0 To 9
Dat1 = Dat.Offset(0, I + 1)
If Not IsEmpty(Dat1) Then
Val1 = Application.SumIf(Range(Cells(2, C_1), Cells(R, C_1)), Dat,
Range(Cells(2, C_2 + I), Cells(R, C_2 + I)))
Val2 = Application.SumIf(Range(Cells(2, C_1), Cells(R, C_1)),
Dat, Range(Cells(2, C_3 + I), Cells(R, C_3 + I)))
If Val1 <> 0 Or Val2 <> 0 Then
Range("C65530").End(xlUp).Offset(1, 0) = Dat
Range("D65530").End(xlUp).Offset(1, 0) = Dat1
Range("E65530").End(xlUp).Offset(1, 0) = Val1
Range("F65530").End(xlUp).Offset(1, 0) = Val2
End If
End If
Next I
Next Dat


Range("C" & R).Offset(3, 0).CurrentRegion.NumberFormat = "#,##0"

Range("C:F").Columns.AutoFit
Application.ScreenUpdating = True
Range("C" & R).Offset(3, 0).Select
MsgBox ("PROCESO TERMINADO SATISFACTORIAMENTE")

End Sub


Perdonen por lo largo del enunciado pero es para darme a entender y de
ante mano gracias por la ayuda que me puedan bindar,

no podido dormir tratando de hacerla por que cada libro es la
informacion que hay que agrupar y no he dado con el chiste

john moreno
un Amigo colombiano
 

Leer las respuestas

#1 Héctor Miguel
20/09/2008 - 06:35 | Informe spam
hola, !

(creo que) a pesar de que expusiste "suficientes" detalles/ejemplos/...
ninguno sirve para formar el criterio de lo que pretendes resolver :-((

- no se puede "armar" una tabla con los resultados esperados que expones...
porque los datos de la tabla "de base" no permiten dilucidar las condiciones
(p.e. donde se pueda comprobar el por que del resumen que expusiste)

- no resulta claro si la combinacion de comparaciones debe buscarse (p.e.)...
en ubicaciones "precisas/similares"... o donde quiera que se encuentren -???-

prueba con menos datos (simulando una tabla en hoja de calculo)...
y comenta de preferencia rangos y condiciones (de preferencia, +/- exactamente)

saudos,
hector.

Preguntas similares