Pergunte aqui

Histórico de revisões [voltar]

clique para ocultar/mostrar a revisão 1
Versão inicial

Boa noite,

Como parece que você conseguiu copiar o conteúdo para outro arquivo, vou postar como crirar uma arquivo novo oculto, salvar com o nome desejado e fechar:

Sub Main
Dim oNovoDoc as Object
Dim sLocal as String, sTag as String, sData as String
Dim sArquivo as String, sURL as String 

   'Preparar URL'
   sLocal = "D:\Temp\"
   sTag = "Pendencias"
   sData = Year(Date) & Right("00"&Month(Date),2) & Right("00"&Day(Date),2)
   sArquivo = sData & "_" & sTag & ".ods"
   sURL = convertToURL( sLocal & sArquivo )

   'Criar doc do Calc oculto'
   Dim Args(0) As New com.sun.star.beans.PropertyValue
   Args(0).Name = "Hidden"
   Args(0).Value = True
   oNovoDoc = StarDesktop.loadComponentFromURL( "private:factory/scalc", "_blank", 0, Args() )

   'Preencher A1 com data&hora atual'
   oNovoDoc.Sheets(0).getCellRangeByName("A1").String = Now

   'Salvarcomo'
   oNovoDoc.StoreAsURL( sURL, Array() )

   'Fechar'
   oNovoDoc.Close(1)

   MsgBox "Concluído!"
End Sub

Atte,

Boa noite,

Como parece que você conseguiu copiar o conteúdo para outro arquivo, vou postar como crirar uma arquivo novo oculto, salvar com o nome desejado e fechar:

Sub Main
Dim oNovoDoc as Object
Dim sLocal as String, sTag as String, sData as String
Dim sArquivo as String, sURL as String 

   'Preparar URL'
URL
   sLocal = "D:\Temp\"
   sTag = "Pendencias"
   sData = Year(Date) & Right("00"&Month(Date),2) & Right("00"&Day(Date),2)
   sArquivo = sData & "_" & sTag & ".ods"
   sURL = convertToURL( sLocal & sArquivo )

   'Criar doc do Calc oculto'
   Dim Args(0) As New com.sun.star.beans.PropertyValue
   Args(0).Name = "Hidden"
   Args(0).Value = True
   oNovoDoc = StarDesktop.loadComponentFromURL( "private:factory/scalc", "_blank", 0, Args() )

   'Preencher A1 com data&hora atual'
   oNovoDoc.Sheets(0).getCellRangeByName("A1").String = Now

   'Salvarcomo'
   oNovoDoc.StoreAsURL( sURL, Array() )

   'Fechar'
   oNovoDoc.Close(1)

   MsgBox "Concluído!"
End Sub

Atte,

Boa noite,

Como parece que você conseguiu Edição 01:

Para facilitar para todos, expandi o código para criar um documento do Calc oculto, copiar a planilhada "Dados" da planilha fonte, processar a cópia para ficar apenas os registros com status "ERRO", e salvar o conteúdo para outro arquivo, vou postar como crirar uma arquivo novo oculto, salvar com o nome desejado e fechar:no estilo 20180901_Pendencias.ods:

Código:

Sub Main
Dim oNovoDoc as Object
Dim sLocal as String, sTag as String, sData as String
Dim sArquivo as String, sURL as String 

   'Preparar URL
URL'
   sLocal = "D:\Temp\"
   sTag = "Pendencias"
   sData = Year(Date) & Right("00"&Month(Date),2) & Right("00"&Day(Date),2)
   sArquivo = sData & "_" & sTag & ".ods"
   sURL = convertToURL( sLocal & sArquivo )

   'Criar doc do Calc oculto'
   Dim Args(0) As New com.sun.star.beans.PropertyValue
   Args(0).Name = "Hidden"
   Args(0).Value = True
   oNovoDoc = StarDesktop.loadComponentFromURL( "private:factory/scalc", "_blank", 0, Args() )

   'Preencher A1 com data&hora atual'
   oNovoDoc.Sheets(0).getCellRangeByName("A1").String = Now
'Criar uma cópia da planilha Dados no novo arquivo'
   oNovoDoc.Sheets.importSheet( ThisComponent, "Dados", 0 )

   'Manipular diretamente a planilha cópia'
   oPlanCopia = oNovoDoc.Sheets(0) 'Ela foi inserida na posição 0'   
   For i =  UltimaLinha(oPlanCopia) to 1 Step -1
      oCel = oPlanCopia.getCellByPosition( 1, i )

      If oCel.String <> "ERRO" Then
         oPlanCopia.Rows.removeByIndex( i,1 )
      End If
   Next i

   'Salvarcomo'
   oNovoDoc.StoreAsURL( sURL, Array() )

   'Fechar'
   oNovoDoc.Close(1)

   MsgBox "Concluído!"
"Operação concluída com sucesso!"
End Sub

Function UltimaLinha( oPlan )
   oCursor = oPlan.createCursor
   oCursor.gotoEndOfUsedArea(True)
   UltimaLinha = oCursor.Rows.Count-1
End Function

Atte,

Boa noite,

Edição 01:

Para facilitar para todos, expandi o código para criar um documento do Calc oculto, copiar a planilhada planilha "Dados" da planilha fonte, do arquivo original, processar a cópia para ficar apenas os registros com status "ERRO", e salvar o novo arquivo no estilo 20180901_Pendencias.ods:

Código:

Sub Main
Dim oNovoDoc as Object
Dim sLocal as String, sTag as String, sData as String
Dim sArquivo as String, sURL as String 

   'Preparar URL'
   sLocal = "D:\Temp\"
   sTag = "Pendencias"
   sData = Year(Date) & Right("00"&Month(Date),2) & Right("00"&Day(Date),2)
   sArquivo = sData & "_" & sTag & ".ods"
   sURL = convertToURL( sLocal & sArquivo )

   'Criar doc do Calc oculto'
   Dim Args(0) As New com.sun.star.beans.PropertyValue
   Args(0).Name = "Hidden"
   Args(0).Value = True
   oNovoDoc = StarDesktop.loadComponentFromURL( "private:factory/scalc", "_blank", 0, Args() )

   'Criar uma cópia da planilha Dados no novo arquivo'
   oNovoDoc.Sheets.importSheet( ThisComponent, "Dados", 0 )

   'Manipular diretamente a planilha cópia'
   oPlanCopia = oNovoDoc.Sheets(0) 'Ela foi inserida na posição 0'   
   For i =  UltimaLinha(oPlanCopia) to 1 Step -1
      oCel = oPlanCopia.getCellByPosition( 1, i )

      If oCel.String <> "ERRO" Then
         oPlanCopia.Rows.removeByIndex( i,1 )
      End If
   Next i

   'Salvarcomo'
   oNovoDoc.StoreAsURL( sURL, Array() )

   'Fechar'
   oNovoDoc.Close(1)

   MsgBox "Operação concluída com sucesso!"
End Sub

Function UltimaLinha( oPlan )
   oCursor = oPlan.createCursor
   oCursor.gotoEndOfUsedArea(True)
   UltimaLinha = oCursor.Rows.Count-1
End Function

Atte,

Boa noite,

Edição 01:

Para facilitar para todos, expandi o código para criar um documento do Calc oculto, copiar a planilha "Dados" do arquivo original, processar a cópia para ficar apenas os registros com status "ERRO", e salvar o novo arquivo no estilo 20180901_Pendencias.ods:

Código:

Sub Main
Dim oNovoDoc as Object
Dim sLocal as String, sTag as String, sData as String
Dim sArquivo as String, sURL as String 

   'Preparar URL'
' Preparar URL '
   sLocal = "D:\Temp\"
   sTag = "Pendencias"
   sData = Year(Date) & Right("00"&Month(Date),2) & Right("00"&Day(Date),2)
   sArquivo = sData & "_" & sTag & ".ods"
   sURL = convertToURL( sLocal & sArquivo )

   'Criar doc do Calc oculto'
   Dim Args(0) As New com.sun.star.beans.PropertyValue
   Args(0).Name = "Hidden"
   Args(0).Value = True
   oNovoDoc = StarDesktop.loadComponentFromURL( "private:factory/scalc", "_blank", 0, Args() )

   'Criar uma cópia da planilha Dados no novo arquivo'
   oNovoDoc.Sheets.importSheet( ThisComponent, "Dados", 0 )

   'Manipular diretamente a planilha cópia'
   oPlanCopia = oNovoDoc.Sheets(0) 'Ela foi inserida na posição 0'   
   For i =  UltimaLinha(oPlanCopia) to 1 Step -1
      oCel = oPlanCopia.getCellByPosition( 1, i )

      If oCel.String <> "ERRO" Then
         oPlanCopia.Rows.removeByIndex( i,1 )
      End If
   Next i

   'Salvarcomo'
   oNovoDoc.StoreAsURL( sURL, Array() )

   'Fechar'
   oNovoDoc.Close(1)

   MsgBox "Operação concluída com sucesso!"
End Sub

Function UltimaLinha( oPlan )
   oCursor = oPlan.createCursor
   oCursor.gotoEndOfUsedArea(True)
   UltimaLinha = oCursor.Rows.Count-1
End Function

Atte,

Boa noite,

Edição 01:

Para facilitar para todos, expandi o código para criar um documento do Calc oculto, copiar a planilha "Dados" do arquivo original, processar a cópia para ficar apenas os registros com status "ERRO", e salvar o novo arquivo no estilo 20180901_Pendencias.ods:

Código:

Sub Main
Dim oNovoDoc as Object
Dim sLocal as String, sTag as String, sData as String
Dim sArquivo as String, sURL as String 

   ' Preparar URL '
    sLocal = "D:\Temp\"
   sTag = "Pendencias"
   sData = Year(Date) & Right("00"&Month(Date),2) & Right("00"&Day(Date),2)
   sArquivo = sData & "_" & sTag & ".ods"
   sURL = convertToURL( sLocal & sArquivo )

   'Criar doc do Calc oculto'
   Dim Args(0) As New com.sun.star.beans.PropertyValue
   Args(0).Name = "Hidden"
   Args(0).Value = True
   oNovoDoc = StarDesktop.loadComponentFromURL( "private:factory/scalc", "_blank", 0, Args() )

   'Criar uma cópia da planilha Dados no novo arquivo'
   oNovoDoc.Sheets.importSheet( ThisComponent, "Dados", 0 )

   'Manipular diretamente a planilha cópia'
   oPlanCopia = oNovoDoc.Sheets(0) 'Ela foi inserida na posição 0'   
   For i =  UltimaLinha(oPlanCopia) to 1 Step -1
      oCel = oPlanCopia.getCellByPosition( 1, i )

      If oCel.String <> "ERRO" Then
         oPlanCopia.Rows.removeByIndex( i,1 )
      End If
   Next i

   'Salvarcomo'
   oNovoDoc.StoreAsURL( sURL, Array() )

   'Fechar'
   oNovoDoc.Close(1)

   MsgBox "Operação concluída com sucesso!"
End Sub

Function UltimaLinha( oPlan )
   oCursor = oPlan.createCursor
   oCursor.gotoEndOfUsedArea(True)
   UltimaLinha = oCursor.Rows.Count-1
End Function

Atte,