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.
Olá ! Baixei o exemplo e deu tudo certo, no entanto a correlação fica engessada na célula B5 como faço para aplicar essa função para uma coluna inteira?
ResponderExcluirDesculpe, se não entendi bem sua pergunta. Mas note que na coluna B ficam o s nomes das categorias e nas linhas ao lado (das outras colunas) seguem as subcategorias. Ou seja as categorias só devem ser digitadas na coluna B. Uma em baixo da outra. Já as subcategorias correm em linha, à direita. por exemplo: Em B1 a categoria é limpeza, e as Subcategorias de B1 são: C1, D1, E1... até AZ1 (completando umas 50 subcategorias. Ok?
ResponderExcluirOLÁ creio que tenho a mesma dúvida do colega acima, a célula B5 fica engessada, na linha b6,b7,b8 ... precisava dar prosseguimento na fórmula na lista suspensa. Quando copio a validação para demais células a lista suspensa não da certo .
ResponderExcluirVocê baixou o arquivo de exemplo? Mas tem um sistema mais simples no canal veja o vídeo "Listas suspensas em cascatas com validação no Libreoffice". Ou copie e cole este link em seu navegador: https://www.youtube.com/watch?v=CQLOZ3WBhZw&t=40s
Excluir