 Jefferson,  17 de janeiro de 2018, manutenção Windows XP. A queixa do cliente era de que não conseguia enviar email pelo outlook.com apesar de conseguir ler e que não conseguia imprimir mais que três documentos locais quaisquer. Assim que cheguei o computador estava ligado mas com o Windows inoperante. Não respondia ao teclado nem a cliques do mouse. Após reiniciar, no meu primeiro teste eu consegui tanto enviar email quanto fazer impressões normalmente mas depois de algum tempo de uso o Explorer travou. A primeira coisa que fiz após reiniciar foi eliminar o malware da GAS que estava instalado na máquina, mas não surtiu efeito. O Explorer travava aparentemente de forma aleatória.
Levei mais de uma hora e meia para perceber o padrão. Era o tempo. Após pouco mais de 10 minutos a internet era bloqueada (daí a impossibilidade de enviar email), pouco tempo depois a barra de tarefas congelava e logo você não conseguia fazer mais nada no computador. Apenas apertar o botão de reset resolvia, por mais 10 minutos.
Três horas depois de começar o serviço eu aparentemente cheguei ao culpado. O problema parece ter sumido depois de ter desinstalado o Avast Internet Security. Até o acesso ao youtube, que estava funcionando aos trancos, ficou normal. Em retrospecto, eu deveria ter começado por ele logo quando percebi que o acesso à internet estava sendo bloqueado, mas os travamentos que ocorriam logo em seguida me colocaram no caminho errado.
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  02 de janeiro de 2018, manutenção A explicação curta (somente a solução):
O modo mais “simples” que encontrei para corrigir um número grande de células sem me cansar de dar click, click e ENTER foi:
- Selecione todas as células com o problema em uma dada coluna
- CTRL+C
- Abra o Bloco de Notas
- CTRL+V
- Selecione tudo que você acabou de colar (o atalho para isso no Bloco de Notas geralmente é CTRL+A)
- CTRL+C
- Selecione a primeira célula com o problema na planilha
- CTRL+V
Se não aparecer agora no formato que você quer, certifique-se de que a formatação das células é mesmo a que você deseja, pois depois de mexer muito você pode ter alterado.
A explicação longa:
O cliente apresentou o problema da seguinte forma: ele tinha uma planilha com uma coluna preenchida com datas na forma:
01/01/2018
E queria mudar tudo para o formato:
01/01/18
Eu olhei a configuração de formatação das células e já estava do jeito que ele queria. Mudei para outra formatação e isso continuou sendo ignorado pelo programa. Mas digitando uma data na célula, ao dar ENTER ela era convertida para o formato desejado.
Desconfiei de que o que estava vendo ali apesar de parecer uma data não era uma. Perguntei à funcionária que criou a planilha como ela havia digitado aquilo e ela me disse que havia sido importado de uma aplicação web, do banco (acho que era o Santander).
Na mosca. Possivelmente os caracteres estão em Unicode ou algo assim. O problema se manifesta no Excel XP e 2007. No 2007 fica ainda mais evidente que se trata de um bug, porque se eu clicar numa célula com o problema, depois clicar no campo edição e der ENTER, o formato se corrige. O que quer dizer que em uma das operações (copiar da célula para o campo de edição ou colar do campo de edição para a célula) o Excel 2007 percebe o problema e demonstra que sabe lidar com ele.
Neste ponto leia a explicação curta.
O que isso faz é usar o Bloco de Notas para “filtrar” os caracteres invisíveis. Seria útil se o Excel tivesse essa função embutida, mas eu não achei.
[EDIT] Se quiser saber mais sobre o problema leia a explicação de Claudio a seguir. A causa parece não ter nada a ver com caracteres invisíveis (é mais bizarra ainda).
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  14 de dezembro de 2017, manutenção Há meses eu venho esbarrando nesse problema e ainda não tenho solução ou mesmo uma explicação para ele. Estou publicando para documentar e porque é possível que algum de meus leitores saiba explicar isso.
Exemplos:
Meu “melhor” caso é o de um desktop Lenovo S510 onde são perdidos “apenas” 1.4GB:

Em um computador montado com Placa MSI AM1I perdemos 1.54GB:

E por fim o desktop Positivo Master C100 onde 1.83GB desaparecem:

A única coisa em comum entre as três máquinas é que são modernas (perceba que os i3 são de 5a e 6a geração), compradas a menos de dois anos, com processadores de 64 bits, usando o Windows 8.1 pro de 32 bits. Eu não sei ainda que motherboards usam o Lenovo e o Positivo (Intel) mas certamente não é a MSI AM1I (AMD).
Uma quantidade de RAM usável mais baixa que a RAM fisicamente instalada é normal até um certo ponto. Eu diria que é razoável perder até 500MB (na minha eu perco 300MB). Mas nesses casos o usuário está perdendo mais de 1.4GB. Isso poderia ocorrer por alguns motivos:
- Definição de um limite de uso de RAM nas configurações do Windows – Está em “auto”;
- O uso de uma versão do Windows que propositalmente não usa toda a RAM, como a starter – Não é o caso;
- Alguma configuração no BIOS – Não consigo imaginar o que seja. E mexi em muita coisa;
- Bug no BIOS – Não procurei updates ainda.
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  08 de dezembro de 2017, manutenção Resumo da solução: Não escolha “português” no instalador. Escolha “English (United States)” e tudo vai funcionar como deveria.
Minha experiência com impressoras Brother é quase zero e isso estava me dando uma surra hoje. Todas as tentativas de reinstalar o driver da impressora no Windows 8.1 32 bits usando a única versão disponível online acusavam isto:

Dizer que “não há itens adicionais a serem instalados” me parece uma declaração estúpida. Mas mais estúpido ainda é não dar a opção de prosseguir assim mesmo. Se já está instalado e o usuário tenta instalar é quase certo que esteja havendo um problema. Já comecei questionando a competência da Brother.
Procurei um desinstalador em “Desinstalar ou alterar um programa” e não havia nenhum. Baixei o desinstalador disponível no mesmo link e rodei quatro vezes. Em cada uma delas o programa reportou que o driver tinha sido desinstalado com sucesso, mas tentar instalar acusava o mesmo erro e ao rodar o desinstalador de novo a impressora aparecia listada novamente. Mais uma razão para duvidar da competência da Brother.
Com o Voidtools Everything procurei por todas as ocorrências de “brother” no sistema de arquivos e apaguei. Não surtiu efeito algum. E somente depois que eu fiz isso descobri que na seção “utilitários” da instalação eu poderia encontrar o desinstalador.
Eu já estava pensando em procurar o CD original de instalação ou partir para remover a impressora do Registro na marra (arriscado) quando pensei em tentar instalar em inglês. Aí a coisa realmente mudou. O instalador continuou acusando que o driver já estava instalado, mas desta vez me deu a opção de desinstalar:

Cliquei em “Sim” e alguns segundos depois, aparentemente mais um bug, o desinstalador veio em português:

Cliquei em OK e o driver foi desinstalado, me permitindo prosseguir com a instalação. O que resolveu o problema que o cliente tinha.
Notar que o fato de funcionar em inglês mas não funcionar em português não é surpresa para mim. Foi por isso que testei em inglês. O meu último problema com isso fora o DSL-2740e com firmware Totolink, que não consegue terminar a configuração do modo Repetidor se estiver configurado para português.
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  17 de novembro de 2017, manutenção, webmasterwork Eu admito: algumas vezes eu acho que uma conta de email é tão “irrelevante” que não me preocupo com criar uma senha complicada para ela, mas pela segunda vez eu me arrependi por ter feito isso. Spammers estão sempre tentando descobrir a senha de contas reais porque isso aumenta as suas chances de passar pelos filtros de spam. Em teoria você deveria ser capaz de perceber rapidamente o problema por causa dos inevitáveis “bounces” caindo na conta, mas os dois casos que me morderam foram contas que abri para clientes e o problema é que os bounces são quase sempre em inglês e os clientes tendem a ignorá-los.
Assim acaba ocorrendo o problema com o qual me deparei hoje: desde o dia 10 a conta havia sido comprometida e estava recebendo bounces mas o cliente só me informou hoje, quando o número de bounces tinha chegado a centenas por dia, o provedor de email já estava bloqueando o envio de mensagens legítimas de toda a empresa porque o spammer estava enviando mais de 500 mensagens por hora e provavelmente essa conta já havia sido marcada como a conta de um spammer por centenas de filtros pelo mundo todo.
Lição aprendida: sempre usar uma senha complexa mesmo em contas de pouquíssima importância. A senha tinha 9 caracteres, sendo cinco letras e quatro números, mas ainda assim era fácil de adivinhar.
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  27 de outubro de 2017, manutenção, Redes Era para eu ter escrito sobre isso desde que escrevi meu texto sobre uma das vulnerabilidades do Wi-Fi. E como estou baixando o sarrafo no Wi-Fi esta semana acho justo lembrar que cuidar de redes cabeadas, principalmente grandes, não é nenhum “melzinho na chupeta”.
O fenômeno é chamado de “tempestade de pacotes” ou “tempestade de broadcast” (broadcast storm) e ocorre quando acidentalmente (ou propositalmente) as duas pontas de um mesmo cabo de rede são ligadas ao mesmo segmento de rede. Geralmente, no mesmo switch.
Imagine que você está no rack tentando diagnosticar um problema menor na rede e desconecta um ou mais cabos do switch e depois de religá-los um novo problema surge, ainda pior. De toda parte da empresa começam a chegar recados de que tudo (internet, email, sistema comercial, câmeras IP, etc) parou e ninguém consegue usar a rede. O seu primeiro impulso é achar que você desconectou algo mas tudo parece estar como deveria. Você procura por uma luz apagada mas todas estão acesas. Acesas até demais!
Isso porque ao reconectar os cabos você não percebeu que conectou um a mais, a ponta solta de um cabo cuja outra ponta já estava conectada ao switch. Isso cria um “loop” no equipamento e o efeito é quase imediato. Quando o switch recebe o primeiro pacote de dados para broadcast vindo de qualquer um dos dispositivos ligados a ele, encaminha para todas as outras portas, como de costume; mas como existe um loop esse encaminhamento volta por outra porta como se fosse um pacote de broadcast novo e é novamente retransmitido para todas as portas, que volta pelo loop e assim continua até esgotar toda a capacidade de processamento do switch.
Pior que isso: a tempestade se propaga para todos os switches no mesmo segmento de rede (o mesmo “domínio de broadcast”) paralisando todos eles em segundos.
Às vezes você pode notar que se trata disso pelo padrão frenético de piscadas de todos os LEDs do switch, mas nem sempre.
Acha improvável isso acontecer? Pois aconteceu comigo e até hoje eu não sei como, em um rack onde supostamente somente eu mexo, a outra ponta do cabo podia estar numa posição tal que me permitiu fazer a confusão. Já quando você está lidando com switches que são ligados de qualquer maneira em cima da mesa ou até pelo chão criar um loop acidental é muuuuito mais fácil de acontecer. Por sorte, só fiz isso uma vez também, até porque nesse caso eu geralmente tomo o cuidado de olhar para onde o cabo vai antes de plugá-lo no switch (algo muito difícil de checar em um rack). No total eu já “levei um banho” em duas tempestades criadas por mim.
Quando você reconhece os sintomas e percebe que foi você que provocou é fácil resolver. Basta respirar fundo e refazer as conexões no switch onde você está/estava mexendo. Problema mesmo é quando isso foi feito acidentalmente ou propositalmente em outro lugar da rede e você não faz idéia de onde. Se proposital é pior ainda porque pode ter sido feito em mais de um lugar e se você não estiver preparado para isso vai levar um loooongo tempo quebrando a cabeça, porque você solta um cabo que vai a um local sabotado e o problema não desaparece porque existe outro local sabotado, aí você recoloca o cabo e repete o procedimento com os outros cabos mas usando esse método de teste não vai achar nunca. E torça para o sabotador não ter a capacidade de se mover pela rede sem ser notado e não ser uma conspiração, tirando e colocando loops.
Switches gerenciáveis supostamente ajudam nessa tarefa, mas nenhum de meus clientes usa por isso não tenho experiência com eles.
Em teoria, até switches não gerenciáveis poderiam ter pelo menos uma sinalização do tipo “está havendo uma tempestade aqui”. Por exemplo, este switch vagabundérrimo da Encore é baseado no chip Realtek RTL9308SB cujo datasheet informa que existe uma função opcional de detecção de loop com um LED para indicar sua existência. Mas isso não é implementado pelo fabricante do switch. E esse desinteresse em implementar uma função disponível também ocorre nos switches grandes, mais caros. Este switch de rack é baseado no chip Realtek RTL8324, cujo datasheet informa que existe uma função para isso (não menciona ser opcional) que pode acender um LED ou informar um dispositivo de controle. Também não foi implementado pelo fabricante.
Ao responsável pela rede resta torcer para que nunca aconteça e estar preparado com uma estratégia para quando acontecer.
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  27 de outubro de 2017, manutenção, Redes, Wifi Eu não lembro se já falei sobre isso aqui mas como freqüentemente eu cometo o erro de repetir a terminologia leiga acho melhor esclarecer logo a diferença (por alto).
- O “Access Point” (AP) é pouco mais que um switch ethernet que em vez de portas LAN tem uma antena. Ele não tem conceito de “portas”, “encaminhamento”, “DMZ”, etc. Um AP não tem o conceito de “WAN” e por isso é mais fácil de instalar, menos problemático no uso, tem muito menor tendência a precisar ser reiniciado a cada x dias, etc. Em resumo um AP é mais “confiável”.
- O “Roteador Wi-Fi” é essencialmente um AP ao qual se agrega um roteador com fio. A etapa roteador dá mais “segurança” em certas aplicações (quando você não deseja que quem está no segmento WAN enxergue quem está no segmento LAN, por exemplo) e é mais “útil” em geral, mas isso tem um preço em confiabilidade.
O que vou dizer a seguir é baseado apenas na minha experiência e na minha limitada compreensão de como redes funcionam. Pode estar errado.
Se o AP é mais confiável e você não precisa da isolação entre os segmentos não seria mais sensato trocar todos os roteadores por APs? Ainda não tenho uma resposta definitiva para isso mas eu ajo como se fosse e em geral já uso mesmo todo roteador como AP. Mas toda rede que tem acesso à internet precisa de um roteador no “último gateway” em algum lugar e geralmente é no modem. Se o modem for ligado em bridge você é obrigado a ter um roteador/gateway antes dele. Você pode ter liberado os roteadores Wi-Fi da carga de ter que memorizar um monte de conexões ao transformá-los em APs, mas todas essas conexões ainda vão ter que ser memorizadas por esse gateway mais externo da rede. E isso é verdade mesmo antes da transformação em APs porque todo roteador tem que memorizar o que “roteia”. A diferença é que quando você usa um roteador Wi-Fi e conecta uma dúzia de clientes nele o gateway mais externo só enxerga um cliente fazendo o total das conexões de todos eles. Ao mudar o roteador para AP o gateway mais externo vai passar a enxergar todos os clientes e criar listas separadas para cada um.
Explicando de outra maneira, se você tem um roteador A com 12 clientes fazendo ao todo 200 conexões com a internet e um roteador B com 10 clientes fazendo 150 conexões com a internet e ambos estão ligados ao modem/roteador C, C tem na memória 350 conexões feitas por dois clientes (os roteadores A e B). Ao transformar A e B em APs, no mesmo cenário, nenhum dos dois tem uma memória das conexões porque não estão roteando nada, mas o roteador C tem na memória 350 conexões de 22 clientes.
Faz diferença para C estar memorizando 10x mais clientes se o número de conexões é o mesmo? Isso eu não sei dizer, mas uma coisa me parece certa: ao usar apenas APs você só vai precisar resetar periodicamente um equipamento. E se for de boa qualidade, preparado para a tarefa, nem isso. Ao usar roteadores você pode precisar ter que dar manutenção periódica em todos eles e no modem.
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  26 de outubro de 2017, manutenção, Redes, Wifi É impressionante como arquitetos, engenheiros civis e pedreiros parecem ter horror a fios, assim como a massa das pessoas comuns. Do “puxadinho na laje” ao prédio com um apartamento por andar, passando pelo consultório chique, ninguém quer instalar tubulação exclusiva de dados. E convenhamos, só no puxadinho isso é compreensível. Estive em um consultório construído há dois anos onde supostamente se cobra R$1000 por dia de aluguel de uma sala e não parece haver jeito de passar um cabo de dados até o primeiro andar.
Há uma crença generalizada de que “wireless” é infalível a solução de todos os problemas de comunicação. Talvez por ser “o novo”, o “moderno”. E quando os problemas inevitavelmente aparecem dá trabalho explicar que não é.
Ao contrário da conexão por cabo…
- …a velocidade do Wi-Fi cai com a distância e os obstáculos. Não adianta ter uma banda de 25Mbps se naquela sala o Wi-Fi só chega com 5Mbps [1];
- …a velocidade do Wi-Fi é muito influenciada pela qualidade do roteador. Não é à toa que o preço de roteadores Wi-Fi “domésticos” varia de R$60 a R$350;
- …a banda do Wi-Fi é dividida entre todos os usuários conectados. Ou seja, aquela banda de 5Mbps que chega àquela distância ainda tem que ser dividida com todo mundo ali. Não adianta ter 20Mbps sobrando no modem; [2]
- …Wi-Fi sofre interferência dos seus outros roteadores, dos roteadores dos vizinhos, de telefone sem fio, bluetooth, forno microondas, lâmpadas fluorescentes e fases da lua!
- …equipamento Wi-Fi dá defeito com maior freqüência. Em comparação, switches cabeados parecem quase imortais;
- …todo ano parece haver um problema novo com Wi-Fi que pode requerer atualização do equipamento ou até que você jogue tudo fora. Switches ethernet existem há quase duas décadas e nunca houve uma razão para “atualizá-los” e muito menos jogá-los fora em massa;
- …sua rede Wi-Fi é naturalmente vulnerável a invasão por vizinhos, concorrentes e outros desafetos externos;
- …sua rede Wi-Fi é naturalmente vulnerável a interferência proposital. Um adolescente entediado, “amigo” dos seus filhos, pode estar neste momento tentando provocar um DoS na sua rede sem fio só para ver a sua angústia (“for the lulz“).
Resumindo: Wi-Fi é exclusivamente conveniente. Não é confiável, nem seguro.
[1] Está achando pouco? Ontem mesmo eu acompanhei um cliente fazendo um teste com um playstation. A velocidade medida do Wi-Fi, a quatro metros de distância, sem obstáculos, com um D-LinK DSL2740e (que é considerado um bom roteador, com teóricos 300Mbps de Wi-Fi) deu pouco mais de 8Mbps numa conexão contratada de 15Mbps. Espere por muito menos que isso (0.5Mbps, por exemplo) se as condições forem menos que ideais. Cabo oferece a mesma velocidade a um metro e a cem metros.
[2] Rigorosamente falando a banda por cabo também é dividida, mas aí você está dividindo a banda completa contratada e não a fração que chega ao recinto.
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  26 de outubro de 2017, manutenção Esse é um fator que eu ignorava mas nas últimas semanas percebi que vou ter que ter sempre em mente ao tentar entender os problemas de internet dos clientes. Embora a velocidade recomendada para assistir a um filme HD Netflix seja de meros 5Mbps, isso salta para 25Mbps em UltraHD (4K).
Esses números da Netflix podem ter algum exagero. Em 2014 a Neflix supostamente recomendava 20Mbps dizendo que eram 16Mbps para o stream e alguma sobra. É possível que um plano de 15Mbps esteja mais ou menos no limite e por isso eles recomendam o próximo (geralmente os planos dos provedores saltam de 15 para 25Mbps) mas é preciso ter em mente que 15Mbps só garantem um stream 4K e que isso pode afetar e ser afetado por outras atividades de outras pessoas na rede.
Mais ainda: é preciso checar a banda máxima do Wi-Fi. Não adianta ter uma conexão de 25Mbps se você quer ter a conveniência do Wi-Fi e o roteador não dá conta, Vários são os possíveis problemas quando você não quer ou não pode usar conexão por cabo.
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  05 de outubro de 2017, manutenção Eu havia sido chamado à empresa para resolver outra coisa mas quando eu perguntei se estava tudo bem com a máquina do Faturamento (a segunda mais importante depois do servidor) a usuária comentou sobre esse “inconveniente” que ela tinha. Ocorria apenas numa operação especifica, quando ela precisava cadastrar notas fiscais de entrada. Ela me disse que, baseando-se em uma observação que eu fizera antes sobre um diretório com mais de 15 mil arquivos XML no servidor estar atrasando o backup, achou que fosse a quantidade de XMLs no diretório dela e já tinha apagado um monte, sem resultado. Eu conferi a quantidade de arquivos: 357. Não podia ser isso.
O diálogo que tive com a usuária foi engraçado e esclarecedor:
Eu: Você obviamente não perdeu seu tempo pedindo ao suporte do sistema para ver isso.
Ela: Eu não. Tudo agora que a gente pede eles dizem que “tem que falar com o contador”.
Eu: O contador?
Ela: É, tudo deles agora é assim.
Eu: A <nome do desenvolvedor do sistema> é uma empresa de contabilidade agora?
Rodei o Process Monitor (“PM” daqui em diante) para ver se eu encontrava alguma pista e a primeira coisa que eu notei foi outro problema do sistema comercial: o programa gerenciador de notas fiscais, que estabelece comunicação com a Fazenda, disparando uma quantidade impressionante de eventos por segundo. Era impraticável fazer alguma análise com aquela avalanche de eventos atrapalhando mas por sorte se tratava de outro executável do sistema e por isso eu podia filtrá-lo. Se o problema fosse nesse programa eu não teria conseguido fazer nada porque o PM estava travando, tamanha a quantidade de eventos adicionados ao log por segundo.
Aqui cabe uma recomendação a qualquer programador que esteja lendo isso: seu programa é apenas um entre dezenas rodando na máquina. Ao checar por algo, não faça isso centenas de vezes por segundo “só porque você pode”. Não configure um timer de 100ms se 1s (ou 5s) basta. Se você acha que isso pode impactar a percepção que o cliente pode ter da velocidade do seu programa avalie deixar isso configurável pelo cliente, mas dificilmente alguém vai questionar uma pausa de 1s em operações que são espaçadas por minutos. Claro que isso pode ocorrer por acidente então uma dica: use o PM para checar se seu programa está se comportando bem.
Após configurar o PM para observar apenas os eventos de sistema de arquivo do programa que estava travando por 45s, uma coisa me chamou logo a atenção: havia referências ao antigo servidor de arquivos da empresa, que fora desativado meses atrás, obviamente seguidas do erro “PATH NOT FOUND”. Um desses erros aparecia justamente após um intervalo de 15s sem qualquer evento ser registrado.
Isso fazia sentido e era rápido checar. Eu já tenho uma instalação do Virtualbox pronta para isso no servidor. Renomeei uma VM com o nome do antigo servidor e recriei o compartilhamento que estava sendo procurado. Com essa VM rodando e o compartilhamento acessível via rede eu repeti a operação no sistema. A abertura do diretório local da usuária foi feita quase instantaneamente.
Fiz uma rápida pesquisa sobre como fazer essa “emulação” de um modo mais “light”, sem precisar manter uma VM rodando para isso e vi algumas dicas interessantes, usando HOSTS, LMHOSTS, DNS, etc. Mas nada funcionou no tempo que eu tinha disponível e de qualquer forma o melhor jeito de mostrar a usuária e eventualmente ao suporte do sistema que o problema era esse era usar uma VM mesmo.
Eu fiquei pensando que outros problemas estariam ocorrendo diariamente na empresa por causa disso e os usuários não reclamam ao suporte do sistema porque sabem que não adianta. Se a configuração do sistema fosse em um INI ou no Registro eu mesmo tentaria resolver, mas eles guardam as configurações no banco de dados.
(Prefira clicar em "Responder" se estiver comentando um comentário)
|
|
Jefferson, o problema pode nem ser os caracteres da entrada. Ocorre que o conteúdo de uma célula é armazenado de uma forma se for “texto puro” e de outra forma se for uma data ou número.
Um teste simples:
– Sete a formatação de uma coluna vazia para “texto”
– Entre algumas datas nessa coluna
– Mude a formatação da coluna para um formato de data
– Note que os dados na coluna não acompanham a formatação, seguem sendo tratados como texto
– Edite algumas das células e observe que agora passam a ser tratadas como data
Um campo de texto é armazenado como uma string internamente. Uma data é um número inteiro em “epoch format” (experimente mudar o formato da coluna para “número” para ver, e números tem representações diferentes dependendo de serem inteiros ou ponto flutuante.
O motivo da simples mudança não ter efeito na planilha do seu cliente é porque no momento da importação aquela coluna foi tratada como texto.
Se você estiver importando de um arquivo CSV e tiver paciência de não clicar “next, next next” no wizard, a última etapa do importador permite escolher o tipo de dado para cada coluna do arquivo de origem; se você não escolher, os dados são importados como texto (afinal, CSV não tem informação de tipo de dado).
Para a importação da web o procedimento deve ser similar, desde que seja usado o wizard, não um mero COPY+PASTE (se bem que mesmo o COPY+PASTE pode funcionar se você tiver o cuidado de setar o tipo das colunas antes de colar).
Sim, acontece como você descreveu.
Para mim isso é contra-intuitivo. Eu não uso planilhas e por isso posso não estar a par de algum conceito que torne esse comportamento intuitivo. Do ponto de vista de um usuário que executa um comando de formatação, eu espero que haja uma mudança visual imediata se existir uma diferença visual. Em outras palavras, eu espero que as células sejam atualizadas.
Existe algum comando de “refresh” que eu deveria dar para atualizar a visualização da tabela?
Refresh que re-interprete o conteúdo da coluna até onde eu saiba não (mas poderia ser implementado como uma macro). O problema aqui é a ambiguidade: se no momento em que os dados foram importados você disse que era texto (o default se não especificar), como decidir se 4/1/18 refere-se a 4/Jan/2018, a 1/Abr/2018, ou se é uma marcação de texto (código interno, sei lá) e não uma data?
Por isso é importante sempre definir os tipos de cada coluna no momento da importação, para não ter ambiguidade. nesse momento o wizard te deixa não apenas selecionar o tipo “data” como informar a máscara (dd/mm/yyyy, mm/dd/yyyy ou outras). É o caminho mais tranquilo, mas envolve treinar os usuários para ir devagar nessa etapa, e não simplesmente clicar “próximo, próximo, finalizar” :-)
Mas, dando o braço a torcer, bem que o wizard de importação poderia se comportar de forma diferente, e resolveria esse problema:
– Em vez de o tipo de dado default de uma coluna ser “texto”, usar como default algo como “unspecified”
– Ao importar dados, se o tipo da coluna é “unspecifiedf”, usar a mesma regra da entrada manual de texto na célula: se parece uma data, fazer o parsing usando o locale do sistema (dd/mm/yyyy ou mm/dd/yyyy); se parece um número ou moeda, tratar como tal …
Algo assim geraria menos frustração.
Mas isso nunca vai ser feito porque a MS não pode quebrar a compatibilidade do wizard de importação, porque isso afetaria usuários atuais :-(
Jefferson, você indicou a solução para um problema que eu tenho há anos. Obrigado
Jefferson, sou outra pessoa que me ajudou. Passei quase 2 dias batendo cabeça para não ficar no click e enter, clique e enter, clique e enter………
OBRIGADO!!!!!
Copiar tudo pro bloco de notas e depois copiar de novo para o excel funcionou! Muito obrigado, eu tava digitando um a um, rsrs
Valeu mesmo
Vc me salvou, negocio do bloco de notas funcionou, tinha 1500 linhas pra ficar fazendo click enter, tava ficando doido ja kkk
Boa tarde,
Solução simples e perfeita!!!
O mundo precisa de pessoas assim!!!
Meu muito obrigada pelo post Jefferson! Resolveu o problema, fantástico!
Meu caro amigo boa noite, sensacional sua dica muito boa, que O ETERNO nosso Deus te abençoe ricamente meu caro.
Breno Ribeiro
Espetacular… me poupou refazer o trabalho. Muito obrigado.
Obrigado! Você resolveu um grande problema meu com o Ctrl C Ctrl V. Eram mais de 5000 entradas de data e se eu tivesse que clicar uma a uma nunca ia conseguir terminar.
Eu tinha mais de 50.000 entradas para tratar e essa ajuda me salvou. Que DEUS te abençoe e ilumine seu caminho sempre amigo. Que o mundo tenha mais pessoas como você!
Jefferson, sou um usuário do Excel de conhecimento limitado. Mas fiz o seguinte: selecionei a coluna com as datas no formato dd/mm/aaaa; usando o comando substituir, troquei “/20” por “/” (eu teria substituído também, se houvesse datas do século XX, “/19” por “/”). O Excel, então, ou passou a exibir as datas no formato desejado (dd/mm/aa), ou passou a reconhecer o conteúdo de cada célula como uma data, e não como um texto. A partir disso, o Excel passou a aceitar a alteração dos formatos de data.
Vc me deu uma ideia que me ajudou a atualizar todos os dados.
Troquei o formato da coluna para data, selecionei a coluna, fui em localizar e substituir e substituí “/” por “/” (igual mesmo, só pra fazer uma atualização em massa) e deu certo.
Boa tarde, amigo. Estava com o mesmo problema hoje, necessitando copiar um detalhado de vendas com datas de uma planilha gerada pelo Banco, para uma planilha que criei onde seleciono os dados que me convém. Após ler sua solução e ver que deu certo, consegui chegar em outra solução mais simples!
-COPIAR a tabela que o Banco gerou
-COLAR no campo que criei e que falhava, MAS COMO TEXTO! Só precisa clicar no botão COLAR ESPECIAL e utilizar a opção TEXTO.
Obrigado pela dica e espero que ajude mais pessoas!
Caso não funcione ou não haja a opção faça o seguinte procedimento:
– selecione a COLUNA ou os valores dessa COLUNA que deseja arrumar;
– vá na Aba DADOS e selecione a opção TEXTO PARA COLUNA;
– ao abrir uma janelinha de opções, não precisa configurar nada, só clique em CONCLUIR!
-PRONTO! DADOS ATUALIZADOS!
Que Ótimo, é a forma mais pratica!!
Deu certo aqui comigo, excelente alternativa. Sofria com esse problema há anos e sai daqui com 3 alternativas que testei e solucionaram meu problema. Obrigaddo a você e ao Jefferson que trouxeram esse tema
Sua solução faz muito sentido, porque o que a minha faz é justamente isso: “colar como texto”. Mas quando você está pegando os dados na fonte, o seu procedimento é mais simples porque faz a conversão na hora.
Um processo mais simples, ao meu ver, é selecionar a coluna, ir em “Dados” e escolher a opção “Dados para coluna”. Clicar em Avança>Avança>Concluir.
A coluna já deverá estar formatada.
Jefferson, muito obrigado pela ajuda. Sua solução foi simples, eficaz e eficiente. Em outras palavras, perfeita! Me ajudou de forma imensurável.
Cara, essa solução me ajudou muito.
muito obrigado meu amigo Claudio! a dica do bloco de notas foi fantástica.
o excel realmente deveria ter um recurso de refresh para corrigir esse problema de importação.
Nossa, salvou minha vida essa dica.
Que mais gente seja salva, hehe
OU simplesmente selecione a coluna, formate com texto, depois ctrl+L localize o ano, exemplo : ” Se estiver 2019, substitua para 19″ e pronto ! Aqui funcionou ! Abraços !
Eu não creio que essa solução sirva para quem vai precisar fazer a parte do “substitua para 19” centenas de vezes.
nao funcionou nem com o bloco de notas
Jefferson, MUITO, MUITO OBRIGADO por repartir a sua SABEDORIA!!
Há muito, MUITO tempo eu estou no click, corrige e enter!
A sua solução é simples e fenomenal!
Gratíssimo!
Obg!! Salvou minha pele
Muitoooo obrigada!!! Estava até com dificuldade de pesquisar isso no Google, ainda bem que achei essa resposta! Tinha umas 300 linhas para dar “enter”. =DDD
Obrigado Jefferson! Em muitos anos trabalhando com excel, a única solução que me ajudou nesse problema foi a sua.
Obrigado por compartilhar!
Manooo super funcionou hahah valeu
Funcionou!!!!
Simples e eficiente
Valeeeeu
Gratidão pela sua vida!!!!!
Deus abençõe por ter compartilhado essa dica!!!
Me salvou. Uma colega pediu ajuda com esse erro e fiquei indignada que minhas tentativas de solução mais corriqueiras falharam. Achei sua publicação e pá! Solucionado!!!
Obrigada
Crie uma coluna limpa ao lado da coluna de data.
Insira a fórmula DATA.VALOR nesta nova coluna apontando para o conteudo das células com a informação de data não reconhecida.
Copie e cole a fórmula para as demais células da nova coluna e automaticamente ela será uma coluna convertida em data.
Esta matou a pau! 👋👍
De uma forma simples, vc não imagina como ajudou…
Top demais! Me ajudou muito também!
Você me salvou…. Muito obrigada
QUE D+!!!!!!!
Estava me mantando de clicar enter aqui rs..
Muito obrigado!!
Uau, funcionou pra mim. Muitíssimo obrigado!
Estava com esta dificuldade encontrei outra solução:
Se mesmo fazendo bloco de notas e copiando texto o erro persistir, dentro ver se existe algum espaço no primeiro caractere e substitui os espaço por nada.
Ele vira texto, aí converte em data, para mim deu certo
Muito bom!!! Estava a uma semana quebrando cabeça e pesquisando formas de resolver até chegar no seu post.
Valeu!
Obrigado.
Cara, valeu pela dica do bloco de notas pra formatar uma célula com data. Minha planilha tem 700 mil linhas. Me salvou. OBRIGADO.
Sensacional!! Dica para salvar a vida!! Gratidão.
Tu és o cara!!! Resolveu!!!
O meu só resolveu quando fiz colando no Word. Era um problema que venho tentando resolver a tempos. Obrigado!
MUITO OBRIGADO!