In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Fórmulas a Excel
-
- Mensajes: 1831
- Registrado: Mar Oct 11, 2005 9:53 am
Fórmulas a Excel
Estoy intentando pasar la formula: "=R[-2]C+R[-1]C" a excel desde una aplicacion en Xailer,
pero me marca error si lo asigno asi:
oAS:Cells( nRow, nFCol ):FormulaR1C1 := xValue
y la siguiente forma no marca error pero tampoco hace lo que requiero:
oAS:Cells( nRow, nFCol ):Set("FormulaR1C1", xValue)
FormulaR1C1 lo tome usando las macro de Excel.
Alguien sabe como podria hacerlo, o cual es el componente requerido o equivalente a FormulaR1C1 ?
De antemano gracias.
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
--
pero me marca error si lo asigno asi:
oAS:Cells( nRow, nFCol ):FormulaR1C1 := xValue
y la siguiente forma no marca error pero tampoco hace lo que requiero:
oAS:Cells( nRow, nFCol ):Set("FormulaR1C1", xValue)
FormulaR1C1 lo tome usando las macro de Excel.
Alguien sabe como podria hacerlo, o cual es el componente requerido o equivalente a FormulaR1C1 ?
De antemano gracias.
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
--
Ramón Zea
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
-
- Mensajes: 1310
- Registrado: Mié Sep 26, 2007 7:12 pm
Fórmulas a Excel
>
> *oAS:Cells( nRow, nFCol ):FormulaR1C1 := xValue *
Me temo que esto no es correcto en realidad R1C1 es otra forma de
indicar Row 1 y Column 1 que a su vez ya estas inddicando con nRow y nFCol
>
> y la siguiente forma no marca error pero tampoco hace lo que requiero:
>
> *oAS:Cells( nRow, nFCol ):Set("FormulaR1C1", xValue)*
Tampoco es correcto del todo, es hasta mas sencillo, olvidate de
FormulaR1C1 simplemente haz
oAS:Cells( nRow, nFCol ):Value:= xValue
Donde xValue puede ser cualquier tipo C N L D e incluso una fórula de
excel que entonces ha de ser una cadena de texto de tipo "Suma(c1:f5)"
Salu2.
> *oAS:Cells( nRow, nFCol ):FormulaR1C1 := xValue *
Me temo que esto no es correcto en realidad R1C1 es otra forma de
indicar Row 1 y Column 1 que a su vez ya estas inddicando con nRow y nFCol
>
> y la siguiente forma no marca error pero tampoco hace lo que requiero:
>
> *oAS:Cells( nRow, nFCol ):Set("FormulaR1C1", xValue)*
Tampoco es correcto del todo, es hasta mas sencillo, olvidate de
FormulaR1C1 simplemente haz
oAS:Cells( nRow, nFCol ):Value:= xValue
Donde xValue puede ser cualquier tipo C N L D e incluso una fórula de
excel que entonces ha de ser una cadena de texto de tipo "Suma(c1:f5)"
Salu2.
-
- Mensajes: 1310
- Registrado: Mié Sep 26, 2007 7:12 pm
Fórmulas a Excel
Corrijo donde puse "Suma(c1:f5)" era "=Suma(c1:f5)"
-
- Mensajes: 1831
- Registrado: Mar Oct 11, 2005 9:53 am
Fórmulas a Excel
Gracias bingen, pero marca error, ya lo hice así, el asunto es que la suma
no se exactamente en que celda va a quedar, es un proceso de pasar un
formato de archivo de excel y lo paso a un archivo resultado sustituyendo
mis "variables" por valores de una DBF o funciones, según sea el caso, y
como este valor al ser la sumatoria de partidas de factura de compras,
pedidos, ordenes de compras, cotizaciones, etc. busque la opcion a como lo
hace excel, de mi columna actual hacia abajo o hacia arriba.
"=R[-2]C+R[-1]C"
En el caso anterior es el renglón actual -2 y mi columna actual + renglón
actual -1 y columna actual.
Acepto sugerencias.
Saludos.
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
no se exactamente en que celda va a quedar, es un proceso de pasar un
formato de archivo de excel y lo paso a un archivo resultado sustituyendo
mis "variables" por valores de una DBF o funciones, según sea el caso, y
como este valor al ser la sumatoria de partidas de factura de compras,
pedidos, ordenes de compras, cotizaciones, etc. busque la opcion a como lo
hace excel, de mi columna actual hacia abajo o hacia arriba.
"=R[-2]C+R[-1]C"
En el caso anterior es el renglón actual -2 y mi columna actual + renglón
actual -1 y columna actual.
Acepto sugerencias.
Saludos.
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
Ramón Zea
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
-
- Mensajes: 1310
- Registrado: Mié Sep 26, 2007 7:12 pm
Fórmulas a Excel
Que lío, no se por que te ha de marcar error.
Yo lo hago de la siguiente manera para seguir usando la nomenclatura
normal de C7:AB7 etc. cuando tengo que cargar celdas en bucles ForNext
por ejemplo, uso esta función que me preparé hace tiempo para resolver
la letra del nombre de la columna en base a un nº.
Así puedo hacer cosas como
oSheet:Range( ExcelColumn(nCol)+"5:"+ExcelColumn(nCol+2)+"5" ):Merge( .T. )
//Cálculo de la letra de columna de Excel en base a su ordinal
Function ExcelColumn(nCol)
Local cCol:="", nResto:=0
If nCol=0 .Or. nCol>256
MsgInfo("Valor de columna "+Tostring(nCol)+" fuera de rango 1-256")
Return ""
Endif
If nCol<=26 //Hasta la columna 26 letra de la A a la Z
cCol:=Chr(64+nCol)
Else
//Por encima de la col 26 doble letra
If Mod(nCol,26)>0 //Si hay resto de dividir por 26
cCol:=Chr(64+(Int(nCol/26))) //Primera letra parte entera
cCol:=cCol+Chr(64+Mod(nCol,26)) //Segunda letra por el resto
Else
cCol:=Chr(64+(Int(nCol/26))-1) //Sin resto es la última de la
serie anterior
cCol:=cCol+"Z" //y por lo tanto termina en Z
Endif
Endif
Return cCol
Salu2.
Yo lo hago de la siguiente manera para seguir usando la nomenclatura
normal de C7:AB7 etc. cuando tengo que cargar celdas en bucles ForNext
por ejemplo, uso esta función que me preparé hace tiempo para resolver
la letra del nombre de la columna en base a un nº.
Así puedo hacer cosas como
oSheet:Range( ExcelColumn(nCol)+"5:"+ExcelColumn(nCol+2)+"5" ):Merge( .T. )
//Cálculo de la letra de columna de Excel en base a su ordinal
Function ExcelColumn(nCol)
Local cCol:="", nResto:=0
If nCol=0 .Or. nCol>256
MsgInfo("Valor de columna "+Tostring(nCol)+" fuera de rango 1-256")
Return ""
Endif
If nCol<=26 //Hasta la columna 26 letra de la A a la Z
cCol:=Chr(64+nCol)
Else
//Por encima de la col 26 doble letra
If Mod(nCol,26)>0 //Si hay resto de dividir por 26
cCol:=Chr(64+(Int(nCol/26))) //Primera letra parte entera
cCol:=cCol+Chr(64+Mod(nCol,26)) //Segunda letra por el resto
Else
cCol:=Chr(64+(Int(nCol/26))-1) //Sin resto es la última de la
serie anterior
cCol:=cCol+"Z" //y por lo tanto termina en Z
Endif
Endif
Return cCol
Salu2.
-
- Mensajes: 1831
- Registrado: Mar Oct 11, 2005 9:53 am
Fórmulas a Excel
Creo que no me he explicado:
He aqui el error:
TOLEAUTO:_VALUE(0)
Error 56789924:CELLS/0 S_OK: _VALUE
Argumentos: ( [ 1] = Tipo: C Valor: =R[-1]C*0.15)
Si pasara las formulas asi como tu me has comentado, uff, regalado, pero....
la cosa es que como te repito, hago el vaciado de documentos de compra y
venta, y no se cuantas partidas lleva cada uno, basandome en un formato
prediseñado en el mismo excel.
algo asi:
Cantidad Unidad Código Concepto MarcaCosto
Importe
{partidas} {cantidad} {unidad} {codigo} {descripcion} {marca} {costo} {importe}
Importe: {docto.subtotal}
IVA: {docto.iva}
Total: {docto.total}
Voy pasando a otra hoja de excel y sustituyendo valores, pero como se ve, no
se en que celda queda el IVA, ahora que el subtotal lo ubico por que hago
una totalizacion de la columan {importe}.
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
He aqui el error:
TOLEAUTO:_VALUE(0)
Error 56789924:CELLS/0 S_OK: _VALUE
Argumentos: ( [ 1] = Tipo: C Valor: =R[-1]C*0.15)
Si pasara las formulas asi como tu me has comentado, uff, regalado, pero....
la cosa es que como te repito, hago el vaciado de documentos de compra y
venta, y no se cuantas partidas lleva cada uno, basandome en un formato
prediseñado en el mismo excel.
algo asi:
Cantidad Unidad Código Concepto MarcaCosto
Importe
{partidas} {cantidad} {unidad} {codigo} {descripcion} {marca} {costo} {importe}
Importe: {docto.subtotal}
IVA: {docto.iva}
Total: {docto.total}
Voy pasando a otra hoja de excel y sustituyendo valores, pero como se ve, no
se en que celda queda el IVA, ahora que el subtotal lo ubico por que hago
una totalizacion de la columan {importe}.
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
Ramón Zea
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
-
- Mensajes: 1310
- Registrado: Mié Sep 26, 2007 7:12 pm
Fórmulas a Excel
Para empezar y aunque no tiene importancia, yo no prediseño el documento
en Excel sino que lo construyo al vuelo, textos incluidos, así es más
flexible y puedo llevar el control, por ejemplo de donde pongo el IVA.
Un ejemplo podría ser:
TRY
oExcel := GetActiveObject( "Excel.Application" )
CATCH
TRY
oExcel := CreateObject( "Excel.Application" )
CATCH
Alert( "ERROR! Excel no disponible. [" + Ole2TxtError()+ "]" )
oForm:Close()
RETURN .F.
END
END
TRY
oWorkBook := oExcel:Workbooks:Add()
oSheet := oWorkBook:WorkSheets( 1 )
CATCH
Alert( "ERROR! Hoja Excel no disponible. [" + Ole2TxtError()+ "]" )
oExcel := NIL
oForm:Close()
RETURN .F.
END
oClp := TClipboard():Create( )
//Tomar los movimientos de la tabla de movimientos activa en la
pantalla principal
oMovimientos:=Application:oMainform:oMovimientos:Clone()
//Quitar los de fechas posteriores a la de referencia
For nItem:=1 to Len(oMovimientos:aData)
If oMovimientos:aData[nItem,3]>dFechaRef
aDel(oMovimientos:aData,nItem,.T.)
nItem--
Endif
//Tabla de años que quedan en el array
nItem2:=Ascan(aAnios,{|aVAL|
aVAL[1]=Year(oMovimientos:aData[nItem,3])} )
If nItem2=0
Aadd(aAnios,{Year(oMovimientos:aData[nItem,3]),oMovimientos: aData[nItem,17],oMovimientos:aData[nItem,18]})
Else
aAnios[nItem2,2]+=oMovimientos:aData[nItem,17] // Aporte
aAnios[nItem2,3]+=oMovimientos:aData[nItem,18] // Retorno
Endif
Next
// Cabeceras de la hoja excel
oSheet:Cells( 2, 1 ):Value := "Rentabilidad del valor
" +Allstring(Application:oMainform:oBrwValores:oDataSet:Valor)
oSheet:Cells( 2, 1 ):Font:Bold := .T.
oSheet:Cells( 2, 1 ):Font:Size := 14
oSheet:Range( "A2:H2" ):Merge( .T. )
oSheet:Cells( 3, 1 ):Value := "Propietario
" +Allstring(Application:oMainform:oBrwPropietarios:oDataSet:N ombre)
oSheet:Cells( 3, 1 ):Font:Bold := .T.
oSheet:Cells( 3, 1 ):Font:Size := 14
oSheet:Range( "A3:H3" ):Merge( .T. )
oSheet:Cells( 4, 1 ):Value := "Entidad depositaria
" +Allstring(Application:oMainform:oArrayDepositarios:GetValue (2))
oSheet:Cells( 4, 1 ):Font:Bold := .T.
oSheet:Cells( 4, 1 ):Font:Size := 14
oSheet:Range( "A4:H4" ):Merge( .T. )
oSheet:Cells( 6, 1 ):Value := "Fecha de referencia
"+cDow(dFechaRef)+" "+ToString(Day(dFechaRef))+" de
"+cMonth(dFechaRef)+" de "+Tostring(Year(dFechaRef))
oSheet:Cells( 4, 1 ):Font:Size := 12
oSheet:Range( "A6:H6" ):Merge( .T. )
//Comienzo de los datos
nLine := 8
nCol := 1
//Años eje Y
++nLine
For nItem:=1 to Len(aAnios)*2 step 2
oSheet:Cells( nLine, nItem+1
):Value:=Allstring(aAnios[Int(nItem/2+.5),1])
oSheet:Cells( nLine, nItem+1 ):HorizontalAlignment := 3
oSheet:Cells( nLine, nItem+1 ):Font:Bold := .T.
oSheet:Cells( nLine, nItem+1 ):Font:Size := 12
//Aporte y retorno
oSheet:Range(
ExcelColumn(nItem+1)+Allstring(nLine)+":"+ExcelColumn(nItem+2)+Allstring(nLine)
):Merge( .T. )
oSheet:Cells( nLine+1, nItem+1 ):Value:="Aporte"
oSheet:Cells( nLine+1, nItem+1 ):Interior:Color := clLtGray
oSheet:Cells( nLine+1, nItem+2 ):Value:="Retorno"
oSheet:Cells( nLine+1, nItem+2 ):Interior:Color := clLtGray
oSheet:Cells( nLine+2, nItem+1 ):Value:=aAnios[Int(nItem/2+.5),2]
//Aporte
oSheet:Cells( nLine+2, nItem+2 ):Value:=aAnios[Int(nItem/2+.5),3]
//Retorno
//Saldos
oSheet:Cells( nLine+3, nItem+1
):Value:="="+ExcelColumn(nItem+2)+Allstring(nLine+2)+"-"+ExcelColumn(nItem+1)+Allstring(nLine+2)
oSheet:Range(
ExcelColumn(nItem+1)+Allstring(nLine+3)+":"+ExcelColumn(nItem+2)+Allstring(nLine+3)
):Merge( .T. )
//TIR
If nItem>2
oSheet:Cells( nLine+5, nItem+1
):Value:="=TIR($B$"+Allstring(nLine+3)+":"+ExcelColumn(nItem+1)+Allstring(nLine+3)+ ")"
oSheet:Range(
ExcelColumn(nItem+1)+Allstring(nLine+5)+":"+ExcelColumn(nItem+2)+Allstring(nLine+5)
):Merge( .T. )
Endif
Next
//Textos del Eje Y
++nLine
++nLine
oSheet:Cells( ++nLine, 1 ):Value:="Saldos"
oSheet:Cells( nLine, 1 ):Font:Bold:=.T.
++nLine
oSheet:Cells( ++nLine, 1 ):Value:="TIR"
oSheet:Cells( nLine, 1 ):Font:Bold:=.T.
// Autoajustar columnas del rango
oSheet:Columns( "A:"+ExcelColumn(nCol) ):AutoFit()
//Mostrar hoja
oExcel:Visible := .T.
oSheet := NIL
oWorkBook := NIL
oExcel := NIL
oClp:End()
oForm:Close()
ProcessMessages()
Ramón Zea escribió:
> Creo que no me he explicado:
> He aqui el error:
>
> TOLEAUTO:_VALUE(0)
> Error 56789924:CELLS/0 S_OK: _VALUE
> Argumentos: ( [ 1] = Tipo: C Valor: =R[-1]C*0.15)
>
> Si pasara las formulas asi como tu me has comentado, uff, regalado,
> pero.... la cosa es que como te repito, hago el vaciado de documentos de
> compra y venta, y no se cuantas partidas lleva cada uno, basandome en un
> formato prediseñado en el mismo excel.
>
> algo asi:
> Cantidad Unidad Código
> Concepto MarcaCosto Importe
> {partidas} {cantidad} {unidad} {codigo} {descripcion}
> {marca} {costo} {importe}
>
>
> Importe: {docto.subtotal}
>
> IVA: {docto.iva}
>
> Total: {docto.total}
>
> Voy pasando a otra hoja de excel y sustituyendo valores, pero como se
> ve, no se en que celda queda el IVA, ahora que el subtotal lo ubico por
> que hago una totalizacion de la columan {importe}.
>
en Excel sino que lo construyo al vuelo, textos incluidos, así es más
flexible y puedo llevar el control, por ejemplo de donde pongo el IVA.
Un ejemplo podría ser:
TRY
oExcel := GetActiveObject( "Excel.Application" )
CATCH
TRY
oExcel := CreateObject( "Excel.Application" )
CATCH
Alert( "ERROR! Excel no disponible. [" + Ole2TxtError()+ "]" )
oForm:Close()
RETURN .F.
END
END
TRY
oWorkBook := oExcel:Workbooks:Add()
oSheet := oWorkBook:WorkSheets( 1 )
CATCH
Alert( "ERROR! Hoja Excel no disponible. [" + Ole2TxtError()+ "]" )
oExcel := NIL
oForm:Close()
RETURN .F.
END
oClp := TClipboard():Create( )
//Tomar los movimientos de la tabla de movimientos activa en la
pantalla principal
oMovimientos:=Application:oMainform:oMovimientos:Clone()
//Quitar los de fechas posteriores a la de referencia
For nItem:=1 to Len(oMovimientos:aData)
If oMovimientos:aData[nItem,3]>dFechaRef
aDel(oMovimientos:aData,nItem,.T.)
nItem--
Endif
//Tabla de años que quedan en el array
nItem2:=Ascan(aAnios,{|aVAL|
aVAL[1]=Year(oMovimientos:aData[nItem,3])} )
If nItem2=0
Aadd(aAnios,{Year(oMovimientos:aData[nItem,3]),oMovimientos: aData[nItem,17],oMovimientos:aData[nItem,18]})
Else
aAnios[nItem2,2]+=oMovimientos:aData[nItem,17] // Aporte
aAnios[nItem2,3]+=oMovimientos:aData[nItem,18] // Retorno
Endif
Next
// Cabeceras de la hoja excel
oSheet:Cells( 2, 1 ):Value := "Rentabilidad del valor
" +Allstring(Application:oMainform:oBrwValores:oDataSet:Valor)
oSheet:Cells( 2, 1 ):Font:Bold := .T.
oSheet:Cells( 2, 1 ):Font:Size := 14
oSheet:Range( "A2:H2" ):Merge( .T. )
oSheet:Cells( 3, 1 ):Value := "Propietario
" +Allstring(Application:oMainform:oBrwPropietarios:oDataSet:N ombre)
oSheet:Cells( 3, 1 ):Font:Bold := .T.
oSheet:Cells( 3, 1 ):Font:Size := 14
oSheet:Range( "A3:H3" ):Merge( .T. )
oSheet:Cells( 4, 1 ):Value := "Entidad depositaria
" +Allstring(Application:oMainform:oArrayDepositarios:GetValue (2))
oSheet:Cells( 4, 1 ):Font:Bold := .T.
oSheet:Cells( 4, 1 ):Font:Size := 14
oSheet:Range( "A4:H4" ):Merge( .T. )
oSheet:Cells( 6, 1 ):Value := "Fecha de referencia
"+cDow(dFechaRef)+" "+ToString(Day(dFechaRef))+" de
"+cMonth(dFechaRef)+" de "+Tostring(Year(dFechaRef))
oSheet:Cells( 4, 1 ):Font:Size := 12
oSheet:Range( "A6:H6" ):Merge( .T. )
//Comienzo de los datos
nLine := 8
nCol := 1
//Años eje Y
++nLine
For nItem:=1 to Len(aAnios)*2 step 2
oSheet:Cells( nLine, nItem+1
):Value:=Allstring(aAnios[Int(nItem/2+.5),1])
oSheet:Cells( nLine, nItem+1 ):HorizontalAlignment := 3
oSheet:Cells( nLine, nItem+1 ):Font:Bold := .T.
oSheet:Cells( nLine, nItem+1 ):Font:Size := 12
//Aporte y retorno
oSheet:Range(
ExcelColumn(nItem+1)+Allstring(nLine)+":"+ExcelColumn(nItem+2)+Allstring(nLine)
):Merge( .T. )
oSheet:Cells( nLine+1, nItem+1 ):Value:="Aporte"
oSheet:Cells( nLine+1, nItem+1 ):Interior:Color := clLtGray
oSheet:Cells( nLine+1, nItem+2 ):Value:="Retorno"
oSheet:Cells( nLine+1, nItem+2 ):Interior:Color := clLtGray
oSheet:Cells( nLine+2, nItem+1 ):Value:=aAnios[Int(nItem/2+.5),2]
//Aporte
oSheet:Cells( nLine+2, nItem+2 ):Value:=aAnios[Int(nItem/2+.5),3]
//Retorno
//Saldos
oSheet:Cells( nLine+3, nItem+1
):Value:="="+ExcelColumn(nItem+2)+Allstring(nLine+2)+"-"+ExcelColumn(nItem+1)+Allstring(nLine+2)
oSheet:Range(
ExcelColumn(nItem+1)+Allstring(nLine+3)+":"+ExcelColumn(nItem+2)+Allstring(nLine+3)
):Merge( .T. )
//TIR
If nItem>2
oSheet:Cells( nLine+5, nItem+1
):Value:="=TIR($B$"+Allstring(nLine+3)+":"+ExcelColumn(nItem+1)+Allstring(nLine+3)+ ")"
oSheet:Range(
ExcelColumn(nItem+1)+Allstring(nLine+5)+":"+ExcelColumn(nItem+2)+Allstring(nLine+5)
):Merge( .T. )
Endif
Next
//Textos del Eje Y
++nLine
++nLine
oSheet:Cells( ++nLine, 1 ):Value:="Saldos"
oSheet:Cells( nLine, 1 ):Font:Bold:=.T.
++nLine
oSheet:Cells( ++nLine, 1 ):Value:="TIR"
oSheet:Cells( nLine, 1 ):Font:Bold:=.T.
// Autoajustar columnas del rango
oSheet:Columns( "A:"+ExcelColumn(nCol) ):AutoFit()
//Mostrar hoja
oExcel:Visible := .T.
oSheet := NIL
oWorkBook := NIL
oExcel := NIL
oClp:End()
oForm:Close()
ProcessMessages()
Ramón Zea escribió:
> Creo que no me he explicado:
> He aqui el error:
>
> TOLEAUTO:_VALUE(0)
> Error 56789924:CELLS/0 S_OK: _VALUE
> Argumentos: ( [ 1] = Tipo: C Valor: =R[-1]C*0.15)
>
> Si pasara las formulas asi como tu me has comentado, uff, regalado,
> pero.... la cosa es que como te repito, hago el vaciado de documentos de
> compra y venta, y no se cuantas partidas lleva cada uno, basandome en un
> formato prediseñado en el mismo excel.
>
> algo asi:
> Cantidad Unidad Código
> Concepto MarcaCosto Importe
> {partidas} {cantidad} {unidad} {codigo} {descripcion}
> {marca} {costo} {importe}
>
>
> Importe: {docto.subtotal}
>
> IVA: {docto.iva}
>
> Total: {docto.total}
>
> Voy pasando a otra hoja de excel y sustituyendo valores, pero como se
> ve, no se en que celda queda el IVA, ahora que el subtotal lo ubico por
> que hago una totalizacion de la columan {importe}.
>
-
- Mensajes: 1831
- Registrado: Mar Oct 11, 2005 9:53 am
Fórmulas a Excel
Si, pero el detalle (en mi caso) es por que el sistema lo adapto a las
necesidades de cada cliente, y al tener el formato externo, no tengo que
modificar el sistema para cada uno, si no, solo modificar el archivo de
Excel y listo; de manera análoga hago mis formatos de impresión de
documentos, por eso igual el envío de documentos a Excel lo hice de este
modo, pero si ha sido un poco mas complicado.
Gracias, sigo investigando.
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
necesidades de cada cliente, y al tener el formato externo, no tengo que
modificar el sistema para cada uno, si no, solo modificar el archivo de
Excel y listo; de manera análoga hago mis formatos de impresión de
documentos, por eso igual el envío de documentos a Excel lo hice de este
modo, pero si ha sido un poco mas complicado.
Gracias, sigo investigando.
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
Ramón Zea
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
-
- Mensajes: 180
- Registrado: Lun Sep 15, 2008 2:53 pm
Fórmulas a Excel
Ramón.
Hay una cosa que no entiendo. Cada cliente tuyo tiene un formato distinto de
hoja. Y vos queres hacer con un solo programa el llenado de esas hojas.
Cambia el largo de las hojas?.
Perdoname, pero si te digo una barbaridad pero no lo entiendo con claridad.
Supongamos que tu formato sea como vos pusiste
algo asi:
Cantidad Unidad Código Concepto MarcaCosto
Importe
{partidas} {cantidad} {unidad} {codigo} {descripcion} {marca}
{costo} {importe}
Importe: {docto.subtotal}
IVA: {docto.iva}
Total: {docto.total}
Lo que vos queres es averiguar cuantos "renglones" usaste en el llenado para
poder poner los totales. (las columnas son fijas no ?)
Si vos empezas a volcar tus datos son la fila 4, por decir algo.
Perfectamente podes llevar el control de cuantas filas agregaste y hasta
donde llegaste. Si aparte en otra posicion alejada de los datos guardas en
formato de tus formulas finales. Podrias "traerlas" al pie, reemplazando con
tus totales.
Quiero ser claro, pero no se si me vas a entender.
Saludos
Juan Castañeda
Hay una cosa que no entiendo. Cada cliente tuyo tiene un formato distinto de
hoja. Y vos queres hacer con un solo programa el llenado de esas hojas.
Cambia el largo de las hojas?.
Perdoname, pero si te digo una barbaridad pero no lo entiendo con claridad.
Supongamos que tu formato sea como vos pusiste
algo asi:
Cantidad Unidad Código Concepto MarcaCosto
Importe
{partidas} {cantidad} {unidad} {codigo} {descripcion} {marca}
{costo} {importe}
Importe: {docto.subtotal}
IVA: {docto.iva}
Total: {docto.total}
Lo que vos queres es averiguar cuantos "renglones" usaste en el llenado para
poder poner los totales. (las columnas son fijas no ?)
Si vos empezas a volcar tus datos son la fila 4, por decir algo.
Perfectamente podes llevar el control de cuantas filas agregaste y hasta
donde llegaste. Si aparte en otra posicion alejada de los datos guardas en
formato de tus formulas finales. Podrias "traerlas" al pie, reemplazando con
tus totales.
Quiero ser claro, pero no se si me vas a entender.
Saludos
Juan Castañeda
-
- Mensajes: 1831
- Registrado: Mar Oct 11, 2005 9:53 am
Fórmulas a Excel
Te anexo imágenes de los resultados, como puedes ver lo que llamo
"plantilla" es el formato de como va a ir integrado mi archivo de excel
resultado.
Lo que llamo partidas es donde mando los productos que integran el
documento, y el subtotal debe tomar el valor de la suma, hasta ahora estoy
en proceso de aplicar una sumatoria para solo poner el valor y ya no buscar
la formula, pero con aplicar la formula me daria mucho mejor resultado por
algunas cosas que me estan pidiendo.
Espero haberme explicado.
Saludos.
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
--
Attached files
"plantilla" es el formato de como va a ir integrado mi archivo de excel
resultado.
Lo que llamo partidas es donde mando los productos que integran el
documento, y el subtotal debe tomar el valor de la suma, hasta ahora estoy
en proceso de aplicar una sumatoria para solo poner el valor y ya no buscar
la formula, pero con aplicar la formula me daria mucho mejor resultado por
algunas cosas que me estan pidiendo.
Espero haberme explicado.
Saludos.
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
--
Attached files
Ramón Zea
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
-
- Mensajes: 1831
- Registrado: Mar Oct 11, 2005 9:53 am
Fórmulas a Excel
mi PLANTILLA
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
--
Attached files
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
--
Attached files
Ramón Zea
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
-
- Mensajes: 180
- Registrado: Lun Sep 15, 2008 2:53 pm
Fórmulas a Excel
Ramón
Desde mi ignorancia en manejo de Excel desde Xailer, pregunto :
Se puede indicar mediante un metodo, la insercion de una fila. Por ejemplo
oSheet:InsertarFile( 10 ) // donde 10 sea la posicion de la celda actual
Existe algo como esto ???
En el caso de que exista, tendrias resuelto tu problema..
Es una idea... no se
Juan Castañeda
Desde mi ignorancia en manejo de Excel desde Xailer, pregunto :
Se puede indicar mediante un metodo, la insercion de una fila. Por ejemplo
oSheet:InsertarFile( 10 ) // donde 10 sea la posicion de la celda actual
Existe algo como esto ???
En el caso de que exista, tendrias resuelto tu problema..
Es una idea... no se
Juan Castañeda