Alaska Software Inc. - Copiar + Pegar Hojas en Excel
Username: Password:
AuthorTopic: Copiar + Pegar Hojas en Excel
Javier JareoCopiar + Pegar Hojas en Excel
on Sat, 10 Dec 2011 14:51:11 +0100
Hola,
    S cmo mover Hojas en Excel con ActiveX, pero no s cmo Copiar y Pegar
Hojas.
    El Macro indica "Copy Before := Sheets(n)",  "Copy After ...", pero no
se admite en Cdigo de Xbase++.

    Alguien puede ayudarme?

Javier Jareo
dminfor@terra.es
Hector PezoaRe: Copiar + Pegar Hojas en Excel
on Sat, 10 Dec 2011 11:37:40 -0300
Javier

Estudia este codigo y transformalo a xbase++
a ver si durante estos dias te puedo ayudar

Dim oExcel As Excel.Application
    Dim oWB As Excel.Workbook
    Dim oWS As Excel.Worksheet

    Set oExcel = New Excel.Application
    oExcel.Visible = True ' <-- *** Optional ***

    Dim oRng1 As Excel.Range
    Dim oRng2 As Excel.Range

    Set oWB = oExcel.Workbooks.Add
    Set oWS = oWB.Worksheets("Sheet1")

    Set oRng1 = oWS.Range("A1")
    Set oRng2 = oWS.Range("B2:E5")

    oRng1.Value = "Hello World"
    Call oRng1.Copy(Destination:=oRng2)

    oWB.SaveAs("Hello World.xls") ' <-- Results saved here.




"Javier Jareo" <dminfor@terra.es> escribi en el mensaje 
news:34802671$3b5c44d2$12f953@news.alaska-software.com...
>    Hola,
>    S cmo mover Hojas en Excel con ActiveX, pero no s cmo Copiar y 
> Pegar
> Hojas.
>    El Macro indica "Copy Before := Sheets(n)",  "Copy After ...", pero no
> se admite en Cdigo de Xbase++.
>
>    Alguien puede ayudarme?
>
> Javier Jareo
> dminfor@terra.es
>
>
>
>
>
Hector PezoaRe: Copiar + Pegar Hojas en Excel
on Sat, 10 Dec 2011 11:51:48 -0300
Javier
  Algo mas de ayuda

 oExcel:=CreateObject"excel.application" )
  oExcel:DisplayAlerts=.F.
  oBook:=oExcel:Workbooks:Add()
  oSheet:=oExcel:ActiveSheet
  oSheet:Range( "A1" ):Value ="100.000 REGISTROS"
  oSheet:Range( "A1:D1" ):HorizontalAlignment := 7
  oSheet:Cells(2,3):Value = Time()
     For I=2 To 100001
          oSheet:Cells(I,2):Value = I-1
     Next I
     oSheet:Cells(I-1,3):Value = Time()
     oExcel:Visible = .T.

>
> Dim oExcel As Excel.Application
>    Dim oWB As Excel.Workbook         //local  oWB
>    Dim oWS As Excel.Worksheet          //local oWS
>
>    Set oExcel = New Excel.Application          
> oExcel:=CreateObject"excel.application" )
>    oExcel.Visible = True ' <-- *** Optional ***        oExcel:Visible = 
> .T.

>
>    Dim oRng1 As Excel.Range       //local  oRng1
>    Dim oRng2 As Excel.Range       //local oRng2
>
>    Set oWB = oExcel.Workbooks.Add                 /// 
> oBook:=oExcel:Workbooks:Add()
>    Set oWS = oWB.Worksheets("Sheet1") 
> ///oSheet:=oExcel:ActiveSheet    //("Shee1")
>   Set  oRng1   = oWS.Range("A1")               /// oSheet:Range( "A1" )
>   Set oRng2 = oWS.Range("B2:E5")
>
>    oRng1.Value = "Hello World"                  Tambien puedes usar 
> oSheet:Range( "A1" ):Value ="Hello World"
>    Call oRng1.Copy(Destination:=oRng2)
>
>    oWB.SaveAs("Hello World.xls") ' <-- Results saved here.
>
>
>
Hector PezoaRe: Copiar + Pegar Hojas en Excel
on Sat, 10 Dec 2011 12:13:50 -0300
Javier

o puedes ser esto lo que necesitas
http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/411-copiar-hojas-en-excel-desde-vb.htm

saludos



"Hector Pezoa" <hpezoa@telsur.cl> escribi en el mensaje 
news:30519830$10749b2b$12f53c@news.alaska-software.com...
>  Javier
>  Algo mas de ayuda
>
> oExcel:=CreateObject"excel.application" )
>  oExcel:DisplayAlerts=.F.
>  oBook:=oExcel:Workbooks:Add()
>  oSheet:=oExcel:ActiveSheet
>  oSheet:Range( "A1" ):Value ="100.000 REGISTROS"
>  oSheet:Range( "A1:D1" ):HorizontalAlignment := 7
>  oSheet:Cells(2,3):Value = Time()
>     For I=2 To 100001
>          oSheet:Cells(I,2):Value = I-1
>     Next I
>     oSheet:Cells(I-1,3):Value = Time()
>     oExcel:Visible = .T.
>
>>
>> Dim oExcel As Excel.Application
>>    Dim oWB As Excel.Workbook         //local  oWB
>>    Dim oWS As Excel.Worksheet          //local oWS
>>
>>    Set oExcel = New Excel.Application          
>> oExcel:=CreateObject"excel.application" )
>>    oExcel.Visible = True ' <-- *** Optional ***        oExcel:Visible = 
>> .T.
>
>>
>>    Dim oRng1 As Excel.Range       //local  oRng1
>>    Dim oRng2 As Excel.Range       //local oRng2
>>
>>    Set oWB = oExcel.Workbooks.Add                 /// 
>> oBook:=oExcel:Workbooks:Add()
>>    Set oWS = oWB.Worksheets("Sheet1") ///oSheet:=oExcel:ActiveSheet 
>> //("Shee1")
>>   Set  oRng1   = oWS.Range("A1")               /// oSheet:Range( "A1" )
>>   Set oRng2 = oWS.Range("B2:E5")
>>
>>    oRng1.Value = "Hello World"                  Tambien puedes usar 
>> oSheet:Range( "A1" ):Value ="Hello World"
>>    Call oRng1.Copy(Destination:=oRng2)
>>
>>    oWB.SaveAs("Hello World.xls") ' <-- Results saved here.
>>
>>
>>
>
>
Javier JareoRe: Copiar + Pegar Hojas en Excel
on Sat, 10 Dec 2011 20:24:55 +0100
Muchas gracias, Hctor.
    Con este mtodo ya saba hacerlo. Pero lo que necesito es copiar y pegar 
la Hoja en s,
incluidas pues sus definiciones de mrgenes, saltos, parmetros de 
impresin, etc.

    Gracias de nuevo.

Javier Jareo dminfor@terra.es

"Hector Pezoa" <hpezoa@telsur.cl> escribi en el mensaje 
news:1e21f509$11c7b94b$130c83@news.alaska-software.com...
> Javier
>
> o puedes ser esto lo que necesitas
> http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/411-copiar-hojas-en-excel-desde-vb.htm
>
> saludos
>
>
>
> "Hector Pezoa" <hpezoa@telsur.cl> escribi en el mensaje 
> news:30519830$10749b2b$12f53c@news.alaska-software.com...
>>  Javier
>>  Algo mas de ayuda
>>
>> oExcel:=CreateObject"excel.application" )
>>  oExcel:DisplayAlerts=.F.
>>  oBook:=oExcel:Workbooks:Add()
>>  oSheet:=oExcel:ActiveSheet
>>  oSheet:Range( "A1" ):Value ="100.000 REGISTROS"
>>  oSheet:Range( "A1:D1" ):HorizontalAlignment := 7
>>  oSheet:Cells(2,3):Value = Time()
>>     For I=2 To 100001
>>          oSheet:Cells(I,2):Value = I-1
>>     Next I
>>     oSheet:Cells(I-1,3):Value = Time()
>>     oExcel:Visible = .T.
>>
>>>
>>> Dim oExcel As Excel.Application
>>>    Dim oWB As Excel.Workbook         //local  oWB
>>>    Dim oWS As Excel.Worksheet          //local oWS
>>>
>>>    Set oExcel = New Excel.Application          
>>> oExcel:=CreateObject"excel.application" )
>>>    oExcel.Visible = True ' <-- *** Optional ***        oExcel:Visible 
>>> = .T.
>>
>>>
>>>    Dim oRng1 As Excel.Range       //local  oRng1
>>>    Dim oRng2 As Excel.Range       //local oRng2
>>>
>>>    Set oWB = oExcel.Workbooks.Add                 /// 
>>> oBook:=oExcel:Workbooks:Add()
>>>    Set oWS = oWB.Worksheets("Sheet1") ///oSheet:=oExcel:ActiveSheet 
>>> //("Shee1")
>>>   Set  oRng1   = oWS.Range("A1")               /// oSheet:Range( "A1" )
>>>   Set oRng2 = oWS.Range("B2:E5")
>>>
>>>    oRng1.Value = "Hello World"                  Tambien puedes usar 
>>> oSheet:Range( "A1" ):Value ="Hello World"
>>>    Call oRng1.Copy(Destination:=oRng2)
>>>
>>>    oWB.SaveAs("Hello World.xls") ' <-- Results saved here.
>>>
>>>
>>>
>>
>>
>
>
>
Jorge LRe: Copiar + Pegar Hojas en Excel
on Sun, 11 Dec 2011 11:24:47 -0300
Hola Javier,
no me queda claro si lo que necesitas es transferir datos entre 2 planillas 
que controla tu aplicación, o entre tu aplicación y una planilla del usuario

en fin...,  si lo que necesitas es hacer uso del portapapeles con la clase 
xbpclipboard()


saludos


"Javier Jareño"  escribió en el mensaje de 
noticias:d35fe30$2d05a5bc$132742@news.alaska-software.com...

    Muchas gracias, Héctor.
    Con este método ya sabía hacerlo. Pero lo que necesito es copiar y pegar
la Hoja en sí,
incluidas pues sus definiciones de márgenes, saltos, parámetros de
impresión, etc.

    Gracias de nuevo.

Javier Jareño dminfor@terra.es

"Hector Pezoa" <hpezoa@telsur.cl> escribió en el mensaje
news:1e21f509$11c7b94b$130c83@news.alaska-software.com...
> Javier
>
> o puedes ser esto lo que necesitas
> http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/411-copiar-hojas-en-excel-desde-vb.htm
>
> saludos
>
>
>
> "Hector Pezoa" <hpezoa@telsur.cl> escribió en el mensaje 
> news:30519830$10749b2b$12f53c@news.alaska-software.com...
>>  Javier
>>  Algo mas de ayuda
>>
>> oExcel:=CreateObject"excel.application" )
>>  oExcel:DisplayAlerts=.F.
>>  oBook:=oExcel:Workbooks:Add()
>>  oSheet:=oExcel:ActiveSheet
>>  oSheet:Range( "A1" ):Value ="100.000 REGISTROS"
>>  oSheet:Range( "A1:D1" ):HorizontalAlignment := 7
>>  oSheet:Cells(2,3):Value = Time()
>>     For I=2 To 100001
>>          oSheet:Cells(I,2):Value = I-1
>>     Next I
>>     oSheet:Cells(I-1,3):Value = Time()
>>     oExcel:Visible = .T.
>>
>>>
>>> Dim oExcel As Excel.Application
>>>    Dim oWB As Excel.Workbook         //local  oWB
>>>    Dim oWS As Excel.Worksheet          //local oWS
>>>
>>>    Set oExcel = New Excel.Application          
>>> oExcel:=CreateObject"excel.application" )
>>>    oExcel.Visible = True ' <-- *** Optional ***        oExcel:Visible 
>>> = .T.
>>
>>>
>>>    Dim oRng1 As Excel.Range       //local  oRng1
>>>    Dim oRng2 As Excel.Range       //local oRng2
>>>
>>>    Set oWB = oExcel.Workbooks.Add                 /// 
>>> oBook:=oExcel:Workbooks:Add()
>>>    Set oWS = oWB.Worksheets("Sheet1") ///oSheet:=oExcel:ActiveSheet 
>>> //("Shee1")
>>>   Set  oRng1   = oWS.Range("A1")               /// oSheet:Range( "A1" )
>>>   Set oRng2 = oWS.Range("B2:E5")
>>>
>>>    oRng1.Value = "Hello World"                  Tambien puedes usar 
>>> oSheet:Range( "A1" ):Value ="Hello World"
>>>    Call oRng1.Copy(Destination:=oRng2)
>>>
>>>    oWB.SaveAs("Hello World.xls") ' <-- Results saved here.
>>>
>>>
>>>
>>
>>
>
>
>
Jose Antonio Diego KerejeRe: Copiar + Pegar Hojas en Excel
on Sun, 11 Dec 2011 17:48:23 +0100
Hola Javier:

Aquí tienes una manera de cómo se puede hacer. En el ejemplo se copia la 
Hoja2 del archivo Out.xls y se pega antes de la primera hoja del archivo 
In.xls

Saludos.


Test.zip
AUGE_ OHRRe: Copiar + Pegar Hojas en Excel
on Sun, 11 Dec 2011 18:15:35 +0100
hi,

as i can say you try to "copy" a "VIEW" Object which will not work.

as i say you need a "RANGE" Object to "copy","move","insert" etc.
here the Macro i got

Sub Makro1()
'
' Makro1 Makro
'
'
    Range("A1:F1").Select               mark  A1:F1
    Selection.Copy                            right Mouse Menu "copy"
    Sheets("Hoja1").Select              change to 2nd Sheet
    Range("A2:E2").Select              select A2:E2
    Selection.Insert Shift:=xlDown   "insert" before and "shift" down old 
selection
End Sub

greetings by OHR
Jimmy
Jose Antonio Diego KerejeRe: Copiar + Pegar Hojas en Excel
on Sun, 11 Dec 2011 18:38:58 +0100
Jimmy,

> as i can say you try to "copy" a "VIEW" Object which will not work.

I think what you say is wrong. Have you tried the sample?. If you do, you 
can see that he does what he asks
Javier.

> as i say you need a "RANGE" Object to "copy","move","insert" etc.
> here the Macro i got

No. You forget that there are many methods that automate standard or generic 
operations.

Regards. Diego
AUGE_ OHRRe: Copiar + Pegar Hojas en Excel
on Sun, 11 Dec 2011 20:07:40 +0100
hi,

> I think what you say is wrong. Have you tried the sample?.

yes i have look into "original" XLS before start Demo
and than see result.

> If you do, you  can see that he does what he asks Javier.

i got 4 Tabs in "IN.XLS" where the new Tab called "Hoja2(2)"
if he want this than i have missunderstood what he meen.

i tought that he want to "inset" into a Sheet "between" existing
Cell what my Macro is doing.


> No. You forget that there are many methods that automate standard or 
> generic operations.

yes this i understand but "most" time you want to work
on a "Part" of hole Sheet so Range().Select  is used
to "mark" the "Part" you want to work with.

as i say it would be more clear if we got the hole Excel Macro
which record that what he realy want to make with Copy / Paste

greetings by OHR
Jimmy
Jose Antonio Diego KerejeRe: Copiar + Pegar Hojas en Excel
on Sun, 11 Dec 2011 17:49:19 +0100
Hola Javier:

Aquí tienes una manera de cómo se puede hacer. En el ejemplo se copia la
Hoja2 del archivo Out.xls y se pega antes de la primera hoja del archivo
In.xls

Saludos.


Test.zip
Javier JareoRe: Copiar + Pegar Hojas en Excel
on Sun, 11 Dec 2011 23:27:24 +0100
Diego,
    Esto es exactamente lo que quera. He trabajado mucho con ActiveX en 
Excel y, hasta ahora, no haba necesitado copiar hojas.

    Llevo aos siguiendo este foro y admiro tu trabajo.

    Mucha gracias, y un cordial saludo.

Javier Jareo Serrano dminfor@terra.es

<Jose Antonio Diego Kereje> escribi en el mensaje 
news:2924c14c$f990645$14a0c@news.alaska-software.com...
> Hola Javier:
>
> Aqu tienes una manera de cmo se puede hacer. En el ejemplo se copia la
> Hoja2 del archivo Out.xls y se pega antes de la primera hoja del archivo
> In.xls
>
> Saludos.
>