Ir ao conteúdo

Posts recomendados

Postado

Olá, pesquisei esse tema aqui e não achei nada, acho que a minha dúvida é bem básica, queria executar uma macro que percorresse uma coluna da planilha com um critério e parasse na célula em que o critério de seleção acabasse. 

 

Ex: A coluna "B" foi escolhida para ser percorrida, nela há vários números (Critérios) em sequencia, por exemplo, vários números 5 em sequencia, depois vários números 8 em sequencia debaixo dos cincos na mesma coluna e assim por diante... a ideia é criar uma macro em que eu digito um critério, Ex: "5" e ela acha o primeiro cinco da coluna e seleciona até o ultimo cinco, lembrando que não teria outros números no caminho no meio dos cincos, os critérios estão em sequencia ininterrupta, é possível elaborar um código desse em VBA? Podem me ajudar?

Postado
1 hora atrás, Gabriel Super Gay disse:

... eu digito um critério, Ex: "5" ~~~> digita o critério onde ?

 

... e seleciona até o ultimo cinco, ~~~> qual o seu objetivo final? selecionar para quê?

 

Postado
51 minutos atrás, osvaldomp disse:

 

Bom, eu iria digitar o critério num form com uma TextBox dentro, sendo que o objetivo é deixar a ultima célula que tem o critério, o ultimo critério, com o cursor da planilha em cima, para posteriormente inserir uma borda mais grossa em toda a linha na parte de baixo da célula do ultimo critério, criando uma divisão entre o critério que acabou de ser executado e o de baixo, é meio difícil. 

Se ficou muito confuso posso tentar explicar melhor se quiser.

Postado

A borda poderá ser inserida pelo código, sem selecionar células, que não é necessário e tampouco recomendável.

 

Ainda, você poderá inserir o critério em uma InputBox gerada pelo código, que é uma solução mais simples do que utilizar um Form, a não ser que o Form seja para efeitos de aprendizado.

 

Eu sugiro que você disponibilize aqui no fórum uma amostra do seu arquivo Excel com alguns dados e com a borda aplicada em dois ou três casos.

Postado
6 horas atrás, osvaldomp disse:

A borda poderá ser inserida pelo código, sem selecionar células, que não é necessário e tampouco recomendável.

 

Ainda, você poderá inserir o critério em uma InputBox gerada pelo código, que é uma solução mais simples do que utilizar um Form, a não ser que o Form seja para efeitos de aprendizado.

 

Eu sugiro que você disponibilize aqui no fórum uma amostra do seu arquivo Excel com alguns dados e com a borda aplicada em dois ou três casos.

 

Olá, eu fiz um exemplo, na planilha anexadaPasta1.xlsx tem uns "dados" e na Coluna "F" tem os "critérios", perceba que entre os 5's e os 8's tem uma borda dividindo os "dados", entre o 8 e 9 o mesmo, mas entre o 9 e 10 deixei sem nada, a ideia é colocar uma borda mais grossa entre eles de forma automática sempre em baixo do ultimo critério, do ultimo "9", "10" "11" e assim por diante... assim como nos outros (5, 8 e 9 que eu fiz), separando e organizando os "dados", por isso disse que queria percorrer uma coluna por critérios e colocar uma borda no ultimo na parte de baixo, não sei como fazer, se tiver um jeito mais fácil seria muito bom de fato. 

Postado

Experimente o código abaixo.

 

Sub AplicaBordas()
 Dim c As Long, k As Long
  Columns("B:F").Borders.LineStyle = xlNone
  For c = 5 To Cells(Rows.Count, 6).End(3).Row
   k = Application.CountIf([F:F], Cells(c, 6)) - 1
   Cells(c + k, 2).Resize(, 5).Borders(xlEdgeBottom).Weight = xlThick: c = c + k
  Next c
End Sub

 

Postado
1 hora atrás, osvaldomp disse:

Experimente o código abaixo.

 


Sub AplicaBordas()
 Dim c As Long, k As Long
  Columns("B:F").Borders.LineStyle = xlNone
  For c = 5 To Cells(Rows.Count, 6).End(3).Row
   k = Application.CountIf([F:F], Cells(c, 6)) - 1
   Cells(c + k, 2).Resize(, 5).Borders(xlEdgeBottom).Weight = xlThick: c = c + k
  Next c
End Sub

 

Obrigado, funcionou muito bem, acho que entendi metade os critérios do seu código, mas para o tempo que você despendeu aqui me ajudando ser realmente aproveitado e eu aplicar isso no meu projeto de fato eu gostaria que você me explicasse o que os números/critérios marcados em amarelo na imagem que eu anexei representam na planilha e código, por favor. Para botar em prática.

Capturar.PNG

Postado

Nenhum dos números que você marcou se refere a critérios.

 

For c = 5 To Cells(Rows.Count, 6).End(3).Row ~~~> equivale a End(xlUp)

 

Cells(c + k, 2) ~~~> refere-se à coluna B

 

Resize(, 5) ~~~> estende 5 colunas à direita

Postado
23 minutos atrás, osvaldomp disse:

Nenhum desses números se refere a critérios.

 

For c = 5 To Cells(Rows.Count, 6).End(3).Row ~~~> equivale a End(xlUp)

 

Cells(c + k, 2) ~~~> refere-se à coluna B

 

Resize(, 5) ~~~> estende 5 colunas à direita

Obrigado, valeu.

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!