Como aplicar formatação a mais de uma célula numa macro com script VB?

Iniciado por Advanced-S17, 08 de Junho de 2014, 15:43

tópico anterior - próximo tópico

Advanced-S17

Boa tarde e final de domingo a todos!

Pessoal, preciso saber como aplicar uma formatação a mais de uma célula com uma macro dentro do Calc da BrOffice (aqui em casa tem a última versão do LibreOffice mas no serviço ainda tem o BrOffice).
Crio um botão para Limpar o conteúdo de várias células, mas ao testá-lo na prática, só serve para uma única célula. O VB permite uma referência à uma célula, referenciando da mesma forma que no próprio Calc (até mesmo com $ para fixar), mas ao utilizar os caracteres ";" ou ":", continua a funcionar só pra uma célula.

Agradeço desde já.

Graças a Deus/Universo/Outros.

Advanced-S17

Citação de: Advanced-S17 online 08 de Junho de 2014, 15:43
Boa tarde e final de domino a todos!

Pessoal, preciso saber como aplicar uma formatação a mais de uma célula com uma macro dentro do Calc da BrOffice (aqui em casa tem a última versão do LibreOffice mas no serviço ainda tem o BrOffice).
Crio um botão para Limpar o conteúdo de várias células, mas ao testá-lo na prática, só serve para uma única célula. O VB permite uma referência à uma célula, referenciando da mesma forma que no próprio Calc (até mesmo com $ para fixar), mas ao utilizar os caracteres ";" ou ":", continua a funcionar só pra uma célula.

Agradeço desde já.

Graças a Deus/Universo/Outros.

Ao fazer uns testes aqui, o seguinte código funcionou no Excel mas não no Calc LibreOffice:

Sub Apagar_tudo()
'
' Apagar_tudo Macro
'

'
    Range("A1:A21,C1,E1,G1").Select
    Range("G1").Activate
    Selection.ClearContents
End Sub

No LibreOffice dá a seguinte mensagem: "Erro em tempo de execução do BASIC.
Procedimento Sub ou procedimento de Function não definido".

Ajudem-me.


Advanced-S17

Citação de: irtigor online 09 de Junho de 2014, 01:15
Veja:

https://wiki.openoffice.org/wiki/Documentation/BASIC_Guide/Editing_Spreadsheet_Documents
http://ask.libreoffice.org/en/question/6621/import-ms-word-macros/
Pelo que entendi dessa primeira página que me passou o código ideal para a função que pretendo seria a:
REM  *****  BASIC  *****

Sub Main
Dim Doc As Object
Dim Sheet As Object
Dim CellRange As Object
Dim Flags As Long

Doc = ThisComponent
Sheet = Doc.Sheets(0)
CellRange = Sheet.getCellRangeByName("A1:A21,C1,E1,G1")

Flags = com.sun.star.sheet.CellFlags.STRING + _
      com.sun.star.sheet.CellFlags.HARDATTR

CellRange.clearContents(Flags)

End Sub

Mas dá a seguinte mensagem de erro quando executada:
Erro em tempo de execução do BASIC.
Ocorreu uma exceção
Type: com.sun.star.uno.RuntimeException
Message: .

Advanced-S17

Citação de: Advanced-S17 online 09 de Junho de 2014, 09:03
Citação de: irtigor online 09 de Junho de 2014, 01:15
Veja:

https://wiki.openoffice.org/wiki/Documentation/BASIC_Guide/Editing_Spreadsheet_Documents
http://ask.libreoffice.org/en/question/6621/import-ms-word-macros/
Pelo que entendi dessa primeira página que me passou o código ideal para a função que pretendo seria a:
REM  *****  BASIC  *****

Sub Main
Dim Doc As Object
Dim Sheet As Object
Dim CellRange As Object
Dim Flags As Long

Doc = ThisComponent
Sheet = Doc.Sheets(0)
CellRange = Sheet.getCellRangeByName("A1:A21,C1,E1,G1")

Flags = com.sun.star.sheet.CellFlags.STRING + _
      com.sun.star.sheet.CellFlags.HARDATTR

CellRange.clearContents(Flags)

End Sub

Mas dá a seguinte mensagem de erro quando executada:
Erro em tempo de execução do BASIC.
Ocorreu uma exceção
Type: com.sun.star.uno.RuntimeException
Message: .

Bom dia galera! Que as forças do bem estejam convosco.

Tentei algo que está perto do que preciso, só que não.
Percebi que ao selecionar uma ou várias células e começar a gravar a macro dentro do BrOffice, e salvar a macro, e atribuir a macro a um desenho, que servirá como botão, o botão tem a função de delete mas sem precisar  de confirmação de que tipo de informações pretendidas, pois durante a gravação da macro foi selecionada a opção (nesse caso a opção padrão).
O que preciso é de um desenho que servirá para apagar várias células predefinidas. Células estratégicas onde se inserem valores numéricos que serão calculados automaticamente e sempre precisam serem modificadas.

Graças a Deus/Universo/Outros.