Victor M. Sant'Anna
O Visual Basic Editor (VBE) é um programa que vem com o OFFICE e é um editor de programas VBA que podemos editar as macros gravadas com nossos arquivos, mas também é possível inserir ou criar funções para EXCEL, caso as funções disponíveis não resolvam nossos problemas...
O Visual Basic for Applications (VBA) é uma implementação do Visual Basic da Microsoft incorporada em todos os programas do Microsoft Office, bem como em outras aplicações da Microsoft. Um problema do uso do VBA é a sua fraqueza perante a ameaça de vírus. Os chamados "vírus de macro" fazem uso do VBA.
a) No EXCEL, clique no atalho ALT + F11 (deixe a tecla ALT pressionada e pressine a seguir a tecla F11) ou entre no Menu Ferramentas na opção Macro e escolha a opção Editor do Visual Basic
b) A janela que abre é o Editor do Microsoft Visual Basic do EXCEL (disponível no MS-Office para o Word, Excel, Out Look, etc.). Nesta janela, no menu Inserir, selecione a opção Módulo
c) Na janela que abre, copie e cole o código abaixo:
Function ContaQuantosDiferentes(ByVal range1 As Range) As Integer
Dim conta As Integer
conta = 0
Dim Aux()
ReDim Aux(range1.Rows.Count)
For i = 1 To range1.Rows.Count
Aux(i) = range1.Cells(i, 1)
Next i
For i = 1 To range1.Rows.Count - 1
For j = i + 1 To range1.Rows.Count
If Aux(i) = Aux(j) Then
Aux(j) = ""
End If
Next j
Next i
For i = 1 To range1.Rows.Count
If Aux(i) <> "" Then
conta = conta + 1
End If
Next i
ContaQuantosDiferentes = conta
End Function
' *****************
d) No EXCEL, quando quiser usar a função definida pelo usuário, escreva a função
= ContaQuantosDiferentes (intervalo)
Mas substitua a palavra intervalo pelo intervalo em que deseja contar quantas palavras ou números diferentes existem. Veja exercício a seguir:
Para a tabela abaixo colada a partir da célula A1:
|
cidade |
gasto |
|
poa |
1 |
|
viamao |
3 |
|
poa |
2 |
|
canoas |
4 |
|
viamao |
3 |
|
canoas |
4 |
|
poa |
3 |
|
viamao |
3 |
|
poa |
4 |
|
novo hamburgo |
7 |
a) diga para quantas cidades diferentes foram feitas ligações
Resposta: se a tabela foi colada a partir da célula A1, basta usar a função definida anteriormente
=ContaQuantosDiferentes(A2:A11)
b) Usando a mesma função acima, mostre quantos valores diferentes foram usadas na tabela na coluna gastos
Se, ao invés de obtermos o número de registros diferentes precisássemos retirar todos os duplicados da coluna A de uma planilha EXCEL? O problema poderia ser resolvido usando uma macro! Cole a lista seguinte em uma planilha:
|
cidade |
|
poa |
|
viamao |
|
poa |
|
canoas |
|
viamao |
|
canoas |
|
poa |
|
viamao |
|
poa |
|
novo hamburgo |
a) No EXCEL, clique no atalho ALT + F11 (deixe a tecla ALT pressionada e pressine a seguir a tecla F11) ou entre no Menu Ferramentas na opção Macro e escolha a opção Editor do Visual Basic
b) Na janela do Editor do Visual Basic do EXCEL, no menu Inserir, selecione a opção Módulo
c) Na janela que abre, copie e cole o código abaixo:
Sub RemoveDupes()'Add extra Column, "A" becomes "B"Columns(1).EntireColumn.Insert'Filter out duplicates and copy unique list to "A"Range("B1", Range("B65536").End(xlUp)).AdvancedFilter _Action:=xlFilterCopy, CopyToRange:=Range("A1"), Unique:=True'Add extra Column, "B" becomes "A"Columns(2).EntireColumn.DeleteEnd Sub
'(O código acima foi retirado da Internet no enrdereço http://maxexceldev.wordpress.com/ )
d) Execute a macro (tecle Alt+F8 e selecione a macro RemoveDupes) e todas as linhas com nomes de cidades repetidas serão retiradas (deletadas). Atenção! Esta macro apaga as células duplicadas, se nas outras colunas existem informações importantes correspondentes às células apagadas, elas serão perdidas!
Resolvendo o problema anterior por FILTRO:
É possível fazer uma cópia de uma lista retirando apenas os valores não repetidos e copiando-os para outra coluna ou planilha.
Como?
Cole a lista seguinte em uma planilha EXCEL:
|
cidade |
|
Poa |
|
Viamao |
|
Poa |
|
canoas |
|
Viamao |
|
canoas |
|
Poa |
|
Viamao |
|
Poa |
|
novo hamburgo |
a) Selecione a lista que contém valores repetidos (se a lista foi colocada a partir da célula A1, selecione com o mouse a lista de A2 até A11.
b) Selecione no menu Dados a opção Filtrar e nela a opção Filtro Avançado...
c) Na janela que abre:

Copyright Victor M. Sant'Anna 2008