Página 2 de 2

Re: Executar somente nas células Visíveis (Auto Filtro)

Enviado: Qui Fev 16, 2017 7:51 pm
por Mathmatic
sr. srobles,

resolveu o problema de o código ignorar a 1º nome da lista, mais uma vez ... parabéns.

mas, observei agora que o código não obedeceu mais o primeiro critério, que é de não considerar nomes sem repetição, ou seja, escrever "concluído" se tiver em primeiro critério mais de 1 ocorrência (obs: no código anterior estava funcionando).

por exemplo, o código não deveria ter escrito "concluído" para CARLOS e JOÃO, por serem nomes com 1 única ocorrência.

mas o código escreveu "concluído" para esses 2 nomes também.

Re: Executar somente nas células Visíveis (Auto Filtro)

Enviado: Qui Fev 16, 2017 8:06 pm
por srobles
Mathmatic,

Fiz outra alteração e dessa vez, nomes que não repetem não são validados. Favor teste e retorne.

Código: Selecionar todos

Sub validarDados()
    'Altere o nome da aba caso necessite
    With ThisWorkbook.Sheets("Plan1")
        .Activate
        Cells(2, "A").Select
       'Retornamos a ultima linha preenchida
        Dim ultimaLinha As Integer
        ultimaLinha = .UsedRange.Rows.Count
        'Laço For=> Next para verificar linha a linha
        For a = 2 To ultimaLinha
            Dim procItem As String
            Dim endereçoCelula As String
            Cells(a, "A").Select
            endereçoCelula = ActiveCell.AddressLocal
                    'Armazenamos o valor da celula ativa para verificarmos com as demais
                    procItem = Cells(a, "A")
                        'Laço For=>Next para compararmos a variável com as linhas subsequentes
                        For b = a To ultimaLinha
                            Cells(b, "A").Select
                            'Se o valor da variável for igual ao da célula atual
                            If Cells(a, "A") = Cells(b, "A") Then
                                If Cells(b, "D") = "Concluído" Then Exit For
                                'Se os valores da coluna B e C forem maiores que 0 (zero) e a linha estiver visivel
                                If Cells(b, "B") > 0 And Cells(b, "C") > 0 And Selection.EntireRow.Hidden = False And Selection.AddressLocal <> endereçoCelula Then
                                    'Adicionamos Concluído na coluna D
                                    Cells(b, "D") = "Concluído"
                                    Exit For
                                Else
                                End If
                            End If
                        Next
        Next
    End With
End Sub
Abs

Re: Executar somente nas células Visíveis (Auto Filtro)

Enviado: Qui Fev 16, 2017 8:49 pm
por Mathmatic
sr. srobles,

agora voltou a não considerar (não validar) denovo o 1º nome da lista.

obs1: tem uma planilha em anexo no inicio do tópico para fazer os testes.

obs2: aproveito para lebrá-lo que estou no aguardo de uma evolução do tópico:

viewtopic.php?f=20&t=5194

Re: Executar somente nas células Visíveis (Auto Filtro)

Enviado: Qui Fev 16, 2017 11:37 pm
por srobles
Mathmatic,

Cara, acho que dessa vez foi... :mrgreen:

Quanto ao tópico citado anteriormente, pensei (e errado :oops: ) que tivesse relação com este. Mas sem problemas, enviarei o código lá.

Favor, teste e retorne ok?

Abs

Re: [RESOLVIDO] Executar somente nas células Visíveis (Auto Filtro)

Enviado: Sex Fev 17, 2017 2:44 am
por Mathmatic
tópico [RESOLVIDO]

amigo srobles,

Perfeitíssimo .... meus sinceros Parabéns ..... funcionou para todos os critérios que citei durante o decorrer do tópico... parabéns mesmo !

quanto ao outro tópico ainda não analisei, assim que analisá-lo responderei lá no tópico.


até mais amigo.

Re: Executar somente nas células Visíveis (Auto Filtro)

Enviado: Sex Fev 17, 2017 10:38 am
por srobles
Mathmatic,

Que bom que atendeu suas necessidades. Confesso que essa demanda nunca havia enfrentado, e que foi um desafio, porém gostei muito.

Obrigado pela paciência e compreensão meu amigo.

Ok, passarei a monitorar o outro tópico e espero que consigamos êxito também.

Abs