Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
rjdio

Ajuda com Macro no Excel

Recommended Posts

Fala pessoal!

Há duas semanas fiz uma macro que buscava um determinado conteúdo, em um intervalo especificado, e deletava as linhas que continham esse tal conteúdo. A macro funcionou perfeitamente. Eis a macro:

Sub most_requested_pages()

Dim rng As Range

Dim i As Integer, counter As Integer

Set rng = Range("A1:A1000")

i = 1

For counter = 1 To rng.Rows.Count

If rng.Cells(i) = "blablabla" Then

rng.Cells(i).EntireRow.Delete

Else

i = i + 1

End If

Next

End Sub

Agora estou precisando de uma macro que busque um determinado conteúdo, e na célula ao lado, insira uma função lógica (SE). O procedimento é mais ou menos o mesmo:

Sub Europeu2007()

Dim rng As Range

Dim i As Integer, counter As Integer

Set rng = Range("F1:F20000")

i = 1

For counter = 1 To rng.Rows.Count

If rng.Cells(i) = "blablabla" Then

rng.Cells(i).EntireRow.Select

ActiveCell.Offset(0, 6).Select

ActiveCell.FormulaR1C1 = "=IF(R[1]C[-3]=RC[-3],R[1]C[-1],R[-1]C[-1])"

Else

i = i + 1

End If

Next

End Sub

O problema é que a macro está parando na primeira condicional, ou seja, não está buscando o documento inteiro. No primeiro "blablabla" que ele encontra, realiza a instrução If...Then e para.

Alguém sabe me dizer o que eu preciso fazer? Ou existe alguma metodologia melhor, talvez usando filtro, não sei.

Obrigado desde já!

Abraço a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro no seu código é que você só incrementa o índice de Cells, quando a condição rng.Cells(i) = "blablabla" é falsa, então quando a partir do momento que ela se torna verdadeira o índice não é mais incrementado. Isto pode ser corrigido tirando o código "i = i + 1" de dentro da instrução if...then...else:

If rng.Cells(i) = "blablabla" Then

rng.Cells(i).EntireRow.Select

ActiveCell.Offset(0, 6).Select

ActiveCell.FormulaR1C1 = "=IF(R[1]C[-3]=RC[-3],R[1]C[-1],R[-1]C[-1])"

End If

i = i + 1

Quanto a sua pergunta, se há alguma outra forma de fazer o mesmo procedimento? Você poderia utilizar o seguinte código:

Sub Europeu2007()

Dim rng As Range

Set rng = Range("F1:F20000")

For Each c In rng

If c.Value = "blablabla" Then

Cells(c.Row, c.Column + 1).Value = "=IF(R[1]C[-3]=RC[-3],R[1]C[-1],R[-1]C[-1])"

End If

Next c

End Sub

Espero ter ajudado.

Um abraço,

Jorge

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×