Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Servers (https://www.clubdelphi.com/foros/forumdisplay.php?f=9)
-   -   Subtotales en Excel (https://www.clubdelphi.com/foros/showthread.php?t=21959)

tutuk 02-06-2005 05:37:04

Subtotales en Excel
 
hola utilizo lo siguiente para crear un archivo excel
Código:

//Crea la instancia (Abre Excel)
Excel := CreateOleObject('Excel.Application');

//Añade un Libro
Excel.WorkBooks.add;

//Pone Visible La Ventana
Excel.visible:=True;

grabe una macro de excel para ver que codigo usa para poner subtotales
es esta
Código:

Sub Macro1()


'
    Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(5, 6, 7, 8, _
        9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 23), Replace:=True, PageBreaks:=True, _
        SummaryBelowData:=True
End Sub
Sub Macro2()

y buscando en internet encontre esto :
Código:

Здрасте уважаемые!
Есть тема.
Выбираю данные из *.dbf и передаю их в Excel,
уже в доке необходимо после передачи сформировать ИТОГИ по нужным столбцам, для этого есть средство
SUBTOTAL,нап-р:
DataModule.Excel.Range[DataModule.Excel.Cells.Item[XXX,XXX],DataModule.Excel.Cells.Item[XXX,XXX]].Subtotal(2,1,7,0,0,1);
где 2-GroupBy;
  1-Function;
  7-TotalList(т.е. столбец по которму групп.)
  0-Replace(0-false,1-True)
  0-PageBreaks(0-false,1-True)
  1-SummaryBelowData(0-false,1-True)
Так вот, как можно сгруппир-ть не по одному столбцу, а по нескольким.

que parece estar en ruso o algo asi
alguien me ayuda a tratar de decifrar o esto o sabe como poner los subtotales de excel

marcoszorrilla 02-06-2005 07:11:55

La fórmula de Subtotales en Excel para la suma, teniendo en cuenta que hay subtotales para otras funciones, promedio...:

Subtotales(9;A1:A20)

Esto nos dará la suma de A1 hasta A20, ambos inclusive con la función subtotales, lo que luego nos permitirá sumar una area en el que se hallen varios subtotales sin duplicar las cantidades.

No tienes más que mirar la ayuda de Excel para ver que pasa cuando en vez de 9 que es el indicativo para la suma pones otro número.

Un Saludo.

tutuk 03-06-2005 00:24:42

vamos bien
 
gracias marcos por tu atención.

probando probando llegue a esto
Código:

excel.range['a2:s22'].Subtotal(1,1,6,0,0,1);
donde el primer dato es el campo por el cual quiero agrupar, el 2º es la Operaciòn a realizar , el 3º la columna en la cual quiero el subtotal, el 4º si se desea reemplazar los subtotales existentes, el 5º si agregamos un saldo de pagina y el 6º si ponemos el resultado al final

hasta ahi todo bien pero yo necesito subtotales en más de una columna

de acuerdo a mi primer post (el de la macro guardada) para subtotalizar mas de una columna el 3º dato seria un array.

Probe creando un array de integer y pasarlo como el 3º dato y me da error

alguna idea de como puedo hacerlo

tutuk 03-06-2005 23:31:45

ya lo resolvi
 
bueno por si alguien tiene la misma necesidad lo resolvi de la siguiente manera


como me ponia nada mas que el subtotal en una sola columna

al final recorro la hoja de calculo y donde esta cada subtotal

hago copiar y pegar a la celda de al lado

Código:

          excel.range['f'+inttostr(recorrer)].copy;
          excel.range['g'+inttostr(recorrer)].select;
          Excel.ActiveSheet.Paste;

no es la solucion ideal pero resulta


gracias por su atencion

jachguate 04-06-2005 00:56:58

Creo que la función podria aceptar un OleVariant que contenga un array... es cosa de probar.

Hasta luego.

;)


La franja horaria es GMT +2. Ahora son las 11:53:35.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi