Comando para Importar Abas de Planilha - plan1-plan2-etc

114 views
Skip to first unread message

Orlando Esau

unread,
May 13, 2019, 12:47:05 PM5/13/19
to Progress - 4GL
Bom dia a todos.

Por favor estou com dificuldade para finalizar a importação de uma planilha de excel.
Dentro da planilha existem diversas "Abas", ou seja, plan1 (item1), plan2 (item2), plan3 (item3), etc.
Consigo criar um comando para importar uma a uma, mas acredito que deva existir alguma maneira mais simples.
Segue abaixo a ideia, o erro ocorre quando tento pular de uma planilha a outra.
Por favor alguém já passou por esta situação ?

Muito Obrigado.


iPlanilha = 1.
iLinha = 2.
   
REPEAT:

    iLinha = iLinha + 1.
    iPlanilha = iPlanilha + 1.

    ASSIGN     vAux1  = excelAppl:Sheets:Item(iPlanilha):Range("A" + string(ilinha)):text no-error.
    ASSIGN     vAux2  = excelAppl:Sheets:Item(iPlanilha):Range("B" + string(ilinha)):text no-error.
    ASSIGN     vAux3  = excelAppl:Sheets:Item(iPlanilha):Range("C" + string(ilinha)):text no-error.
    ASSIGN     vAux4  = excelAppl:Sheets:Item(iPlanilha):Range("D" + string(ilinha)):text no-error.
    ASSIGN     vAux5  = excelAppl:Sheets:Item(iPlanilha):Range("E" + string(ilinha)):text no-error.
    ASSIGN     vAux6  = excelAppl:Sheets:Item(iPlanilha):Range("F" + string(ilinha)):text no-error.
    ASSIGN     vAux7  = excelAppl:Sheets:Item(iPlanilha):Range("G" + string(ilinha)):text no-error.
    ASSIGN     vAux8  = excelAppl:Sheets:Item(iPlanilha):Range("H" + string(ilinha)):text no-error.
 
    IF vAux1 <> ? THEN DO:
        CREATE     tt-lct-fgl.
        ASSIGN     tt-lct-fgl.modulo                     = vAux1.
        ASSIGN     tt-lct-fgl.empresa                     = vAux2.
        ASSIGN     tt-lct-fgl.estabelecimento            = vAux3.
        ASSIGN     tt-lct-fgl.dat-transacao            = vAux4.
        ASSIGN     tt-lct-fgl.conta                     = vAux5.
        ASSIGN     tt-lct-fgl.ccusto                     = vAux6.   
        ASSIGN     tt-lct-fgl.valor                     = vAux7.
        ASSIGN     tt-lct-fgl.obs                         = vAux8.   
    END.

    IF  excelAppl:Sheets:Item(iPlanilha):Range("A" + string(ilinha)):value = ? THEN leave. /* comando para percorrer até célula vazia */

END. /* fim do repeat */

Jaime Dambros

unread,
May 13, 2019, 1:47:31 PM5/13/19
to progre...@googlegroups.com
Veja se não tem que "ativar" a planilha primeiro:
 iPlanilha = iPlanilha + 1.  
 excelAppl:Sheets:Item(iPlanilha):activate().      
 ASSIGN     vAux1  = excelAppl:Sheets:Item(iPlanilha):Range("A" + string(ilinha)):text no-error.  

--
Recebeu esta mensagem porque subscreveu ao grupo "Progress - 4GL" do Grupos do Google.
Para anular a subscrição deste grupo e parar de receber emails do mesmo, envie um email para progress_4gl...@googlegroups.com.
Para publicar uma mensagem neste grupo, envie um email para progre...@googlegroups.com.
Visite este grupo em https://groups.google.com/group/progress_4gl.
Para ver este debate na Web, visite https://groups.google.com/d/msgid/progress_4gl/0053bea6-6083-479b-9298-1571fccd8446%40googlegroups.com.
Para mais opções, visite https://groups.google.com/d/optout.


--
Jaime Alex Dambros
Joinville - SC

Orlando Esau

unread,
May 13, 2019, 3:30:26 PM5/13/19
to Progress - 4GL
Jaime, boa tarde.
Muito obrigado pelo apoio.

Todas as planilhas estão ativas, eu consigo importar a plan1 e gostaria de adicionar um comando para assim que terminar a importação da plan1 automaticamente ele vá e importe a plan2... plan3...
como se fosse um looping ou repet até chegar a última planilha.




Em segunda-feira, 13 de maio de 2019 14:47:31 UTC-3, Jaime....@datasul.com.br escreveu:
Veja se não tem que "ativar" a planilha primeiro:
 iPlanilha = iPlanilha + 1.  
 excelAppl:Sheets:Item(iPlanilha):activate().      
 ASSIGN     vAux1  = excelAppl:Sheets:Item(iPlanilha):Range("A" + string(ilinha)):text no-error.  


Para anular a subscrição deste grupo e parar de receber emails do mesmo, envie um email para progre...@googlegroups.com.

Para publicar uma mensagem neste grupo, envie um email para progre...@googlegroups.com.
Visite este grupo em https://groups.google.com/group/progress_4gl.
Para ver este debate na Web, visite https://groups.google.com/d/msgid/progress_4gl/0053bea6-6083-479b-9298-1571fccd8446%40googlegroups.com.
Para mais opções, visite https://groups.google.com/d/optout.

Marcelo Torres

unread,
May 13, 2019, 3:51:25 PM5/13/19
to progre...@googlegroups.com
Boa tarde Orlando.

Acredito que ele nunca vai retornar "?" como valor para a sua variável "vAux1".
Vai retornar um valor branco caso não tenha valor. Aí é questão de você mudar a lógica para checar o valor branco e não "?".

Faça um teste aí e diga o resultado.


Abraço,
Marcelo Torres


Para anular a subscrição deste grupo e parar de receber emails do mesmo, envie um email para progress_4gl...@googlegroups.com.

Para publicar uma mensagem neste grupo, envie um email para progre...@googlegroups.com.
Visite este grupo em https://groups.google.com/group/progress_4gl.

Jaime Dambros

unread,
May 13, 2019, 5:26:49 PM5/13/19
to progre...@googlegroups.com
Tai.
Fica o desafio de descobrir como distinguir célula vazia de nula, por essa lógica qualquer vazio no meio das células salta para a próxima linha



Para mais opções, visite https://groups.google.com/d/optout.
tt.p
Reply all
Reply to author
Forward
0 new messages