MACRO - COM CONDIÇÃO E MENSAGEM

USEI A GRAVAÇÃO DE MACRO, EU FIZ O TESTE USANDO A FUNÇÃO DA CÉLULA A16. COMO INÍCIO DEU CERTO…COLOCANDO COMO EVENTO AO ABRIR O DOCUMENTO…

PORÉM, NÃO SEI COMO MODIFICÁ-LA PARA QUE TORNE UMA CAIXA DE MENSAGEM E QUE A CÉLULA C17 - A CÉLULA AONDE SERÁ INSERIDO O DADO SEJA LIMPA…

COMO EXPLICAR … :

UMA CAIXA DE MENSAGEM “msgbox”…

e

dispatcher.executeDispatch(document,“uno:ClearContents”, “”, 0, Array()) = PARA LIMPAR O CONTEÚDO DA CÉLULA C17

NÃO SEI SE TEM COMO USAR AS ESTRUTURAS IF…THEN…ELSE… COM O UNO

sub Macro1
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService(“com.sun.star.frame.DispatchHelper”)

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = “ToPoint”
args1(0).Value = “$A$16”

dispatcher.executeDispatch(document, “.uno:GoToCell”, “”, 0, args1())

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = “StringName”
args2(0).Value = “=SE(contou=1;”+CHR$(34)+“Férias já cadastradas, ir para FÉRIAS PARTE II - GUIA EM AMARELO…”+CHR$(34)+";"+CHR$(34)+CHR$(34)+")"

dispatcher.executeDispatch(document, “.uno:EnterString”, “”, 0, args2())

end sub

SEGUE ARQUIVO EM ANEXO

Vincular texto

Ola @JorgeThomaz, já me conhece sabe que Macros não é meu forte. Dei uma olhada na planilha e modifiquei algumas coisas:

Na aba [ FÉRIAS ] na seleção dos nomes só será mostrado os Servidores sem registro de ferias.

Na aba [ FÉRIAS PARTE II ] na seleção dos nomes só será mostrado os Servidores com saldo de ferias.

segue arquivo.

Troque a macro por esta: A diferença, esta salva o novo Registro no final da lista, se não inserir linha não altera as formulas, e de brinde Mensagem Final…

sub SALVARDADOS2 'NOVA
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "DADOS_COPIAR2"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
args3(0).Value = "$C$5"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())
rem ----------------------------------------------------------------------
dim args4(1) as new com.sun.star.beans.PropertyValue
args4(0).Name = "By"
args4(0).Value = 1
args4(1).Name = "Sel"
args4(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoDownToEndOfData", "", 0, args4())
rem ----------------------------------------------------------------------
dim args5(1) as new com.sun.star.beans.PropertyValue
args5(0).Name = "By"
args5(0).Value = 1
args5(1).Name = "Sel"
args5(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args5())
rem ----------------------------------------------------------------------
dim args6(5) as new com.sun.star.beans.PropertyValue
args6(0).Name = "Flags"
args6(0).Value = "SVD"
args6(1).Name = "FormulaCommand"
args6(1).Value = 0
args6(2).Name = "SkipEmptyCells"
args6(2).Value = false
args6(3).Name = "Transpose"
args6(3).Value = false
args6(4).Name = "AsLink"
args6(4).Value = false
args6(5).Name = "MoveMode"
args6(5).Value = 4
dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args6())
rem ----------------------------------------------------------------------
dim args7(0) as new com.sun.star.beans.PropertyValue
args7(0).Name = "ToPoint"
args7(0).Value = "nome"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args7())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array())
' mensagem========
dim args8(0) as new com.sun.star.beans.PropertyValue
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args8())
msgbox "Férias Registrada"
end sub 

Copie e Cole sobre a anterior…

Jorge, creio que falta o Registro do Servidor que já usou o Saldo das Férias…Ou estou errado?

segue arquivo revisado


Valeu Gilberto, esta maneira ficou bem melhor…não será necessário mensagem…

Oi @JorgeThomaz, Caso a resposta ajudou, por gentileza, click na bolinha a esquerda da resposta, para finalizar a pergunta.

Oi gilberto, fiz um teste na planilha só que ao salvar a férias no registro via macro ele não é contado…ficando em branco…tem como solucionar isso…

há alguém que tem conhecimento em macro para ajudar… Mesmo com a solução do @gilberto, não está funcionando porque ao salvar as férias os dados salvos não é contabilizado…necessitando alterar o macro para salvar a fórmula também.

Oi @JorgeThomaz, vide complemento na Resposta…

Valeu Gilberto, mas tentei incluir isso:
dispatcher.executeDispatch(document, “.uno:Print”, “”, 0, args1())
antes e depois do comando limpar, só que ao imprimir a parte do nome e matrícula é impressa em branco…
tem como antes de limpar ela imprimir todo o conteúdo e depois ela limpa…