Notifications
Clear all

Ordem alfabética, aniversário e mÊs

8 Posts
3 Usuários
0 Reactions
1,978 Visualizações
(@barbozams)
Posts: 50
Trusted Member
Topic starter
 

Galera do fórum,
aqui mesmo no site consegui com ajuda de vários participantes do fórum chegar até aqui. Só que quando eu insiro um nome dá os seguinte problemas e gostaria de saber como resolver se é que é possível.
1 - Quando insiro um nome automaticamente este nome vai em ordem alfabética corretamente. Mas se eu tiver que acrescentar algo no nome por esquecimento, ele entra no modo de depuração e como não sei bem está área não sei o que fazer.
2 - No campo ANIVERSÁRIO, formatei a coluna toda como data no formato "12/04/17", só que quando a linha acima com o nome é inserido, a formatação fica em outro formato que os senhores poderão observar.
3 - No campo MÊS, copiei a fórmula para todas as células da coluna "=MÊS(G2)" para mim obter o número do mês. Só que ao ser acrescentado a linha do novo cliente, a fórmula não vai junto e sou obrigado a corrigir manualmente.
Me desculpem este tanto de questionamento mas, só posso contar com quem sabe.
Grato

 
Postado : 18/04/2017 7:46 pm
(@jpedro)
Posts: 111
Estimable Member
 

Barboza,

Segue planilha com os ajustes.

1-Alterei o modo de localizar o último nome inserido após a classificação. Não terá mais o erro após editar um nome já inserido;
2-Fiz um teste e o formato da data permaneceu. Mas de qualquer forma inseri uma linha de código para formatar automaticamente a cada nome inserido. Com isso também não terá mais problema;
3-Quanto à fórmula no campo MÊS, não precisará mais dela. Inseri um comando que após vc inseri a data de aniversário, o número do mês retornará na coluna do mês.

Qlq coisa, é só falar.

Abs!

 
Postado : 18/04/2017 9:06 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Uma outra possibilidade

Private Sub Worksheet_Change(ByVal Target As Range)
Dim LR As Long

If Target.Count > 1 Then Exit Sub
If Target.Column <> 1 Then Exit Sub 'Altere o número da coluna para classificar os dados

LR = Cells(Rows.Count, "A").End(xlUp).Row

If Range("B" & Target.Row) = "" Then
    Range("$A$2:$I" & LR).Sort Key1:=Range("$A$2")
    Range("B2:B" & LR).SpecialCells(xlCellTypeBlanks).Select
    Range("H2:H" & LR).FormulaR1C1 = "=MONTH(RC[-1])"
    Range("G2:G" & LR).NumberFormat = "dd/mm/yy;@"
Else
    Range("$A$2:$I" & LR).Sort Key1:=Range("$A$2")
End If
End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/04/2017 6:20 am
(@barbozams)
Posts: 50
Trusted Member
Topic starter
 

JPedro,
desculpe porque ficou faltando dados na planilha, onde os setores são cópias idênticas da aba "Cadastro".
Observe que no campo aniversário, onde deveria estar no formato "dd/mm/aa", aparece um número representando esta formatação.
Aqui fica a pergunta: Tenho que formatar toda a coluna através da opção formatar célula e colocar neste formato, ou seja, "dd/mm/aa" ?
Outro questionamento: Tem como eu usar somente o formato "dd/mm" ?
Grato

 
Postado : 19/04/2017 5:38 pm
(@jpedro)
Posts: 111
Estimable Member
 

Olá Barboza

Quando eu abro aqui o formato da data aniversário aparece certinho, ou seja, "dd/mm/aa". Nas "abas" dos setores não tem a data...
Bom para inseri o formato "dd/mm" na plan basta vc alterar o código anterior para Sheets("Cadastro").Columns("G:G").NumberFormat = "dd/mm". Caso queira fazer isso em outras "abas" é só incluir o mesmo código e alterar o nome da plan e, se for o caso, a coluna.

Vlw!

 
Postado : 20/04/2017 4:52 pm
(@barbozams)
Posts: 50
Trusted Member
Topic starter
 

JPedro, boa noite!
Acontece que eu conservei o mesmo nome da planilha. Favor baixe a planilha onde eu fiz o questionamento que você verá no setores as datas de aniversário como citei acima.
Desculpe o transtorno.
Att.
Barbozams

 
Postado : 20/04/2017 5:59 pm
(@jpedro)
Posts: 111
Estimable Member
 

Substitua o código que está na planilha cadastro pelo código abaixo.

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Columns("G:G").NumberFormat = "dd/mm"
Sheets("Setor1").Columns("G:G").NumberFormat = "dd/mm"
Sheets("Setor2").Columns("G:G").NumberFormat = "dd/mm"
Sheets("Setor3").Columns("G:G").NumberFormat = "dd/mm"
v = Target.Value
If Target.Count > 1 Then Exit Sub
If Target.Column <> 1 Then GoTo MES
Dim LR As Long
LR = Cells(Rows.Count, "A").End(xlUp).Row
Range("$A$2:$I" & LR).Sort Key1:=Range("$A$2")

With ActiveSheet.Range("A1:A10000")
    Set c = .Find(v, LookIn:=xlValues)
    If Not c Is Nothing Then
    c.Offset(0, 1).Select
    End If
End With

MES:
If Target.Column <> 7 Then Exit Sub
Target.Offset(0, 1) = Format(v, "mm") 'alterando para Format(v, "mmm") o mês fica assim: jan, fev, etc...

End Sub

Acho que resolverá.

Obs.: As planilhas dos setores podem ser preenchidas através de macro também. Mas aí é para outro tópico...rs.

Abs!

 
Postado : 20/04/2017 6:35 pm
(@barbozams)
Posts: 50
Trusted Member
Topic starter
 

JPedro,
muito obrigado pela atenção e ficou do jeito que eu precisava.
Att.:
Barbozams

 
Postado : 20/04/2017 6:42 pm