Tag Archives: Excel

Excel – Comparar pastas de trabalho lado a lado

Um novo método disponível é a comparação lado a lado que permite que você veja mais facilmente as diferenças entre duas pastas de trabalho, sem precisar mesclar todas as alterações em uma única pasta de trabalho. Você pode rolar pelas duas pastas de trabalho ao mesmo tempo para identificar diferenças entre elas. Menu Janela / Comparar Lado a lado com.

  1. Abra as pastas de trabalho que deseja comparar lado a lado.
  2. No menu Janela, clique em Comparar Lado a Lado com.
  3. Na barra de ferramentas Comparar Lado a Lado, siga um destes procedimentos:
    • Para rolar através das pastas de trabalho ao mesmo tempo, clique em Rolagem Sincronizada .
    • Para redefinir as janelas da planilha para as posições em que se encontravam quando você iniciou a comparação das pastas de trabalho, clique em Redefinir Posição da Janela .
  4. Clique em Fechar Lado a Lado para interromper a comparação das pastas de trabalho.

Observação Se você abrir duas pastas de trabalho, o comando no menu Janela incluirá o nome de arquivo de uma dessas pastas de trabalho. Por exemplo, abra “pasta1.xls” e “pasta2.xls”. Durante a exibição de “pasta1.xls”, o menu Janela mostrará o comando como Comparar Lado a Lado com pasta2.xls.

Se você tiver fechado a barra de ferramentas Comparar Lado a Lado mas quiser mostrá-la novamente, clique em Personalizar no menu Ferramentas, clique na guia Barra de Ferramentas e, em seguida, selecione Comparar Lado a Lado na lista Barra de Ferramentas.

Abraços

Tomás Vásquez

Mais XML no Excel

A poucos dias publiquei algumas matérias sobre XML no Office em meu site e mencionei-as também aqui no blog.

Os artigos falam sobre algumas abordagens com XML e o Excel. Para completar a informação, fica aqui uma dica sobre mais um artigo que fala sobre XML no Office, da autoria de ninguém mais ninguém menos do que a própria equipe de Office da Microsoft:

http://office.microsoft.com/pt-br/excel/HA102063961046.aspx

Como já mencionei aqui em algum post já perdido no tempo, a Microsoft mantém um site do produto Office com dicas, modelos, artigos e mini-cursos para aperfeiçoamento no aplicativo. Uma visita esporádica é muito recomendada.

Abraços

Tomás Vásquez

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

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