Ver Mensaje Individual
  #19  
Antiguo 26-04-2004
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Reputación: 22
sitrico Va por buen camino
En este caso no me sirve lo de la plantilla, ya que la hoja es bastante compleja (una demostración de los calculos de un programa complejo según exigencias de la Ley) por eso estoy obligado a incluir las funciones de Excel, Ya logré usar fórmulas simples y la función SUMA que se usa por ej.

'=SUM(A1:A15)'
ó
'=RAND()' ----> Aleatorio

Noten que es SUM y no SUMA ahora si trato de usar la funcion =SI()

'=IF(B5-B6<0;B5-B6;0)'

Me da un "Ole error 800A03EC" y lo mismo me pasa con la funcion ROUND (Redondear).

He usado este código para hacer pruebas de sintaxis (en edit1.text) y no he podido encontrar el problema.

Código:
Function LaFormula(f:String):String;
Var
p : Integer;
Begin
While(pos('##',f) <> 0) do
   Begin
   p := pos('##',f);
   Delete(f,p,2);
   Insert(IntToStr(Row),f,p);
   End;
Result := f;
End;

procedure TForm1.Button1Click(Sender: TObject);
Var
RangeE:Range;
i,Row: Integer;
Begin
For i := 0 to Query1.FieldCount-1 do
   begin
   RangeE.Value := Query1.Fields[i].DisplayLabel;
   RangeE := RangeE.Next;
   End;
Row := 2;
While not(Query1.Eof) do
   Begin
   RangeE := ExcelApplication1.Range['A'+IntToStr(Row),'A'+IntToStr(Row)];
   For i := 0 to Query1.FieldCount-1 do
      begin
      RangeE.Value := Query1.Fields[i].AsString;
      RangeE := RangeE.Next;
      End;
   RangeE.Value := LaFormula('=SUM(C##:E##)');
   RangeE := RangeE.Next;
   RangeE.Value := LaFormula(Edit1.Text);
   Query1.Next;
   Inc(Row);
   End;
end;
__________________
Sitrico

Última edición por sitrico fecha: 26-04-2004 a las 22:23:09.
Responder Con Cita