Página 1 de 1

Linha de corte da Tabela

Enviado: 09 Set 2019 às 12:54
por SandroLima
Boa tarde, colegas forumeiros.

Estou precisando de uma solução em VBA para localizar a "linha de corte" de uma tabela.

No caso do exemplo em anexo a linha de corte seria dada por:
Total de linhas da tabela - (soma da quantidade de células que apresentam cor de preenchimentoda coluna [Data] e da coluna [Registro]) - (a quantidade de linhas em que as duas colunas possuem células com cor de preenchimento - interseção).

No caso desse exemplo a linha de corte corresponderia à linha do registro 39 da tabela.

Como eu chegaria a esse resultado?

Re: Linha de corte da Tabela

Enviado: 09 Set 2019 às 16:14
por SandroLima
Corrigindo a conta da msg anterior:

Linha de Corte = Total de linhas da tabela - (soma da quantidade de células com cor de preenchimento da coluna [Data] e da coluna [Registro]) - (a quantidade de linhas em que as duas colunas possuem células com cor de preenchimento, ou seja, interseção entre as duas colunas)

Obrigado a quem puder ajudar.

Linha de corte da Tabela

Enviado: 09 Set 2019 às 16:23
por eduardogrigull
Só não consegui entender direito. Todas os registros estão preenchidos, assim como as datas... Tente explicar melhor, eu nao faco a minima ideia do que se trata, e de qual data voce está falando, assim como nao entendo o que queres dizer com "Soma da qtd de células com preenchimento", sendo que todas elas tem um preenchimento!

Linha de corte da Tabela

Enviado: 09 Set 2019 às 17:05
por SandroLima
Cor de preenchimento

Re: Linha de corte da Tabela

Enviado: 10 Set 2019 às 12:01
por SandroLima
Bom dia.

Alguém saberia a maneira de proceder nesse caso?

Linha de corte da Tabela

Enviado: 10 Set 2019 às 13:22
por eduardogrigull
Eu até queria ajudar, mas desisti pq voce não explicou o que eu queria saber. Em nenhuma das dezenas de vezes que tentei, consegui chegar ao resultado da linha 39. Provavelmente os outros que analisaram o arquivo tbm não entenderam. :|

Re: Linha de corte da Tabela

Enviado: 10 Set 2019 às 16:16
por SandroLima
Mas tentei explicar da melhor maneira possível.

A linha de corte seria a primeira linha em que não houvesse cor de preenchimento nas colunas Registro e Data da tabela.

A linha de corte corresponde à linha cujo valor da célula da coluna Registro é 39.

Re: Linha de corte da Tabela

Enviado: 10 Set 2019 às 18:28
por eduardogrigull
Se eu entendi direito, está funcionando...
Código: Selecionar todos
Sub LinhadeCorte()
    
Dim UltimaLinha As Variant
Dim LinhaCorte As Integer

'Ultima linha da tabela, se quiser, pode digitar manualmente, esta autmatico
UltimaLinha = wshAtivDiarias.Cells(wshAtivDiarias.Rows.Count, 2).End(xlUp).Row

'Loop
For i = 15 To UltimaLinha
    
    'Verificar a cor da formatacao condicional
    If wshAtivDiarias.Cells(i, 2).DisplayFormat.Interior.Color = 16777215 Or wshAtivDiarias.Cells(i, 2).DisplayFormat.Interior.Color = 15917529 Then
        If wshAtivDiarias.Cells(i, 4).DisplayFormat.Interior.Color = 16777215 Or wshAtivDiarias.Cells(i, 4).DisplayFormat.Interior.Color = 15917529 Then
            
            '=Primeira linha sem formatacao condicional
            LinhaCorte = i                              'Linha na planilha
            MsgBox "A linha de corte é: " & wshAtivDiarias.Cells(i, 2).Value
            Exit Sub
        
        End If
    End If
Next
 
End Sub
Faca uns testes, eu programei pra ele avisar qual a primeira linha sem preenchimento, das colunas código e data... está acusando a linha 46, que contém o valor "39"