FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Horas y no se deja...
Posts: 234
Joined: Tue Oct 25, 2005 12:39 AM
Horas y no se deja...
Posted: Mon Apr 10, 2006 02:11 AM

Como Ășltimo recurso acudo a ustedes... llevo horas con esto y simplemente no me sale.

Intento copiar una hoja del libro de excel al final del libro.
Tengo un libro con 3 hojas

Primero selecciono la hoja que voy a copiar
oExcel:ActiveWorkbook:Sheets("Hoja1"):Select()

Ahora intento copiarla al final
oExcel:ActiveWorkbook:Sheets("Hoja1"):Copy("After")

SegĂșn VB se hace asi, pero no tengo idea de como implementar lo Ășltimo
Sheets("Hoja1").Copy After:=Sheets(3)

ÂżAlguna alma caritativa que pueda ayudarme?
Fivewin 2.7 + Harbour

Gracias
Fernando Leal

Posts: 234
Joined: Tue Oct 25, 2005 12:39 AM
y otras horas mĂĄs tarde
Posted: Mon Apr 10, 2006 06:26 AM

Si a alguien le sirve lo he resuelto asi:

Activar la hoja que necesito, en este caso se llama "A"
oExcel:ActiveWorkbook:Sheets("A"):Select()

Agrego las hojas que necesito en el libro
RESUVD->( dbgotop() )
FOR i := 1 TO RESUVD->( lastrec() -1 )
oExcel:ActiveWorkbook:Sheets("A"):Invoke("Copy",oHoja)
NEXT

Ahora las renombro como yo quiero
nRows := RESUVD->( lastrec() )

while RESUVD->( !eof() )
if nRows == 1
oExcel:ActiveWorkbook:Sheets("A"):Select()
oExcel:ActiveWorkbook:Sheets("A"):Name := alltrim( RESUVD->FOLIBNX )

   else
      oExcel:ActiveWorkbook:Sheets("A ("+alltrim( cValToChar( nRows ) )+")"):Select()
      oExcel:ActiveWorkbook:Sheets("A ("+alltrim( cValToChar( nRows ) )+")"):Name := alltrim( RESUVD->FOLIBNX )

   endif

  Activo la hoja para meterle los datos
   oHoja  := oExcel:Get( "ActiveSheet" )
        if VD->( dbseek( RESUVD->FOLSICRE ) )
           Le meto los datos que necesito...
           oHoja:Cells( 8, 6 ):Value := VD->CNOMVISITA
           oHoja:Cells( 8, 25 ):Value := VD->FOLIBNX

Ingo a su male el problema... vamonos con lo que sigue que es para hoy.

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Horas y no se deja...
Posted: Mon Apr 10, 2006 09:58 AM

Fernando,

gracias por compartirlo con todos :)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 298
Joined: Fri Oct 07, 2005 05:20 AM
Horas y no se deja...
Posted: Mon Apr 10, 2006 12:49 PM
Mi estimado Fer :

Te puedes ahorrar muchos tiempo si revisas el cĂłdigo fuente de la clase TExcel :

  /*
   * Metodos para las propiedades de la hoja
   */
  METHOD AddSheet()         INLINE ::oExcel:Sheets:Add()
  METHOD CopySheet()        INLINE ::oExcel:Sheets:Copy()
  METHOD DelSheet(cSheet)   INLINE ::oExcel:Sheets(cSheet):Delete()

  // cPos -> "After" | "Before"
  METHOD MoveSheet(cSheet,cPos,nSheet)  INLINE ::oExcel:Sheets(cSheet):Move(cPos,nSheet)
*   oSheet := oExcel:Sheets(“oSheet1”)                              //move sheet position. This example will move
*   oExcel:Sheets( "oSheet2” ):Move( oSheet )

  METHOD SetSheet(cSheet)               INLINE ::oExcel:Sheets(cSheet):Select() , ::oSheet := ::oExcel:Get( "ActiveSheet" )
  METHOD NameSheet(cSheet,cName)        INLINE ::oExcel:Sheets(cSheet):Name := cName
Vikthor

Continue the discussion