3 de agosto de 2015

Excel: extrair comentários de células (get cell comments)

Não entendo o motivo, mas algumas pessoas ou instituições inserem comentários em células do Excel. A informação fica escondida e péssima de utilizar, no caso de você precisar dela:

célula com comentário escondido no Excel

Quando são uma ou duas, é fácil copiar e colar. Agora se você tiver 50 ou 100, vai perder um tempo detestável fazendo isso.

Veja abaixo como retirar os conteúdos inseridos como “Comentário” no Excel e colocá-los em células comuns como texto. Fiz no Excel para Mac, mas deve ser uma solução similar no Windows.

Solução rápida e permanente

  1. Baixe o Add-in “Get Cell Comments

  2. Instale o Add-in: mova o arquivo .xla para a pasta Documents > Microsoft User Data > Excel

    image

  3. Agora, abra o Excel e utilize a fórmula =getComment(XXXXX), onde no lugar de XXX você coloca a referência para a célula com os comentários.

    image

Caso não funcione, tente uma dessas soluções manuais, que foi como eu gerei o arquivo .xla:

Soluções manuais

Pra funcionar uma vez só (na planilha atual)

  1. No Excel, abra o editor Visual Basic: Menu Tools > Macro > Visual Basic Editor

    image

  2. Menu Insert > Module

    image

  3. Na janela em branco que apareceu, cole o código a seguir:

    Function getComment(incell) As String ' aceepts a cell as input and returns its comments (if any) back as a string On Error Resume Next getComment = incell.Comment.Text End Function

    Vai ficar assim: image

  4. Volte para a janela da sua planilha e use digite a fórmula =getComment(XXXXX), onde no lugar de XXX você coloca a célula com os comentários.

    image

Solução permanente, pra funcionar sempre

O procedimento é quase o mesmo, mas envolve salvar o arquivo como um Add-in para deixar instalado e funcionar sempre das próximas vezes.

  1. Crie um documento novo

  2. Abra o editor Visual Basic: Menu Tools > Macro > Visual Basic Editor

    image

  3. No painel lateral (“Project”), selecione o item que parece conter a sua planilha atual. No meu caso foi “VBA Project (Workbook1)”

    image

  4. Insira um novo módulo. Pode ser clicando com o botão direito em cima do item que você acabou de selecionar, ou no menu Insert > Module.

  5. Na janela em branco que apareceu, cole o código a seguir:

    Function getComment(incell) As String ' aceepts a cell as input and returns its comments (if any) back as a string On Error Resume Next getComment = incell.Comment.Text End Function

  6. Salve o arquivo como “Excel Add-in”, um formato com extensão .XLA

    image

  7. Depois de salvo esse Add-in pode ser instalado, movendo-o o arquivo .xla para a pasta Documents > Microsoft User Data > Excel:

    image

  8. Agora, no Excel é só utilizar a fórmula =getComment(XXXXX), onde no lugar de XXX você coloca a célula com os comentários.

    image


Referências utilizadas:

http://chandoo.org/wp/2009/09/03/get-cell-comments/

http://www.extendoffice.com/documents/excel/765-excel-convert-comments-to-cells.html

22 de maio de 2015

Como criar mapas personalizados com Google Maps

Veja três jeitos fáceis de criar e incorporar (embed) um mapa personalizado com Google Maps e a ferramenta MyMaps:
1. Mapa rápido sem pontos
2. Mapa rápido de um ponto só
3. Mapa de pontos ou trajetos (My Maps, exige login)

Ajustes no código de embed


1. Mapa rápido sem pontos

Este mapa é feito sem precisar logar em uma conta google. Use para mostrar uma região do mapa ou do modo StreetView, não vai aparecer o pino do Google Maps.
  1. Entre no site: http://ctrlq.org/maps/embed/
  2. O código fica o tempo todo aparente.
  3. Altere o mapa (arraste, dê zoom, escolha o modo Satélite, arraste o bonequinho para entrar no StreetView…)
  4. Copie o código
http://ctrlq.org/maps/embed/
image

2. Mapa rápido de um ponto só

Este mapa é feito sem precisar logar em uma conta google.
  1. Entrar no Google Maps e procurar um local / endereço
    image
  2. Clicar na engrenagem de Configurações e “Compartilhar ou incorporar mapa”
    image
  3. Clicar na aba “Incorporar mapa”
    image
  4. Escolher o tamanho (pequeno ou médio)
  5. Copiar código para incorporar (<iframe…)
    <iframe frameborder="0" height="300" src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d1801.6374966341696!2d-49.27116788257183!3d-25.429068296929362!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x94dce412dc528187%3A0xb8293d0094848d2b!2sPra%C3%A7a+Tiradentes+-+Centro%2C+Matriz%2C+Curitiba+-+PR!5e0!3m2!1spt-BR!2sbr!4v1432239932719" style="border: 0;" width="400"></iframe>

3. Mapas de pontos ou trajetos

Aqui você vai precisar fazer login em uma conta google. O mapa vai estar associado a essa conta e vai ser possível editá-lo depois.
Vantagens:
  • Possível adicionar mais de um ponto
  • Possível adicionar ponto, trajeto ou polígono (área)
  • Adicionar mais de uma layer de dados
  • Salvar e editar o mapa
  • Definir visualização inicial (zoom e posição do mapa)
  • Localizar pontos a partir de uma tabela

Criar um mapa personalizado com o Google My Maps:

  1. Login com sua conta no google
  2. Clique na caixa de busca até aparecer “Meus mapas”
    image
  3. Clique em “Criar”
    image
  4. Adicione nome e descrição
    image
  5. Essa é a tela de edição do mapa. O Importar serve para puxar vários locais ao mesmo tempo, usando uma tabela já pronta, ou um arquivo KML. As ferramentas abaixo da caixa de busca são para desenhar diretamente em cima do mapa.
    image

Adicionar pontos no mapa

  1. Encontre o local desejado. Pode usar a caixa de busca pra isso, ou ir manualmente até achar.
  2. Clique no pino que está na barra de ferramentas
    image
  3. Clique no mapa para criá-lo. Somente após “Salvar” o ponto será inserido de fato no mapa. Depois disso ele aparece no painel de layers (camadas). Para editá-lo, você pode selecioná-lo através do painel, ou clicando em cima dele no mapa.
    image

Publicar (incorporar) mapa

  1. Terminada a edição, clique nos 3 pontinhos de configurações. As do mapa, mais acima, não da camada. E depois em “Incorporar a meu site”
    image
  2. Você vai ter que deixar o mapa público antes disso.
    image
  3. Confirme nome e descrição. Clique em “Quem pode acessar” > “Alterar”. E marque “Público na Web”
    image
  4. Copiar código para incorporar. (Se não aparecer, repita o passo 1 após deixar o mapa público)
    image

Ajustes e edição do código de incorporação

Entenda o código

  1. O código para incorporar (embed) vai se parecer com isso:
    <iframe src="https://www.google.com/maps/d/u/0/embed?mid=z3IfIMDeTAjk.k0u39Vy5MnHw" width="640" height="480" ></iframe>
    Esse tipo de código html (com a tag iframe) nada mais é que uma janela que referencia um conteúdo que está em outro lugar. Ao copiar o código, você não copia o mapa, o mapa está no Google Maps (e, nesse caso, associado à conta que você usou para criar o mapa).
  2. O código copiado só vai criar essa janela que aponta para outro lugar. O elemento src="www.endereço…" é a fonte (source) do conteúdo. E os elementos width e height definem o tamanho da janela, em pixels (não precisa escrever a unidade).
  3. A ordem dos elementos não importa. Basta que estejam dentro da tag de abertura:
    <iframe AQUI VÃO OS AJUSTES ></iframe>
  4. Para alterar as dimensões do mapa, altere o valor dos elementos width e height. Se o código veio sem esses elementos, pode copiar daqui e inserí-los no seu código, logo após as aspas finais do elemento src.

Elimine a borda

  • Elimine a borda do mapa, que vem por padrão. Adicione o elemento frameborder="0" logo após as últimas aspas do código. Vai ficar assim:
    <iframe src="https://www.google.com/maps/d/u/0/embed?mid=z3IfIMDeTAjk.k0u39Vy5MnHw" width="640" height="480" frameborder="0" ></iframe>

Para mapas em largura inteira

  1. Altere a largura (width) para 100%. Vai ficar assim:
    <iframe src="https://www.google.com/maps/d/u/0/embed?mid=z3IfIMDeTAjk.k0u39Vy5MnHw" height="300" width="100%" frameborder="0" ></iframe>
    Nesse caso eu também ajustei um pouco a altura (para 300).
  2. Resultado final publicado:

Para mapas em meia largura

  1. Altere a largura (width) para 315.
    <iframe src="https://www.google.com/maps/d/u/0/embed?mid=z3IfIMDeTAjk.k0u39Vy5MnHw" frameborder="0" height="300" width="315" style="float: left; margin: 10px 20px 20px 0" ></iframe>
  2. Adicione um ajuste de estilo para que o texto possa correr ao lado do mapa:
    style="float: left; margin: 10px 20px 20px 0"
    Vai ficar assim:
    <iframe src="https://www.google.com/maps/d/u/0/embed?mid=z3IfIMDeTAjk.k0u39Vy5MnHw" height="300" width="315" frameborder="0" style="float: left; margin: 10px 20px 20px 0"></iframe>
  3. E o resultado final publicado:

Lorem impsum início de matéria  de logro, seguida por um enfado visceral, que o crítico percorre a sa100 poética de nono. Mais do que nunca, a poesia é hoje um produto apenas para consumo próprio, ou, 200 ndo muito, para consumo familiar – penso nas famílias espirituais, pequenas mas intransigentes n300 seus gostos como todas as famílias. Depois da messe cansativa, restam apenas esparsas espigas. S400 l do fim dos tempos? Não podemos ser tão fatalistas. É apenas a rotina de um tempo de fezes e ma500 poemas – como diria Escolhendo livros ao acaso nas prateleiras da livraria, juntei se600 ítulos que dão uma eloqüente amostragem da arte de não escrever. Lidos com o tédio característico 700 quem se vê pressionado pelo desejo de compreender, os poemas ficaram ainda mais intragáveis. Co800 tá-los é então um compromisso profissional.
Intertitulo

Ajuste de zoom e posição inicial do mapa

Pode ser que o mapa não inicie de um jeito legal. Pode ser muito próximo ou muito distante. Se você criou o código usando o “Meus mapas” você pode ajustar isso:
  1. Volte no mapa editável
  2. Ajuste a posição do mapa, como você deseja que ele abra pro leitor.
  3. Clique nos 3 pontinhos de configurações (as do mapa, mais acima, não da camada)
  4. Clique em “Definir visualização padrão”
  5. Pronto. Não precisa fazer nenhum ajuste no código. (Ao incluir pontos novos, editar o nome ou posição dos pontos também não)

15 de abril de 2015

Coordenadas no Google Maps

Como encontrar as coordenadas de um local

  1. Busque um endereço ou aproxime o local desejado
  2. Clique com o botão direito > O que há aqui?
  3. Pronto. Próximo à caixa de buscas, abaixo do endereço vai aparecer o par de coordenadas (LatLong), em formato decimal.

Coordenadas no Google Maps

  • Se clicar em cima das coordenadas (elas são um link), o Maps faz o mesmo que faria se você tivesse colado as coordenadas na caixa de busca: aproxima do local e também mostra o par de coordenadas em um formato diferente (DMS: graus, minutos e segundos)

Como encontrar um local a partir das coordenadas

O formato que o Google Maps usa para coordenadas é o seguinte:

YY.YYYY, XX.XXXX

Sendo:

Y=Latitude

X=Longitude

Vírgula para separar os dois números

Ponto como divisor de números inteiros e decimais (ao invés da vírgula que usamos como padrão no Brasil)


É só colar na caixa de busca um par de coordenadas nesse formato que a busca vai dar certo.


Veja também

Como converter coordenadas

Converter apenas uma coordenada

Converter uma lista de coordenadas

Outras operações com coordenadas

http://dadosfinos.blogspot.com.br/p/mapear.html#coordenadas

Como localizar muitos endereços com FusionTables

http://dadosfinos.blogspot.com.br/2014/05/fusion-tables-conferir-e-editar.html

31 de março de 2015

Publicar um iframe do Google Drive personalizado

Se você tem uma tabela no Google Drive (antigo Google Docs), você pode publicá-la em um blog ou site do jeito que ela está. E quando fizer alterações na tabela, elas aparecereão na versão publicada.

É possível fazer isso gerando um código html para embedar (incorporar) a tabela no seu site. Esse código vai ter a tag html <iframe>, que nada mais é que uma moldura, uma janela pra mostrar um conteúdo que está em outro lugar (nesse caso, o conteúdo aparece no site onde você colocar, mas ele está de fato no Google Drive).

Código iframe padrão

Um problema que aparece é que o código padrão não é muito esperto (não vem nem com as dimensões que o iframe deve ter). Veja como fica:




Você vai precisar então personalizar esse código para que a aparência fique um pouco melhor. Veja como fazer isso.


Personalizar o código de iframe do Google Drive

0. Criar ou converter uma tabela no Google Drive

Se não tem uma conta google, tenha. Se você tem uma conta google, você tem google drive. E no google drive é fácil de usar tabelas. Você pode criar uma direto lá (Novo > Planilhas Google) ou fazer Upload de um arquivo .xls que ele vai converter para o formato dele. As tabelas são editáveis online, compartilháveis, podem ser editadas por várias pessoas ao mesmo tempo, e mantém histórico de revisões e alterações.



Pra tirar uma com os torcedores locais, peguei essa tabela que eu achei rápido aqui, sobre quantas rodadas o Coritiba passou na Zona de Rebaixamento. É a que está publicada do jeito padrão aí em cima.

1. Gerar o código de incorporação (embed).

É um código html com a tag <iframe>.
No menu Arquivo > Publicar na Web…



2. Publicar a tabela desejada

Na aba "Incorporar", selecionar a aba (planilha) a ser publicada, ou "Documento inteiro", se for o caso publicar todas as abas (quando você só tem uma aba só, é indiferente). Clique em Publicar.




3. Copiar o código.

O código deve começar com <iframe…  e termina com </iframe>)
A princípio, esse código já pode ser publicado, mas as edições a seguir deixam a tabela menos "engessado" e mais limpa visualmente.

Código de exemplo:
<iframe src="https://docs.google.com/spreadsheets/d/1artWkEWCfVSfqyl_m7fn5QIfEiPHsGbDbPlg8E_cEfg/pubhtml?widget=true&amp;headers=false"></iframe>

4. Editar o código


4.1 Adicionar largura e altura
Adicionar width="670" height="500"

<iframe src="https://docs.google.com/spreadsheets/d/1artWkEWCfVSfqyl_m7fn5QIfEiPHsGbDbPlg8E_cEfg/pubhtml?widget=true&amp;headers=false" width="670" height="500"></iframe>

4.2 Tirar borda do iframe
Adicionar frameborder="0"

<iframe src="https://docs.google.com/spreadsheets/d/1artWkEWCfVSfqyl_m7fn5QIfEiPHsGbDbPlg8E_cEfg/pubhtml?widget=true&amp;headers=false" width="670" height="500" frameborder="0"></iframe>

4.3 Tirar barra de abas
Mudar widget=true para widget=false

<iframe src="https://docs.google.com/spreadsheets/d/1artWkEWCfVSfqyl_m7fn5QIfEiPHsGbDbPlg8E_cEfg/pubhtml?widget=false&amp;headers=false" width="670" height="500" frameborder="0"></iframe>

Fazendo as três alterações, o código final fica assim:
<iframe src="https://docs.google.com/spreadsheets/d/1artWkEWCfVSfqyl_m7fn5QIfEiPHsGbDbPlg8E_cEfg/pubhtml?widget=false&amp;headers=false" width="670" height="500" frameborder="0"></iframe>

Está publicado aí pra baixo. Dá uma olhada na diferença.
4.4 Tirar gridlines
Em alguns casos, a tabela pode ficar melhor sem o grid padrão de células. Assim, você pode fazer aparecer apenas os contornos que você escolheu (pintou, escolheu espessura, etc.)

Adicionar &gridlines=false

<iframe src="https://docs.google.com/spreadsheets/d/1artWkEWCfVSfqyl_m7fn5QIfEiPHsGbDbPlg8E_cEfg/pubhtml?widget=false&amp;headers=false&gridlines=false" width="670" height="500" frameborder="0"></iframe>

4.5 Tirar barra de título e rodapé:
Por padrão, o iframe fica com uma barra de título (com o nome da planilha e o nome da aba atual). E se você fizer a traquinagem anterior pra tirar a barra de abas, surge uma nova barra no rodapé "Published by Google Sheets - Atualizado a cada 5 minutos automaticamente". Nada contra dar crédito ao Google Sheets, mas poderia ser mais discreto.

Para remover a barra, adicione: &chrome=false

<iframe src="https://docs.google.com/spreadsheets/d/1Y0mi4KrrmTesW0fUI00ZjTC-IoO63w4nNHAfHf0A3n0/pubhtml?gid=746120118&amp;single=true&amp;widget=true&amp;headers=false&gridlines=false&chrome=false"></iframe>

Se esse último truque parar de funcionar, a solução é deixar a barra de títulos mais amigável. Por padrão ela mostra o título do documento, dois pontos e o título da aba (planilha). Deixando nomes que façam sentido já resolvem o problema. Se quiser mais uma gambiarra, dá pra deixar a planilha sem nome, com apenas um espaço, pra ficar uma coisa a menos.

Código iframe personalizado

Voilá. Veja como ficou depois de customizar o iframe que veio do Drive:



Ajustes finais

Espaços brancos

Elimine os espaços em branco eliminando linhas e colunas vazias.

Barras de rolagem

Elimine as barras de rolagem ajustando as dimensões do iframe.
Se as dimensões (width e height) da moldura (iframe) forem menores do que o conteúdo que ela está mostrando (a tabela), vão haver barras de rolagem. Se forem maiores, vão ficar espaços em branco sobrando. Teste valores diferentes até a moldura ficar bem ajustada na página.