MACRO PARA VALIDA?ÃO DOS DADOS
Bom dia
Preciso de uma macro que me de o resultado na linha da tarefa da coluna [Ô]H[Ô], informando o resultado 1 ou 2, a macro deverá cruzar as informações como:
1º Verificar se há lançamento anteriores da mesma equipe do lançamento atual;
2º Se há lançamento, verificar no último lançamento anterior do atual se há saldo na mesma linha da coluna [Ô]G[Ô], se há e se a data inicio da programação atual for igual da data de termino do último lançamento anterior do atual, o resultado deverá ser 1;
3º Caso no último lançamento anterior do atual não havendo saldo e se a data de inicio do lançamento atual for >= da data de inicio do último lançamento anterior do atual ou se a data de inicio do lançamento atual for <= a da data de termino do último lançamento anterior do atual, o resultado deverá ser 2;
EXEMPLO:
Tarefa1 OM01 01/08/15 a 05/08/15 saldo 0
Tarefa2 OM01 01/08/15 a 05/08/15 <<SALDO ANTERIOR = [Ô]0[Ô], E DATA DE INICIO ATUAL E = DA DATA DE INICIO ANTERIOR>><<RESULTADO 2>>
Tarefa1 OM01 01/08/15 a 05/08/15 saldo 0
Tarefa2 OM01 02/08/15 a 06/08/15 <<SALDO ANTERIOR = [Ô]0[Ô], E DATA DE INICIO ATUAL E > QUE A DATA DE INICIO ANTERIOR E <= A DATA DE TERMINO ANTERIOR>><<RESULTADO 2>>
Tarefa1 OM01 01/08/15 a 05/08/15 saldo 6
Tarefa2 OM01 05/08/15 a 06/08/15 <<SALDO ANTERIOR > [Ô]0[Ô], E DATA DE INICIO ATUAL E = QUE A DATA DE TERMINO ANTERIOR>><<RESULTADO 1>>
Tarefa1 OM01 01/08/15 a 05/08/15 saldo 6
Tarefa2 OM01 06/08/15 a 06/08/15 <<SALDO ANTERIOR > [Ô]0[Ô], E DATA DE INICIO ATUAL E > QUE A DATA DE TERMINO ANTERIOR>><<RESULTADO 1>>
Preciso de uma macro que me de o resultado na linha da tarefa da coluna [Ô]H[Ô], informando o resultado 1 ou 2, a macro deverá cruzar as informações como:
1º Verificar se há lançamento anteriores da mesma equipe do lançamento atual;
2º Se há lançamento, verificar no último lançamento anterior do atual se há saldo na mesma linha da coluna [Ô]G[Ô], se há e se a data inicio da programação atual for igual da data de termino do último lançamento anterior do atual, o resultado deverá ser 1;
3º Caso no último lançamento anterior do atual não havendo saldo e se a data de inicio do lançamento atual for >= da data de inicio do último lançamento anterior do atual ou se a data de inicio do lançamento atual for <= a da data de termino do último lançamento anterior do atual, o resultado deverá ser 2;
EXEMPLO:
Tarefa1 OM01 01/08/15 a 05/08/15 saldo 0
Tarefa2 OM01 01/08/15 a 05/08/15 <<SALDO ANTERIOR = [Ô]0[Ô], E DATA DE INICIO ATUAL E = DA DATA DE INICIO ANTERIOR>><<RESULTADO 2>>
Tarefa1 OM01 01/08/15 a 05/08/15 saldo 0
Tarefa2 OM01 02/08/15 a 06/08/15 <<SALDO ANTERIOR = [Ô]0[Ô], E DATA DE INICIO ATUAL E > QUE A DATA DE INICIO ANTERIOR E <= A DATA DE TERMINO ANTERIOR>><<RESULTADO 2>>
Tarefa1 OM01 01/08/15 a 05/08/15 saldo 6
Tarefa2 OM01 05/08/15 a 06/08/15 <<SALDO ANTERIOR > [Ô]0[Ô], E DATA DE INICIO ATUAL E = QUE A DATA DE TERMINO ANTERIOR>><<RESULTADO 1>>
Tarefa1 OM01 01/08/15 a 05/08/15 saldo 6
Tarefa2 OM01 06/08/15 a 06/08/15 <<SALDO ANTERIOR > [Ô]0[Ô], E DATA DE INICIO ATUAL E > QUE A DATA DE TERMINO ANTERIOR>><<RESULTADO 1>>
JSILVA,
Tenta montar algo em cima deste exemplo VBA para Excel:
Veja o que consegue fazer e qualquer dúvida eu te ajudo.
[][ô]s,
Tunusat.
Tenta montar algo em cima deste exemplo VBA para Excel:
Private Sub CommandButton1_Click()
Dim i As Long
Dim j As Long
Dim z As Long
Dim CompareRange1 As Variant
Dim CompareRange2 As Variant
Dim x As Variant
Dim y As Variant
Dim ValTOT As Integer
Dim vPlan1 As Plan1
Dim vPlan2 As Plan2
Set vPlan3 = Plan3
Set vPlan2 = Plan2
Set CompareRange1 = vPlan3.Range([Ô]A2:A1375[Ô])
Set CompareRange2 = vPlan2.Range([Ô]A2:A786[Ô])
i = 2
z = 2
For Each x In CompareRange1
j = 2
For Each y In CompareRange2
If x = y Then
ValTOT = vPlan3.Cells(i, 5).Value - vPlan2.Cells(j, 6).Value
If ValTOT > 0 Then
Cells(z, 1) = x
Cells(z, 2) = ValTOT
vPlan3.Range(vPlan3.Cells(i, 1), vPlan3.Cells(i, 5)).Interior.Color = 65535
vPlan2.Range(vPlan2.Cells(j, 1), vPlan2.Cells(j, 6)).Interior.Color = 65535
z = z + 1
End If
Exit For
Else
j = j + 1
End If
Next y
i = i + 1
Next x
End Sub
Veja o que consegue fazer e qualquer dúvida eu te ajudo.
[][ô]s,
Tunusat.
TUNUSAT boa noite desculpa por não responder antes, mas não entendi o código, pois você menciona a plan2 e plan 3, sendo que os dados estão na plan1, mas mesmo assim coloquei um botão e nada aconteceu.
grato.
grato.
Faça seu login para responder