Pergunte aqui
0

Criação de uma macro

perguntadas 2018-02-23 17:21:24 +0100

imagem do gravatar de dpan

updated 2019-03-01 19:07:22 +0100

Gostaria de saber como posso criar uma Macro que fizesse o que eu preciso na sequência das fotos.

Já tentei gravar mas ela não faz como estou precisando!

1 2 3 4 5

Obrigado

editar alterar tag assinalar como ofensivo fechar mesclar Excluir

Comentários

Ola @dpan, pelas imagens: quer na coluna Desenvolvimento, trocar ponto por virgula e ocultar as com valores. E isso ?

imagem do gravatar de Gilberto SchiavinattoGilberto Schiavinatto ( 2018-02-23 21:29:34 +0100 )editar

Olá Gilberto, Quero excluir todas as colunas entre "Desenvolvimento" e "I". Em seguida substituir os pontos por virgulas. E por último se possível, excluir todas as linhas que não tem valor nas colunas "Desenvolvimento" e "I"

imagem do gravatar de dpandpan ( 2018-02-26 12:31:18 +0100 )editar

1 Resposta

1

respondidas 2018-02-27 15:59:22 +0100

Ola @dpan, macro parcial falta o ultimo

Sub Principal
    Call ExcluirColunasDaK
    Call PontoPorVirgula
End Sub


sub ExcluirColunasDaK
dim document   as object
dim dispatcher as object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$Planilha1.$D$1:$K$1"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:DeleteColumns", "", 0, Array())
end sub


sub PontoPorVirgula
dim document   as object
dim dispatcher as object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ToPoint"
args2(0).Value = "$C:$C"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())
dim args1(20) as new com.sun.star.beans.PropertyValue
args1(0).Name = "SearchItem.StyleFamily"
args1(0).Value = 2
args1(1).Name = "SearchItem.CellType"
args1(1).Value = 0
args1(2).Name = "SearchItem.RowDirection"
args1(2).Value = true
args1(3).Name = "SearchItem.AllTables"
args1(3).Value = false
args1(4).Name = "SearchItem.SearchFiltered"
args1(4).Value = false
args1(5).Name = "SearchItem.Backward"
args1(5).Value = false
args1(6).Name = "SearchItem.Pattern"
args1(6).Value = false
args1(7).Name = "SearchItem.Content"
args1(7).Value = false
args1(8).Name = "SearchItem.AsianOptions"
args1(8).Value = false
args1(9).Name = "SearchItem.AlgorithmType"
args1(9).Value = 0
args1(10).Name = "SearchItem.SearchFlags"
args1(10).Value = 71680
args1(11).Name = "SearchItem.SearchString"
args1(11).Value = "."
args1(12).Name = "SearchItem.ReplaceString"
args1(12).Value = ","
args1(13).Name = "SearchItem.Locale"
args1(13).Value = 255
args1(14).Name = "SearchItem.ChangedChars"
args1(14).Value = 2
args1(15).Name = "SearchItem.DeletedChars"
args1(15).Value = 2
args1(16).Name = "SearchItem.InsertedChars"
args1(16).Value = 2
args1(17).Name = "SearchItem.TransliterateFlags"
args1(17).Value = 1073745152
args1(18).Name = "SearchItem.Command"
args1(18).Value = 3
args1(19).Name = "SearchItem.SearchFormatted"
args1(19).Value = false
args1(20).Name = "SearchItem.AlgorithmType2"
args1(20).Value = 1
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Visible"
args3(0).Value = false
dispatcher.executeDispatch(document, ".uno:SearchResultsDialog", "", 0, args3())
end sub

A ultima parte, deletar as linhas com valores nas colunas C e D fico devendo.....

editar assinalar como ofensivo Excluir Link mais

Comentários

Gilberto,

Muito boa sua Macro. Mas estava dando um erro "Intervalo inválido"

Verifiquei a linha : args1(0).Value = "$Planilha1.$D$1:$K$1"

Alterei então o nome da aba para "Planilha1" ,resolveu e funcionou muito bem ! Será que tem alguma maneira de aplicarmos essa Macro a qualquer nome de planilha ? Ou terei que alterar sempre para "Planilha1"?

imagem do gravatar de dpandpan ( 2018-02-28 15:41:28 +0100 )editar
1

Pode alterar de: args1(0).Value = "$Planilha1.$D$1:$K$1"

Para: args1(0).Value = "$D$1:$K$1"

Mas ATENÇÃO ao acionar a macro, ela vai deletar da planilha que estiver ativa.

Mas se for uma aba fixa, altere para: args1(0).Value = "$NomeDaSuaAba.$D$1:$K$1"

Onde NomeDaSuaAba é o Nome da sua aba.

imagem do gravatar de Gilberto SchiavinattoGilberto Schiavinatto ( 2018-02-28 21:24:17 +0100 )editar

Muito bom ! Agora deu certo, muito obrigado Gilberto !

imagem do gravatar de dpandpan ( 2018-03-01 13:44:36 +0100 )editar
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2018-02-23 17:21:24 +0100

Lidas: 93 vezes

Última atualização: Feb 27 '18