Arquivo

Posts Tagged ‘Colunas’

Dicas de autofiltro no vba

Pensei neste artigo:”Dicas de autofiltro no vba”, pois a maioria apenas conhece o uso, muito interessante, nas planilhas. Mas e nos códigos?
Neste primeiro momento não quero descrever o porque e quando usar, mas qual a importância ou o cuidado de desativar os autos filtros nos códigos VBA?

imagem dicas de autofiltro no vba

Problema ou Solução “autofiltro”

Dependendo do código, ainda mais se envolver cópia, o autofiltro vai influenciar muito. Em outros casos talvez não influencie, mas pensando no seu usuário final talvez seja melhor deixar a planilha sem filtros para evitar equívocos de interpretação de dados.

 

Benefícios autofiltro no vba

Além do uso clássico que por sinal ajuda muito, podemos também usufruir do autofiltro para “pesquisar” e selecionar itens em uma lista, ao invés de verificar item por item.

 

imagem vamos aos codigos vba

Desabilitar o auto-filtro faça:

Sub FILTRAR_E_DESABALITAR()
  Rows(4).AutoFilter
  ActiveSheet.AutoFilterMode = False
End Sub

Dicas de autofiltro no vba -> Algumas formas de filtrar:

Por uma palavra chave:
Neste exemplo a tabela de cidades será filtrada pela palavra “PALMAS” na coluna 2

'FILTRAR CAMPO 2 PELO CRITERIO "PALMAS"
Range("a4").AutoFilter Field:=2, Criteria1:="Palmas"

Exemplo para limpar todos os filtros utilizados em uma tabela:

'LIMPAR TODOS OS FILTROS
ActiveSheet.ShowAllData

Código vba demonstrando múltiplos autofiltros:

'MULTILPLOS FILTROS
Range("a4").AutoFilter Field:=2, _
Criteria1:=Array("São Paulo", "Manaus"), _
Operator:=xlFilterValues

 

Segue Vídeo:

Range, Cells e Offset

Antes de iniciarmos a falar sobre Range, Cells e Offset vamos fazer uma revisão rápida das maneiras de utilizar células.

Podemos tanto utilizar o Range como o Cells, ou seja selecionar a célula “A2” pode ser:

Cells(1,2).select (linha 1 e coluna 2)
Ou
Range(“A2”).select

Você pode usar das duas formas para selecionar (.select) ou para pegar o valor da célula (.value), mas existe alguns detalhes que só é possível ora com a primeira forma ora com a segunda forma.

Exemplos:
É fácil selecionar um grupo de células com o range: Range(“A1:B2”).select
Com o cells podemos selecionar todas as células da planilha: Cells.Select
Ou apagar o conteúdo das células Cells.ClearContents

Entretanto algumas vezes nos deparamos com uma situação que nos exige copiar algum dado abaixo ou ao redor da célula selecionada!!!

Antes de prosseguirmos vamos colocar um exemplo para facilitar. Sempre que alguém clicar em uma célula, desejamos que o valor dessa célula seja copiado para célula à direita.

exemplo_uso_offset
Um caminho mais tortuoso é saber a coluna ativa e a linha ativa, e a partir disso (como sabemos a coluna) adicionar + 1 e colar o valor da célula atual

linha = activeCell.row

coluna = activeCell.column

Cells(linha, coluna + 1).Value = Cells(linha, coluna).Value

_________________________________________________________

Offset
Mas com o uso do offset esta tarefa é facilitada, pois essa propriedade nos permite movimentar ao redor da célula ativa ou de uma célula especifica.

Ou seja podemos utilizar como:
Movimentar a partir de célula especifica >> Range(“B2”).Offset(1,0).Select
Ou
Movimentar ao redor da célula ativa >> ActiveCell.Offset(1,0).Select

Modo de usar:
Na propriedade offset o primeiro número dentro dos parênteses representa as linhas que você irá movimentar. Número positivo significa quantas casas a para baixo, número negativo acima e o zero permanece no mesmo local

O segundo número dentro dos parênteses representa as colunas, positivo a direita, negativo à esquerda e o zero permanece na mesma coluna.

comoFuncionaOffset

Ou seja para movimentar o cursor uma célula para baixo:
ActiveCell .Offset(1,0).Select
Movimentar acima:
ActiveCell .Offset(-1,0).Select
Movimentar para direita:
ActiveCell.Offset(0,1).Select
Movimentar para esquerda:
ActiveCell.Offset(0,-1).Select

__________________________________________________________________________

Caso esteja iniciando com macros sugiro acessar os primeiros passos ->> clique aqui

Caso deseja ver mais utilidades com a propriedade offset – >> clique aqui

 

Segue Vídeo sobre Range, Cells e Offset

 

Para ajudar ainda mais, coloco abaixo a planilha Range, Cells e Offset gratuitamente.
Espero que lhe ajude!

download planilha excel vba

Ultima Coluna

Neste artigo quero tratar de um assunto que conforme vamos usando o vba surge a necessidade de sabermos: a ultima coluna de uma planilha.

Para não ficar “quebrando a cabeça” segue um código rápido e simples para pegar a última coluna preenchida.

Ultima Coluna

Código Ultima Coluna

colunaVerificada = 5000

linhaVerificada = 2

ultimaColuna = ActiveSheet.Cells(linhaVerificada, colunaVerificada ).End(xlToLeft).Column

Obs.: Esse código verifica apenas de uma linha, no caso acima na linha 2

 

Segue demonstração abaixo: 

 

______________________________________________________________

*Dúvidas sobre o vídeo:

>>Como habilitar a Guia Desenvolvedor ?
>>Primeiros Passos em VBA?

______________________________________________________________

Obs.: Ao copiar os códigos do site e colar direto no excel substitua  “  e ” por  ” (aspas duplas) 

 

 

WorksheetFunction – fórmulas em VBA

04/06/2012 1 comentário

 

Todas as funções do Excel como: PROCV, CONT.VALORES, CONT.SE, SOMA, MÉDIA; podem ser executadas dentro do VBA.

Para isso usamos a função worksheetfunction.

Imagine que você precisa saber quantas células não estão vazias na coluna A da planilha, no Excel você usaria:

=CONT.VALORES(A:A)

no vba você pode fazer assim:

worksheetfunction.countA(columns(“A”))

para passar esta informação para uma variável (exemplo: contagem)

contagem = worksheetfunction.countA(columns(“A”))

obs.: countA é a função CONT.VALORES em inglês!

 

Fonte:

http://cursovbacuritiba.com.br/