Como executar macros em outro arquivo no Excel

Uma funcionalidade interessante de aplicativos Office é a possibilidade de executar macros de outros arquivos, mesmo que estes não estejam abertos.

Para fazer um teste, começe criando um arquivo, no Excel mesmo e crie a seguinte macro:

1
2
Public Sub testeMacro()
    MsgBox "Executou a macro em testeMacro.xls!"

End Sub

A observação aqui é que a macro deve obrigatoriamente Pública, como é mostrado neste exemplo. Grave a pasta de trabalho com o nome testeMacro.xls. Abra agora uma nova pasta de trabalho e nesta, crie uma nova macro com a seguinte código:

1
2
3
Sub teste()
    Application.Run "testeMacro.xls!testeMacro"
End Sub

O método Run serve exatamente para execução de macros no VBA. Salve este arquivo com qualquer nome, porém, na mesma pasta onde a pasta testeMacro.xls foi salva. Agora, execute a macro teste clicando em F5 e veja que o resultado é a MsgBox com a mensagem “Executou a macro em testeMacro.xls!”, conforme haviámos configurado.

Caso queira executar a macro que esteja localizada em algum outro arquivo, basta ao invés de informar somente o nome do arquivo, usar o caminho completo, por exemplo:

1
Application.Run "C:\temp\arquivo.xls!outraMacro"

É possível inclusiva passar parâmetros para tal função, bastando apenas informá-los após a chamada da função, por exemplo, para a macro:

1
2
3
Public Sub testeMacro(ByVal mensagem As String)
    MsgBox mensagem
End Sub

A chamada seria:

1
2
3
Sub teste()
    Application.Run "testeMacro.xls!testeMacro", "Minha mensagem"
End Sub

Abraços

Tomás Vásquez

50 perguntas para o webmaster

Criar um site do zero não é fácil. Só que corrigir defeitos de um site já publicado pode ser ainda mais difícil. Por isso o especialista em marketing online Carsten Cumbrowski compilou essa lista para o blog Search Engine Journal .Se você está prestes a publicar seu primeiro site ou se já é macaco velho na arte de subir páginas dê uma boa olhada nesse questionário. Aposto que pelo menos uma perguntinha vai te surpreender e fazer você correr para o Dreamweaver.

Acessabilidade
1. O conteúdo está separado por elementos de navegação?
2. O site é compatível com vários browsers diferentes?
3. Os códigos HTML e CSS estão de acordo com os padrões do W3C?
4. As descrições das fotos (do alt) estão em todas as imagens relevantes?
5. A informação essencial do site pode ser lida em modo texto ou apenas em flash e imagens?

Navegação
1. Os links têm textos que indicam claramente para onde eles levam?
2. Qual é o número de cliques que leva o visitante para a parte mais remota do site?
3. Se há uma tela de apresentação em Java/JavaScript/Flash, há uma alternativa em HTML simples?
4. Quando um item ou um link é clicado, ele responde imediatamente?
5. Os itens clicáveis da interface mostram visualmente que foram acionados?
6. A navegação é intuitiva? Os ícones são óbvios ou obscuros? Itens clicáveis e não-clicáveis podem ser diferenciados sem dificuldade?
7. Como é a legibilidade (tipo da fonte, tamanho, estilo) do site?
8. Há uma declaração clara e curta dos objetivos do site?
9. Indique caminhos em todas as páginas, não crie ruas sem-saída.
10. Há uma mapa do site? Se não, existe uma busca por palavra-chave?

Design
1. O design do site é estéticamente atraente?
2. As cores usadas são harmoniosas e logicamente relacionadas?
3. As cores e o contraste podem atender quem tem deficiências visuais?
4. O design é apropriado para a audiência do site? Levando em conta que as pessoas devem ler o conteúdo do site sem fazer nenhum ajuste no seu navegador.
5. As fontes são legíveis em várias resoluções de tela?

Conteúdo
1. O site tem pouco texto mas não é informativo?
2. As regras de copywriting e regras de uso estão claras para a sua audiência?
3. Os blocos de texto estão separados em linhas com menos de 80 caracteres?
4. O texto pode ser redimensionado via browser ou o CSS restringe alterações?
5. O contraste entre a cor do texto e o background facilita a leitura?
6. O texto está separado em pequenos blocos, com trechos destacados, parágrafos e sub-parágrafos e facilidade para cópia, quando necessário?
7. Existem links para explicar jargões técnicos e indicar mais detalhes sobre os artigos?
8. Você já criou a página “Sobre esse site” que identifica o autor do conteúdo e dá crédito para outras pessoas que contribuem para a página?
9. Há testemunhos de usuários do site? Você os publica?
10. Você atualiza regurlamente o site ou é motivado pela frase: ‘coloque no ar e esqueça’?

Segurança
1. Há algum falha de segurança óbvia?
2. Como os formulários reagem ao uso de caracteres especiais?
3. Os diretórios pessoais estão protegidos com senha .htaccess?
4. Diretórios como cgi-bin e images estão bloqueados ou protegidos com configurações que limitam as permissões de acesso a eles?
5. As informações dos clientes estão guardadas online? Se estão, elas estão protegidas contra acessos externos?

Outras considerações técnicas
1. O site carrega rápido –mesmo para quem tem conexão discada?
2. Todos os links internos e externo estão funcionando?
3. Os scripts estão funcionando sem exibir erros?
4. O site está livre de problemas causados pelo servidor?

Outra considerações sobre marketing
1. O site está otimizado para os mecanismos de busca (ênfase no texto essencial, tags, etc.)?
2. A página inicial convida o usuário a ir mais fundo no site?
3. O site tem elementos que encorajam visitas futuras ou a indicação para outros visitantes?
4. O Robots.txt está configurado?
5. Há um mapa do site?
6. Todas as páginas podem ser acessadas por meio de um link simples de HTML?
7. Quanto texto sobra na página depois de remover todas as imagens, applets e Flash?
8. As páginas podem ser acessadas apenas por uma URL ou tem vários links disponíveis, com conteúdo duplicado?

Coisas legais e legitimação
1. Você oferece informações como um número de telefone e um endereço real? Ou pelo menos um e-mail que não seja webmaster@algumacoisa.com ?
2. A página tem uma declaração de Termos de Uso para evitar que possíveis reclamações sobre o controle de material com direitos autorais protegidos recaiam sobre o site?
3. Há uma definição sobre a privacidade dos usuários que informam seus e-mails e outras informações pessoais?

Tomás Vásquez

Fonte: http://info.abril.com.br

Transpor dados no VBA – Invertendo Linhas e Colunas

Transpor Dados
Transpor Dados

Muito útil em seu formato tradicional no Excel, a função de transposição de dados permite trocar facilmente linhas por colunas de uma área de dados no Excel.

Para desenvolvedores VBA essa necessidade é um pouco rara, mas não menos importante, principalmente quando manipulamos muitos dados em arrays e controles. Bom, surgiu a necessidade e encontrei um código muito bem feito que efetua a tarefa.

A função recebe um Array de Variants de 2 dimensões como um argumento e retorna o mesmo já transposto.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Function Array2DTranspose(avValues As Variant) As Variant
    Dim lThisCol As Long, lThisRow As Long
    Dim lUb2 As Long, lLb2 As Long
    Dim lUb1 As Long, lLb1 As Long
    Dim avTransposed As Variant
    If IsArray(avValues) Then
        On Error GoTo ErrFailed
        lUb2 = UBound(avValues, 2)
        lLb2 = LBound(avValues, 2)
        lUb1 = UBound(avValues, 1)
        lLb1 = LBound(avValues, 1)
        ReDim avTransposed(lLb2 To lUb2, lLb1 To lUb1)
        For lThisCol = lLb1 To lUb1
            For lThisRow = lLb2 To lUb2
                avTransposed(lThisRow, lThisCol) = avValues(lThisCol, lThisRow)
            Next
        Next
    End If
    Array2DTranspose = avTransposed
    Exit Function
ErrFailed:
    Debug.Print err.description
    Debug.Assert False
    Array2DTranspose = Empty
    Exit Function
    Resume
End Function

Perfeita para trabalhar com dados, principalmente aqueles retornados em Recordsets ADO ou DAO.

Abraços e bom profeito!

Tomás Vásquez

Adobe Photoshop Express OnLine! Um passo a frente nas aplicações Web

A Adobe anunciou uma versão preliminar de sua poderosa ferramenta de edição de imagens, só que agora online, o Photoshop Express.

Não é necessário dizer que a proposta é algo bem mais simples do que a versão para Desktop, porém as ferramentas mais utilizadas estão disponíveis para uso. A experiência é agradável, nada que se compare ao Desktop, mas a contar com o fato de poder fazer isso de qualquer lugar, como de uma Lan House qualquer, é legal saber que sempre estará disponível para edição de imagens a ferramenta mais popular do mercado.

A Adobe já vem a algum tempo mandando e desmandando no que vai acontecer com o futuro da Web. A aquisição da Macromedia e os constantes conflitos com a gigante do software, a Microsoft constatam esse fato e colocar a Adobe em uma posição de peso, porém difícil pois quanto maior o tombo, maior a queda.

Deixando de lado a essa briga, é bom saber que para o desenvolvimento de uma ferramenta tão complexa como esta, a Adobe utilizou o framework Flex, criado por ela mesma para axiliar o desenvolvimento de aplicações em Flash. Como o Flash tem um foco prioritariamente para Designers e o desenvolvimento Web em simples HTML e AJAX começa a mostrar sinais de limitações frente a gigantesca demanda do mercado pela amigabilidade de sistemas, principalmente os sistemas web, a Adobe investiu em uma ferramenta que facilita a criação de aplicativos comerciais muito similar ao que as ferramentas de desenvolvimento de sistemas para Desktop e Web disponibilizam. O resultado tem sido sistemas que fazem fundamentalmente a mesma coisa, mas com interface excepcionalmente mais rica.

A comunidade de desenvolvedores tem se “ligado” nas vantagens que o Flex tem provido em relação a sistemas, portanto, para a felicidade dos usuários (na qual me incluo), esperem que em breve os sistema e sites convencionais passarão a trazer interfaces bem além do que o HTML tradicionalmente o faz.

Para saber mais:

Adobe Photoshop Express
https://www.photoshop.com/express/

Adobe Flex
http://www.adobe.com/products/flex/

Abraços

Tomás Vásquez

Technology, Education and whatever else

css.php

Tomás Vásquez – Blog is Stephen Fry proof thanks to caching by WP Super Cache