Ir ao conteúdo

Posts recomendados

Postado

Oi galera,

Bom dia.

 

Estou montando uma planilha onde tenho algumas atividades para serem realizadas e o status de cada uma delas que pode ser: "Pendente", "Em Andamento" e "Concluído".

Preciso encaminhar todos os dias um quadro com as atividades que estão pendentes e em andamento e por essa razão queria ajuda.

A minha ideia era que o quadro conseguisse puxar automaticamente da tabela as informações, ou seja, ele faria uma busca na tabela, encontraria as atividades que estão como pendente e em andamento, levaria o campo "atividade" para o quadro (este campo será a descrição da atividade) e ai pintaria a célula com a cor correspondente (amarelo para pendente e azul para em andamento).

Eu tentei fazer, mas não consegui, pois quero que ele busque as informações e na pesquisa que eu montei ele passa de célula em célula e ai o quadro fica com algumas linhas vazias por conta das células que estão com o status concluído. O que eu desejo é que a busca ignore os concluídos e vá colocando no quadro, linha após linhas, aqueles que estão pendentes e se for possível, quando a tabela for atualizada ele tire do quadro a atividade concluída e na mesma célula ele busque o próximo pendente e preencha.

Alguém consegue me auxiliar?

Obrigada!

TESTE_FORMATAÇÃO.xlsx

  • Membro VIP
Postado

@Ma  Depende.... o Excel não irá pensar sozinho sem números.

 

Depende de como os dados estão dispostos. Qual a diferença, além da óbvia, entre a atividade pendente, da "em andamento" e concluída? a quantidade de dias?

 

Tu mesmo podes fazer um auto-filtro, bastanto selecionar a primeira linha, e em "dados" selecione auto-filtro. Daí tu filtras os dados que não queres...

 

Agora a formatação condicional tu terás de dar dados para ela...

 

Por exemplo:

 

Coluna A  || Coluna B || Coluna C || Coluna D

pendente --

 --                andamento

                                      Concluído

 

Daí tu crias a seguinte regra: Se valor da cédula C = concluído - retornar "concluído" em verde

Se valor da Cédula B=andamento - retornar andamento em amarelo

Sevalor da cédula A=pendente - retornar pendente, em vermelho

 

 

Se soubermos como são os dados, ou pelo menos, o que distingue uma situação de outra, ficaria mais fácil

 

Por exemplo, eu tenho uma fórmula que conta 60 dias, a partir de hoje. Se faltar mais de 60 dias, retorna "OK" em verde.

 

Se faltar 45~60 retorna "Atenção' em amarelo

 

Se faltar menos de 45, retorna "Enviar" em vermelho

Postado

@Basole Muito obrigada!
Deixa eu só te fazer uma pergunta
Se eu tiver mais planilhas para fazer essa consulta, ou seja, se ele tiver que buscar as informações de mais de uma planilha, também é possível né?

Postado

@Basole Entendi, estou tentando fazer as mudanças, porque na outra planilha que vou rodar o código ela terá que puxar de mais abas.

Outro ponto é que eu inseri um novo módulo no código para colocar o código, mas ele não está executando.

@Basole Obrigada mais uma vez! :) 

Postado

Só uma duvida: 

voce quer que a aba "Diario de bordo", "puxe" e atualize as informações das abas (alias de todas as Abas que tiverem tabelas) .

 

Postado

@Basole Exatamente isso.
Estou mandando a planilha certa agora com todas as abas que vão ter informações para serem puxadas para o diário de bordo.
Você vai notar de na aba "diário de bordo" dessa planilha tem um cabeçalho com o nome das planilhas e ai em cada uma das colunas eu preciso buscar a informação necessária na respectiva aba (informações pendentes e em andamento).
A coluna com a informação que eu preciso esta com "xxxx" em cada uma das abas.

 

Obrigada de novo.

 

Postado

Muito obrigada @Basole !!
O estranho é que eu inclui o comando em outra planilha onde estava o resto do código e apesar das abas serem as mesmas o código dá um erro de execução.

Estou incluindo dessa vez a planilha com todo o código que eu estou montando e que inclusive você tem me ajudado bastante. Obrigada de novo :)

A parte da pesquisa também, não está puxando de outros campos, além do txtID, o que eu acho estranho também porque eu reescrevi e o código aparentemente está correto.

Acredito que eu esteja comendo bola em alguma parte.

Planilha Completa

Postado
Citação

O estranho é que eu inclui o comando em outra planilha onde estava o resto do código e apesar das abas serem as mesmas o código dá um erro de execução.

O errro é porque voce incluiu alem das abas da planilha anterior a aba Entrada

O outro erro que encontrei é na quando da o duplo click no listbox e carrega os txtObs. -> o error é porque o listbox so suporta 10 colunas e no caso é a 11º 

P/ diblar este error eu alterei a macro p/ buscar este campo direto na planilha e nao no campo 11 da listbox:

 

Set rng = Sheets("Auditoria").Columns(1).Find(ListBox1.List(ListBox1.ListIndex, 0))
If Not rng Is Nothing Then
Me.txtObs = rng.Offset(, 10).Value

 

Qual (s) outros erros que voce detectou ? 

Postado

@Basole Obrigada!
O que eu mencionei é que não consigo fazer a busca por outros campos além do txtID.

Alterando o código conforme você disse, isso irá ajustar também?

Postado

@Basole Outra coisa que eu percebi é que quando ele faz aquela busca de pendente e em andamento e pinda as células no Diário de Bordo, ele está pintando a linha toda. Não tem como pintar só a célula da coluna referente? Por exemplo: tenho uma informação pendente na aba de auditoria, ai ela ficará em amarelo no diário de bordo, só na coluna de auditoria. 

Postado

@Ma fiz as alteracoes que pediu e agora esta pintando somente a celula que contem os dados na aba diario de bordo.

   

Na pesquisa pelo formulario o frmAuditoria, eu fiz as alteraçoes e agora esta pesquisando pelos outros campos, então [e so seguir este form como exemplo para alterar nos outros. 

E tb. corrigi o erro que aparecia no duplo click no listbox.

Não pude fazer mais teste.

Veja se esta de acordo.

 

vba_TESTE.xlsm

  • 3 semanas depois...
Postado

@Basole  Tudo bem?

 

Queria te pedir uma ajuda...
No código abaixo que você me ajudou a construir, acrescentei  2 novas abas "CEI" e "CUBOSAS", porém elas não estão sendo atualizadas automaticamente no diário de bordo como as outras.

Poderia dar uma olhada no código, por favor?

 

Function Atualiza_Quadro_Formata() '(rng As Range)
' ****** Funcao que "puxa" as informações das abas p/ a aba Diario de Borde e formata(color) as linhas de acordo c/ o status *****

Dim c As Range, rng As Range
Dim ws2 As Worksheet
Dim ws1 As Worksheet
Dim i As Long, uL As Long
Dim WS_Count As Integer
Dim y As Integer
Dim X As Long, XD As Long, XDB As Long

Application.ScreenUpdating = False

On Error GoTo Erro
i = 8 ' Nº da 1ª linha da aba Diario de bordo que recebera dados

      WS_Count = ActiveWorkbook.Worksheets.Count  'Define a qtd total de Planilhas (abas)
     
      Set ws2 = Sheets("diário de bordo")
      Set ws1 = ActiveSheet

With ws2

      uL = .Range("A8").CurrentRegion.Rows.Count
           .Range(.Cells(i, 1), .Cells(uL + 1, 8)).ClearContents ' Limpa os dados da aba diario de bordo
           .Range(.Cells(i, 1), .Cells(uL + 1, 8)).Interior.ColorIndex = xlColorIndexNone 'Limpa formatacao (color) do intervalo da aba diario de bordo
       
For y = 1 To WS_Count
        
      If Sheets(y).Name <> "Diário de Bordo" And Sheets(y).Name <> "Entrada" Then
          Sheets(y).Activate
       If ActiveSheet.Name = "Invs e Partic" Then X = 12: XD = 4: XDB = 4
       If ActiveSheet.Name = "Auditoria" Then X = 10: XD = 3: XDB = 1
       If ActiveSheet.Name = "Orgão Regulador" Then X = 9: XD = 3: XDB = 6
       If ActiveSheet.Name = "Jurídico" Then X = 6: XD = 3: XDB = 5
       If ActiveSheet.Name = "Demandas Internas" Then X = 11: XD = 4: XDB = 3
       If ActiveSheet.Name = "Caixa do SI" Then X = 11: XD = 4: XDB = 2
       If ActiveSheet.Name = "CEI" Then X = 7: XD = 4: XDB = 7
       If ActiveSheet.Name = "CUBOSAS" Then X = 8: XD = 6: XDB = 8
         
       uL = ActiveSheet.Cells(Rows.Count, X).End(xlUp).Row

       Set rng = Range(Cells(2, X), Cells(uL, X))

For Each c In rng

'       o uso de *(asterisco) -> permite que voce inseria -> Ex.: Pendente ou pendente
      If c Like "*endente" Or c Like "*m *ndamento" Then
      .Cells(i, XDB).Value = ActiveSheet.Cells(c.Row, XD).Value ' preenche os dados na aba diario de bordo

      If c Like "*endente" Then .Cells(i, XDB).Interior.ColorIndex = 44  ' preenche a formatacao(color ) laranja
      If c Like "*m *ndamento" Then .Cells(i, XDB).Interior.ColorIndex = 24 ' preenche a formatacao(color ) azul

       i = i + 1 ' define o nº da proxima linha (aba) diario de bordo

End If

Next

End If

Next
Application.ScreenUpdating = True
If MsgBox("Deseja visualizar a aba " & ws2.Name & " ?", vbQuestion + vbYesNo, "Aviso") = vbYes Then
.Activate
Else
ws1.Activate  ' Ativa a aba Que foi alterada
End If

End With

Exit Function

Erro: Application.ScreenUpdating = True
MsgBox Err.Description

End Function

 

Postado

@Ma tudo bem obrigado. 

 

Sem ver seu arquivo fica difícil analisar com exatidao, mas acredito que está faltando voce habilitar o evento Change das novas Planilhas (abas) criadas: 

De acordo com que voce passou acima...

Na aba "CEI"

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column = 7 Then
Atualiza_Quadro_Formata ' chama a funcao que está no modulo1
End If
End Sub

E na aba "CUBOSAS" :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column = 8 Then
Atualiza_Quadro_Formata ' chama a funcao que está no modulo1
End If
End Sub

 * Cole o codigo abaixo no modulo de cada aba..

Caso não de certo, envie sua planilha p/ meu email. 

 

  • mês depois...
Postado

@Basole Boa tarde...tudo bem?

Gostaria de saber se consegue me ajudar. Ainda estou mexendo na planilha que você me ajudou a montar e no painel de controle onde os status "em andamento" e "pendente" aparecem, toda vez que atualizo alguma informação nas outras planilhas, alguns registros desse painel duplicam.

Você tem ideia do que pode estar acontecendo?

Postado

Oi @Ma tudo bem e voce?

Eu preciso dar uma analisada.

Acho que ainda tenho uma copia da sua planilha, mas acho que nao tinha muitos dados.

Então se pudesse envia-la com os dados que estão causando a duplicidade.

* Caso nao possa expor os dados publicamente, me envie em mp

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

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

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!