Problemas com (in)visibilidade de controles de formulário (não diálogo)

(windows 7 e 10) … estou enfrentando problemas na montagem de uma folha que tem vários formulários que deixo visível/invisível conforme o andamento do “trabalho”. Esses formulário estão em blocos de linhas diferentes (do tipo: primeiro formulário da linhas 10 a 18, segundo 20 a 28 etc) e deixo apenas visíveis as linhas do formulário ativo (e algumas linhas fixas também).
encontro vários problemas.
com W7 se fechar a planilha com linhas ocultas, ao reabrir é a catástrofe ! controles podem até sumir … existem no navigador de formulários mas mesmo ele não consegue eliminar eles! … mas por macro consigo ! muitos outros controles mudam de linha. Isso não acontece com W10 !

mesmo sem ocultar linhas … ocultando e mostrando controles às vezes funciona, outras não …
repeti 3 vezes a mesma operação no W10 … tive 3 comportamentos diferentes (controles visíveis/ocultos de maneira diferente)

com W10 o problema acontece com a ocultação de colunas : uma folha nova, 3 controles em posições horizontais diferentes, oculta colunas onde fica o controle do meio, fecha e reabre a planilha o controle do meio aparece mas numa posição diferente …

pesquisei mas não encontrei nada a respeito! alguém já tem experiência com isso ? existe uma dica de maneira segura de montar esse tipo de folha ?

grato pela atenção !

Ola @philippe.s.levi, segue uma solução do que entendi, ocultar botões e mostra-los novamente.

Vide explicações na planilha, como consegui e parece que esta funcionando corretamente.

teste oculto_GS.ods (13.6 KB)

obrigado, mas todos são devidamente ancorados na célula.

alias … não mudaria muita coisa em relação a aparecerem indevidamente …

qual é o seu sistema / versão ? teria condição de fazer o teste que descrevi de 3 controles (ancorados na célula!) em posições horizontais diferentes, ocultar colunas, fechar planilha e abri-la novamente … ?

desculpe … já tem experiência com folha um pouco complexa com vários formulários e ocultando linhas ou colunas e ocultando ainda controles individualmente ?

desculpe (de novo!) … mas sim claro que pode ocultar controle sem ocultar célula !
se interessar eis um código que faz isso

sub ChangerVisibiliteControleFormulaire( doc, feuille, nomFormulaire as string, nomControle as string, visible as boolean)
dim formulaire, ctr
formulaire = feuille.drawpage.forms.getByName(nomFormulaire)
ctr = formulaire.getByName(nomControle)
doc.CurrentController.getControl(ctr).setVisible( visible)
end sub

Ola @philippe.s.levi, poste o seu arquivo de exemplo, fica mais fácil testar, o que eu fizer pode ter procedimento diferente e resultado diferente.

teste oculto.ods (8.0 KB)
pode fazer o teste com colunas e linhas …

  • colunas : ocultar colunas de D a G, salvar (com outro nome), abrir esse novo arquivo, mostrar todas as colunas
  • linhas : ocultando de 9 a 14
    comigo, W7, na “volta” não apareceu o botão #3 e o 2 mudou de posição nos 2 casos …

acho que respondi precipitadamente … você quis dizer “ocultar a célula usando ocultar linhas ou colunas”, foi isso mesmo ?

(depois de mostrar linhas) dando um scroll … o botão #3 apareceu … depois dei um Ctrl-Z (desfez o mostrar linhas) … e deu a imagem em anexo (acionando o modo de edição)

consegui reproduzir o problema dos controles órfãos !

  • na planilha em anexo criei 3 formulários com os 3 botões iniciais. depois no formulário 2 acrescentei 4 botões (A B C D)
  • ocultei as linhas 10 a 20
  • fechei a planilha
  • abri a planilha
  • mostrei todas as linhas
  • cadê os 4 botões ?
  • abrindo o navegador de formulários, checando o formulário 2 … eles estão lá ! mas não aparecem. se, a partir do navegador, abrir as propriedades de qualquer um dos 4, parece tudo ok (até visível!) …
  • agora tente, ainda no navegador, excluir um deles … ele deixa … mas não o exclui !
    está na outra planilha e tem imagem com o navegador …

    teste formulários 2A.ods (8.7 KB)

já fiquei meio desesperado com a situação, gerava uma grande desconfiança em relação ao sistema deixando controles fantasmas ! … criei uma macro e no formulário com removebyname consegui normalizar a situação (pelo menos aparentemente!)

Vide alteração em minha resposta acima.

peguei sua planilha … achei “criativa” ! :slight_smile: … pois não pensei em relacionar tamanho de controles com o das células !
ocultei as linhas 6 a 15
salvei com outro nome
fechei
abri
e mostrei as linhas … eis a imagem que ganhei


inseriu uma linha antes do #2 … (dá para ver entre seus EF et HI)

mas você está me oferecendo a opção de não usar controles ! … suas células funcionam como botões sem, provavelmente, os inconvenientes ! … com certeza não é mesma coisa … mas não deixa de ser uma opção a contemplar !

não comentei … mas o #3 só aparece depois de scroll (ou seja quando LO repinta a tela!)

não me disse qual é seu sistema operacional e versão …

vou refazer os meus testes no W10 … (amanhã!) … e um teste com classes/objetos com os quais encontrei certa dificuldade também !

Usando Win10 e LibO 7.2.2.2, da maneira que enviou o arquivo após ocultar, salvar novo e reabrir e mostrar, o botão aparecia deslocado e as vezes sumia. Quanto aos botões que somem, e é necessário Scroll para voltar aparecer, utilizei o comando para desligar atualização de tela, no inicio da macro e volta a ligar no final. Aparentemente tinha resolvido o sumiço de botões e os deslocamento.

Pessoalmente parei de usar Botões de formulários, no passado ( versão 6 0?? ) ao abrir arquivos com diversos botões, tinham sumidos ou estavam só com o quadro de marcação, então passei a usar figuras (objetos).

(demorei pois acharam que estava falando demais e impuseram um descanso de 18 horas! depois ficamos sem internet ! )

A partir da sua planilha montei um teste “completo” que passo aqui. Mudei os seus botões para deixar apenas os testes sobre o formulário 2 (colunas e linhas “do meio”).

O primeiro teste consiste apenas em ocultar/mostrar colunas, e depois o mesmo com linhas, verificando o bom comportamento da planilha.

O segundo teste consiste em ocultar colunas, guardar uma cópia da planilha, abrir a cópia e “mostrar” as colunas … verificando que está tudo ok (não falta controles e estão na posição certa)
Logo fazer o mesmo com linhas.

tive problema ocultando colunas com W10, não com W7 !
com W7 faltaram controles, inclusive a sua imagem inferior !

teste oculto_GS mais 4 botoes.ods (11.4 KB)
(não me permitem enviar imagens das folhas com problemas … só posso anexar um único arquivo e não pode ser .zip!)

pelo menos vai o erro com W10 ! :slight_smile:
w10

Entre em contato direto, gilberto@schiavinatto.com

olá !

notícias locais !

fiz funcionar a folha com ocultação de linhas e ainda invisibilidade de controles de formulários (administrado por objetos) … lindo … mas de manutenção delicada !

ai me obrigou a pensar numa alternativa mais light … tanto do ponto de visto dos recursos de formulários quanto do das macros.

e parece que consegui ! … fiz funcionar em poucas horas (não trabalho tempo integral, muito longe disso!) o que demorei semanas com a versão anterior ! valeu a pena !!

mas não me arrependo do que fiz, foi oportunidade para aprender bastante (coisa que provavelmente nunca usarei!!! :slight_smile: )

um abraço,
Philippe

1 Like