sexta-feira, 15 de abril de 2016

Listas suspensas em cascatas com validação

Ou... Tem que ter categoria 2!

É isso, a gente sempre vai aprendendo na medida que ensina.
Fui brincar com este negócio de categorizar ... No artigo tem que ter categoria! Ensinei do jeito mais difícil… isto ajuda a brincar um pouco com a criatividade e recursos do Libreoffice como a função PROCV(). Mas, vamos simplificar mais esse trabalho. Acredita que dá de fazer de maneira mais simples ainda que no Excel?


Vejamos: primeiro reservamos uma planilha para colocar as categorias que podem se tornar em subcategorias. Aqui cada coluna é um espaço de categoria. Na coluna A iniciamos com Brasil e nas linhas abaixo a lista dos Estados do Brasil, aqui coloquei três para ser mais rápido. Dentro dos Estados três cidades.

Depois disso: Nomeamos cada coluna dessas para o libreoffice saber das delimitações desses dados:

Clicamos na cabeça da coluna e em dados, definir intervalo nomeamos o intervalo como “Brasil”.


Depois na planilha onde vai estar a seleção de categorias e subcategorias, vamos aplicar a Validação clicando em Dados e “validação” e digita o nome do espaço nomeado nesse caso “Brasil”.


Ato seguido selecione a outra célula (onde estarão as subcategorias) e repita a mesma operação, dessa vez digite: a Função INDIRETO(A1) e como pode ver o endereço da célula referência (A1).
Pronto!

E como sempre um arquivo de exemplo, E um vídeo para ficar mais fácil.

quinta-feira, 14 de abril de 2016

Tem que ter categoria!

Para quem já acompanhou umas dicas anteriores, onde escrevi como usar o Calc como um banco de dados, está no meu blog pode conferir neste link: http://betobyte.blogspot.com.br/2014/02/a-necessidade-e-mae-da-invencao-quem.html . Agora vai poder incrementar e dar sequência vendo: como colocar categorias e suas respectivas subcategorias em um formulário, e para aqueles que querem se aprofundar nesse quesito, basta conferir também no Ask do libreoffice: https://ask.libreoffice.org/pt-br/question/58248/definir-o-endereco-de-colagem-na-macro/ . Vai ajudar a dar mais precisão no quesito da macro para transportar os dados de uma planilha para outra pois caso resolva fazer um banco de dados, não importa o tamanho, sempre é uma tarefa meticulosa.

Voltando ao nosso assunto: quando resolvemos categorizar algo, nos damos contas das inúmeras categorias a que pertencem nossos objetos ou itens… imagina então categorizar coisas de um supermercado, por exemplo. Cada categoria terá inúmeras subcategorias com isso rapidamente passamos de cem ou de mil… O que fazer para agilizar este processo sem ter que decorar números e nomes ou ainda percorrer uma lista sem fim para selecionar um item?

Vou dar um pontapé inicial e o resto fica por conta da criatividade de cada um. Em programação existem diversas maneiras de fazer e nenhuma é errada apenas mais ou menos dispendiosa de tempo e memória. No final das contas, a melhor maneira de fazer é aquela que sabemos, não é mesmo?

Vamos imaginar a seguinte situação temos 11 categorias e cada uma dessas 11 categorias tem 50 subcategorias, ou seja 550 itens de uma lista para clicar e escolher. Como cadastrar num formulário sem que isso fique muito complexo? E se aumentarmos o número de categorias? Confesso que eu tinha feito de um jeito que não foi muito prático a primeira vez, usando a função SE(), mas a linha de código ficava muito extensa e fácil de se perder. Mas resolvi utilizando PROCV() e um pouquinho de criatividade.

Vamos aproveitar e deixar previsto a possibilidade de chegarmos a 50 categorias por 50 subcategorias, ou seja, uma um total de 2500 subcategorias.


Vamos imaginar que na planilha2 tenhamos nosso formulário mais ou menos assim como esta figura abaixo:


comentário: *Como ficou fácil recortar figura no Libreoffice versão 5, me dei conta ao fazer este tutorial*.

Mas e agora, como puxar as subcategorias para que fiquem assim?


Na planilha1 vamos deixar a primeira coluna (A) para usarmos a função =PROCV()
Na coluna (B) Vamos preencher com as categorias e em linha, no lado direito de cada categoria, vamos colocando as subcategorias até o limite de 50.































Agora, voltamos a Planilha2 e vamos na célula (B5) onde serão selecionadas as categorias, clicamos nela para ficar selecionada e no menu escolhemos “validação”:



E no intem “permitir” escolhemos “Intervalo de Células” e em “Origem” inserimos o seguinte código: $Planilha1.$B$1:$B$50 e clicamos em “OK”









Agora vamos fazer que as opções de subcategoria apareçam de acordo com categoria escolhida. Para isso selecionamos a célula (B6) e repetimos a validação só que dessa vez colocamos o seguinte código: $Planilha1.$A$1:$A$50

Nada demais né? Mas como esse intervalo de células vai capturar as subcategorias? Ai é que entra a Função PROCV().

Entendendo o funcionamento da Função: Na célula A1 da Planilha1 inserimos a Função PROCV(), nela fazemos referência a célula do formulário (Planilha2, célula B5) onde será selecionada a Categoria (o critério da função), ou Seja: Planilha2.B5. Depois do critério da função (que separamos por “;”) devemos informar a Matriz, ou seja: de onde até onde se deve buscar estes dados. No caso de B1 a AZ da atual planilha. E em seguida informamos de qual coluna queremos os dados a ser mostrado e o zero no final é a ordem de classificação. Os cifrões em frente ao código é para facilitar a cópia por arrasto que não deixará mudar os valores.

  
Uma vez feita a primeira fórmula, copiamos a mesma arrastando para baixo atá a célula (A50), depois é só ir mudando na fórmula copiada o número da coluna que queremos capturar, para que ela possa transpor o dado. Baixe o arquivo aqui e estude-o, logo vai entender o processo. Aqui vídeo ainda explicando novamente este processo.


Matéria em destaque pelo editor.

Gere formulários PySimpleGui rapidamente para planilhas Excel, Libreoffice Calc e outros

CRUD  em BD e MENU - Gere programas completos rapidamente Vou te apresentar uma forma incrível de gerar aplicativos python em minutos a part...