Notifications
Clear all

atualizar tabela

6 Posts
2 Usuários
0 Reactions
1,544 Visualizações
(@wellcome)
Posts: 3
Active Member
Topic starter
 

bom dia pessoal , tentei muito e não conseguir ...
eu tenho uma tabela com duas colunas
coluna data e status...
onde o status eu coloco em aberto , pago ou atrasado...
eu estou tentado fazer o seguinte : uma macro que procura uma data menor que atual e mude o status de em aberto para atrasado. automaticamente.. o status pago não deve ser alterado.

 
Postado : 14/10/2012 1:15 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Use a pesquisa do fórum.

A macro e´a única opção??

Poste seu arquivo compactado!!!

Att

 
Postado : 14/10/2012 5:52 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia Welington

Uma sugestão:

Em vez de 2 colunas, utilize 3 colunas, sendo uma para colocar a data do pagamento.
Assim fica fácil fazedo uma fórmula que considera pago quando tem a data do pagamento; considera aberto, quando ainda não venceu e atrasado quando a data for menor que a atual.

Baixe o exemplo que eu fiz:

Dê retorno.

Um abraço.

 
Postado : 14/10/2012 6:37 am
(@wellcome)
Posts: 3
Active Member
Topic starter
 

obrigado pela atenção de vocês ...
eu ja havia feito da maneira que vcs colocarar com tres colunas e até com formatação condicional , mas não atendeu minha exigencias...
então quebrei um pouco mais a cachola e consegui...
ficou assim...

Sub altera_status()
Dim recebe_data As Date
Dim recebe_status As String
Dim i As Integer
Dim Linha As Long
Dim total As Long

Linha = 2

recebe_data = CDate(Proventos.Cells.Range("k1").Value) 'o valor setado aqui e da celula k1 com a formula hoje()
recebe_status = "em aberto"
' onde o recebe_data recebe a data do sistema e o recebe_status recebe o valor da (coluna status)..isso na mesma linha...
'ai vem a segunda parte...
For i = 1 To Proventos.Cells(Rows.Count, 1).End(xlUp).Row
If Proventos.Cells(i, 2) < recebe_data And Proventos.Cells(i, 7) = recebe_status Then
'ele vai setar a celula atrasada em relação ao sistema e que contenha a palavra "em aberto"
Proventos.Cells(Linha, 7).Value = "atrasado" ' depois de setado e feita a troca
Linha = Linha + 1 ' vai pra proxima linha
End If 'ThisWorkbook.Worksheets("menu").Range("c1").Value = Data2
Next i ' faz enquanto houver dia atrasado e em aberto..
End Sub
Coloquei aqui porque talvez sirva para mais alguem...

 
Postado : 14/10/2012 12:13 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Se me permite um aparte; da maneira que está não irá "colocar" a informação como deveria.
Se o primeiro atraso ocorrer na em i=3 (por exemplo) vc irá alterar a celula em linha=2

Sub altera_status()
Dim recebe_data As Date
Dim recebe_status As String
Dim i As Integer
Dim total As Long

recebe_data = CDate(Proventos.Cells.Range("k1").Value) 'o valor setado aqui e da celula k1 com a formula hoje()
recebe_status = "em aberto"

' onde o recebe_data recebe a data do sistema e o recebe_status recebe o valor da (coluna status)..isso na mesma linha...
'ai vem a segunda parte...
'Comece em 2 pois a primeira linha e cabecalho
For i = 2 To Proventos.Cells(Rows.Count, 1).End(xlUp).Row
If Proventos.Cells(i, 2) < recebe_data And Proventos.Cells(i, 7) = recebe_status Then
'ele vai setar a celula atrasada em relação ao sistema e que contenha a palavra "em aberto"
Proventos.Cells(i, 7).Value = "atrasado" ' depois de setado e feita a troca
End If 
Next i ' faz enquanto houver dia atrasado e em aberto..
End Sub
 
Postado : 14/10/2012 12:58 pm
(@wellcome)
Posts: 3
Active Member
Topic starter
 

Bom dia eu estava usando o codigo para atualizar status mas descobrir um erro , so atualizava ate uma certa celula...
corrigi o erro e ta funcional...

 
Postado : 23/10/2012 10:36 am