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:  

Recommended Posts

Prezados,
bom dia,

Tenho uma nova dúvida, acredito que essa é mais fácil...

Preciso fazer uma lógica onde calcule 1 valor menos o valor seguinte, CASO a conta dar 0, ir na outra coluna de Status e marcar nas 2 linhas como "Ok", caso der diferente de 0, marcar como "erro"...

Vejam meu anexo, acredito que ficaria mais fácil o entendimento...

Lembro que há um tempo atrás me ajudaram com um problema parecido com o seguinte código:

 

Sub conciliar()
On Error Resume Next
Dim ul As Long
'inicio:
ul = Planilha1.Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To ul
conf1 = CStr(Cells(i, 7).Value & Cells(i, 8).Value)
For j = 2 To ul
If CStr(Cells(j, 7).Value & (Cells(j, 8).Value) * -1) = conf1 And Cells(j, 7).Row <> Cells(i, 7).Row Then
Cells(j, 2).EntireRow.Interior.Color = 65535
Cells(i, 2).EntireRow.Interior.Color = 65535
'GoTo inicio
End If
Next j
Next i
MsgBox "Conciliação realizada com Sucesso!", vbExclamation, "Sucesso!"
End Sub

Obrigado!

teste.xlsx

Compartilhar este post


Link para o post
Compartilhar em outros sites
Postado (editado)

Boa tarde,

 

Não sei se entendi direito o que você quer, mas você pode resolver seu problema com um "SE".

 

=SE(CÉLULA1-CÉLULA2=0;"Ok";"Erro")

 

Mais tarde, te mando como ficaria em vba

Editado por R0DR1G0_CWB
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas se você verificar o arquivo dos valores até o final, vão ter casos que tem mais positivos que negativos... 

A ideia é que depois de rodar a macro, tudo que estiver com status Ok, a soma da coluna dar zero

 

Veja como consegui fazer até agr por macro... 

 

Consegue me ajudar a corrigir ?

teste.zip

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não vejo problemas na sua macro, para o propósito dela está funcionando perfeitamente.

 

Em questão da soma não tem como dar zero mesmo, pois quando você somar por exemplo -2 +2 dá 0... mas se você somar -2 + -2 o resultado será o -4, ou seja para a soma da coluna igualar a 0, será necessário tratar boa parte dos valores.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia,

 

na verdade não, segue o código que realmente me ajudou.

 

Sub Status()
Dim ul As Long
inicio:
ul = Planilha1.Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To ul
If Planilha1.Range("B" & i) <> "OK" And Planilha1.Range("A" & i).Value = Planilha1.Range("A" & i + 1).Value * -1 Then
Planilha1.Range("B" & i).Value = "OK"
Planilha1.Range("B" & i + 1).Value = "OK"
End If
Next i
For i = 2 To ul
If Planilha1.Range("B" & i).Value = "" Then
Planilha1.Range("B" & i).Value = "Erro"
End If
Next i
End Sub

Mesmo assim, obrigado pela ajuda cara!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos, bom dia,

Eu havia marcado esse tópico como resolvido, porém analisando de novo a planilha, me deparei que ainda constam valores que deveriam estar com o status 'OK' mas não ficaram... É como se o código só faz o calculo quando há um número positivo seguido de um negativo, quando há por exemplo, dez números positivos e depois de outros números aleatórios terem esses mesmos 10 números negativos, ele não altera o status deles...

 

Vejam meu anexo por favor...

 

Alguém consegue me ajudar ?

teste.zip

adicionado 7 minutos depois

Em uma outra época, um amigo fez um código em vba para mim, onde conciliava valores que se repetiam na mesma coluna, por exemplo, há 10 valores positivos e 10 valores negativos, dai essa macro ela pintava todos os 20 valores de uma cor específica....

 

Não sei se daria para adptar esse código para minha nova necessidade...

Segue:

Sub conciliar()
On Error Resume Next
Dim ul As Long
'inicio:
ul = Planilha1.Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To ul
conf1 = CStr(Cells(i, 7).Value & Cells(i, 8).Value)
For j = 2 To ul
If CStr(Cells(j, 7).Value & (Cells(j, 8).Value) * -1) = conf1 And Cells(j, 7).Row <> Cells(i, 7).Row Then
Cells(j, 2).EntireRow.Interior.Color = 65535
Cells(i, 2).EntireRow.Interior.Color = 65535
'GoTo inicio
End If
Next j
Next i
MsgBox "Conciliação realizada com Sucesso!", vbExclamation, "Sucesso!"
End Sub

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@R0DR1G0_CWB

Fala cara, beleza? 

 

Eu testei o seu código, ele praticamente da o mesmo 'erro'... Veja meu anexo, se você pegar por exemplo, depois de rodar a macro do status, o valor 12,5... Vai encontrar alguns valores desse negativo mas cade o positivo ?

 

A ideia é deixar com o status OK, somente os números que se cruzam, ou seja, esses que estão com ok, na verdade deveriam estar com erro...

Fazendo essa conciliação no olho, verifiquei que o número de Errados é de 178, ou seja, são alguns que estão com 'ok' mas que na verdade deveriam estar como 'erro' também...

Pasta1.zip

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Rodrigo!

Obrigado pelo retorno até aqui!

 

Verificando com o resultado que foi feito na mão, alguns pequenos valores não entraram na macro, fiz alguns testes na planilha 2, verifique meu anexo por favor...

 

A soma da coluna Erro teria que dar: 169.573,43

 

Obrigado!!

image.png

Teste versão Feito.zip

Compartilhar este post


Link para o post
Compartilhar em outros sites

Corrigindo, sua resposta acima estava certa!

 

OBRIGADO!

 

RESOLVIDO!

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

×