Pergunte aqui
1

Caixa de listagem no Calc

perguntadas 2016-11-08 23:27:02 +0200

updated 2016-12-05 13:31:25 +0200

imagem do gravatar de Grafeno

Em uma Caixa de listagem com 7 seleções ( seleção 0 a 6 ), ao acionar cada seleção ir para determinado local da planilha.

Descrição da imagem

É possível fazer diretamente na Caixa de listagem ou é necessário macros .


Oi @Grafeno, desta maneira conheço, gostaria de endender como funciona em "Caixa de listagem" veja o exemplo "Burger Factory".

editar alterar tag assinalar como ofensivo fechar mesclar Excluir

Comentários

@Gilberto Schiavinatto, ok então. Mas estes locais estão dentro de uma mesma planilha (p. ex. são nomes de intervalos) ou são guias (planilhas) diferentes. Se forem guias diferentes, haverá uma caixa de listagem similar em cada uma?

imagem do gravatar de GrafenoGrafeno ( 2016-11-13 17:53:32 +0200 )editar
1

E isso @Grafeno, pode ser intervalos ou abas (aqui a caixa seria duplicada nas abas), por enquanto é para descobrir como montar, para possível uso futuro. Sei que com o Open/LibreOffice é possível montar aplicativos excelentes, veja esta mexicana em https://facturalibre.net,

imagem do gravatar de Gilberto SchiavinattoGilberto Schiavinatto ( 2016-11-14 11:10:20 +0200 )editar

@Gilberto Schiavinatto, completei minha resposta para incluir uma solução por macro. Espero que seja de ajuda!

imagem do gravatar de GrafenoGrafeno ( 2016-11-14 21:36:23 +0200 )editar

Esta "fatura livre" do mexicano Mauricio Baeza é um excelente exemplo do que é possível fazer com o Calc e programação Basic. Outra contribuição sensacional deste é seu livro Aprendiendo OOoBasic. Inclusive o capítulo 10 é um passo a passo da construção dessa "fatura libre".

imagem do gravatar de GrafenoGrafeno ( 2016-11-14 21:47:41 +0200 )editar

1 Resposta

2

respondidas 2016-11-12 14:05:41 +0200

imagem do gravatar de Grafeno

updated 2016-11-14 21:30:02 +0200

Olá,


Na caixa de listagem é preciso macro, mas existem alternativas que dispensam código como:


O controle Botão de Pressão pode abir links também, desde que se alterem duas de suas propriedades para:

  • Ação: "Abrir documento/página da Web"
  • Link: "#Início.A1" (Exemplo: irá para/selecionará a planilha "Início" célula "A1")

Com macro (complemento da resposta):


A macro abaixo deve ser associada ao evento " Alterado " das caixas de listagem lstLocais de cada guia (aba) de planilha, assumindo que:

  • o conteúdo da caixa de listagem refere-se a nomes de planilhas (guias);
  • cada planilha terá uma réplica da caixa de listagem lstLocais.


Sub lstLocais_Alterado( oEvento ) ' Caixa de Listagem > Eventos > Alterado
Dim olstLocais As Object, olstLocaisView As Object
Dim oDoc As Object, oControlador As Object
Dim oPlanDestino As Object
Dim sAtual As String, sEscolha As String

   ' Obter o Controlador
   oDoc = ThisComponent
   oControlador = oDoc.CurrentController

   ' Nome da planilha atual
   sAtual = oControlador.getActiveSheet.Name

   ' Model (Modelo) do Listbox que disparou o evento
   ' Model descreve a aparência, o comportamento
   ' e apresenta os dados do controle
   olstLocais = oEvento.Source.Model
   ' Escolha do usuário no listbox 
   sEscolha = olstLocais.CurrentValue
   ' Se escolher a planilha atual não fazer nada
   If sEscolha  = sAtual Then Exit Sub   

   ' View (Visão) do Lisbox que disparou o evento
   ' View é o que usuário vê do controle e
   ' por onde interage através do(s) controlador(es)
   olstLocaisView = oControlador.getControl( olstLocais )
   ' Retornar a seleção para a planilha atual "antes de sair"
   olstLocaisView.selectItem( sAtual,True )

   ' Ir para planilha escolhida
   oPlanDestino = oDoc.Sheets.getByName( sEscolha )
   oControlador.setActiveSheet( oPlanDestino )   
End Sub



Atte,

editar assinalar como ofensivo Excluir Link mais

Comentários

Ver complemento na pergunta.

imagem do gravatar de Gilberto SchiavinattoGilberto Schiavinatto ( 2016-11-13 13:58:09 +0200 )editar
1

Perfeito @Grafeno, da maneira que fez é super pratico, a única atenção necessária é o item da caixa ser o nome da aba. Eu com minhas restrições de programação havia rascunhado uma cascata de If Then Else nada pratica. Obrigado pela atenção.

imagem do gravatar de Gilberto SchiavinattoGilberto Schiavinatto ( 2016-11-14 23:29:42 +0200 )editar
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2016-11-08 23:27:02 +0200

Lidas: 122 vezes

Última atualização: Nov 14 '16