Notifications
Clear all

Identificar texto muito grande para a célula

10 Posts
3 Usuários
0 Reactions
1,382 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia pessoal,

Eu tenho um código que preenche uma planilha e tal. Num grupo de células mescladas, eu coloco um texto que pode ser muito grande, ou seja, pode não caber.
Na maioria dos casos, tudo bem, o texto é menor que o bloco de texto *de células mescladas. Mas há casos em que o texto ultrapassa os limites, e consequentemente some.

Notas:
- O bloco mesclado está definido como "Quebrar texto automaticamente".
- O preenchimento é feito pelo VBA do Access, direto na célula de um modelo que não pode mudar.

A dúvida:
Como faço para, via VBA *(Excel mesmo, eu adapto aqui pra rodar no Access), identificar se um texto num intervalo de células está completamente visível ou não?

Eu quero gradativamente reduzir o tamanho da fonte, até que o texto todo fique visível!

Valeu,

FF

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 10/11/2015 6:53 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia Fernando,

Eu quero gradativamente reduzir o tamanho da fonte, até que o texto todo fique visível!

Já tentou isso?

ShrinkToFit = True

Qualquer coisa da o grito.
Abraço

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 10/11/2015 7:10 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bernardo, valeu, mas...

... o bloco de células mescladas está com Quebrar Texto Automaticamente, pois são 11 colunas por 30 linhas.
Eu fui obrigado a escolher entre Quebrar Texto Automaticamente *(quebras de linha) ou Encolher para Caber.
As duas propriedades não poder ser true ao mesmo tempo.
Sendo assim, a opção ShrinkToFit fica desabilitada. Para poder selecioná-la, eu preciso desligar as quebras automáticas, o que deixa o texto todo numa linha só, mesmo quando tem 300 caracteres.

Obrigado, mas já tentei isso, kkk

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 10/11/2015 7:14 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Como esta o alinhamento de celulas nesse bloco mesclado?
Visto que a "carga" e efetuada com o VBA, não pode incluir uma quebra de linha a cada "x" caracteres? no lugar do quebra de texto?

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 10/11/2015 8:19 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Suspeitei.
Achei muito óbvia a pergunta por estar vindo de você.
kkkkk

Faça esse ShrinkToFit em VBA. Reinvente a roda. kkkkkk

Fiz um exemplo. É uma gambiarra monster, mas já é uma saída. Sei que precisa adaptar mas sei também que você conseguirá melhorá-lo.

O que terá de mudar na planilha original se for o caso vai ser a fonte. Deve usar uma fonte que a largura dos caracteres sejam o mesmo para todos os caracteres, por exemplo, CONSOLAS, COURIER, COURIER NEW, LUCIDA CONSOLE, FIXDSYS, DEJAVU SANS MONO... ... ...

Qualquer coisa da o grito.
Abraço

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 10/11/2015 8:31 am
(@mprudencio)
Posts: 2749
Famed Member
 

Vindo do Fernando achei meio estranho tambem, no entanto, ideia de maluco formate com a quebra automatica pelo vba.

Apos a colagem dos valores

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 10/11/2015 3:17 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Desde a postagem com a duvida, fiquei intrigado, não só pelo fato de vir do Fernando que tenho a certeza que se ele postou é porque ainda não deve existir alguma funcionalidade nativa para tal, e como desafio já realizei varias pesquisas e testes me baseando de inicio na mesma ideologia do Reinaldo de adicionar quebra de linhas por "X" caracteres.
Como tambem não encontrei nada que identifique se o texto está fora da visão na celula que entendi ser a questão a qui solicitada, pensei em, se na celula em questão a quantidade máxima de caracteres for por exemplo limitado a 300, a rotina verificar se o que está digitado ultrapassar este limite emitir uma mensagem que o máximo é "300" e solicitar para reduzir o texto e inserir as quebras, até já testei a rotina, mas encontrei outros impasses que seria que mesmo que tivéssemos o maximo permitido, o tamanho da fonte implicaria, pois dependendo do tamanho o texto ainda ficaria fora da visão, e como não poderiamos alterar o tamanho da celula empaquei, mas não desisti, vamos continuar na pesquisa e testes.
Deixo o piloto mais ou menos da forma que citei acima e com a adaptação da rotina tirada do link abaixo:
Splitting Information into Rows - http://excel.tips.net/T003263_Splitting ... _Rows.html

Spliter Texto na Celula

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 11/11/2015 8:37 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Demorei pra voltar. VOu conferir as soluções. Valeu turma.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 23/11/2015 1:26 pm
selmo
(@selmo)
Posts: 236
Estimable Member
 

Sei lá, fera como é, já deve ter pensado no len(string) ?

"A mente que se abre a uma nova ideia jamais voltará ao seu tamanho original."
Albert Einstein

 
Postado : 23/11/2015 1:53 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Eu pensei em muita coisa já.
Não tem limite para qto o cara escreve.
Essa informação é carregada para a base e eventualmente volta para um arquivo com formato semelhante ao de entrada.
Não posso quebrar a cada x caracteres, pois o cara quebra quando ele quer, e quando o texto volta, precisa estar como ele escreveu.
Usar o len() é irrelevante, pois eu saberia o total de caracteres do texto a ser colocado na célula, mas essa informação não me diz qtos caracteres estão visíveis na célula e qtos não estão.

A solução que eu usei, por eqto foi:
No arquivo de entrada, eu protegi a planilha assim o babaca do usuário não conseguirá aumentar a altura das linhas, e qdo ele escrever demais na célula, seu próprio texto não ficará visível. Exatamente pq não posso limitar a qtd de caracteres, vou limitá-lo no espaço disponível. Qdo ele digitar ENTER e ver que o texto dele não ficou visível, ele mesmo terá que ter a presença de espíriro de editar a célula dele.
Se não fizer isso, temos o que precisamos pra indicar que ele é burro pra caralho. Ou seja, quando ele reclamar, é só compararmos a entrada com a saída. E ele terá q arrumar a entrada dele.

Por eqto é isso... ainda nao tive tempo de analisar as outras soluções... mas tb não esqueci !

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 30/11/2015 8:13 am