Notifications
Clear all

CONT.SES NÃO CONTA AUTOMATICAMENTE

8 Posts
3 Usuários
0 Reactions
2,267 Visualizações
(@vfjunior)
Posts: 4
New Member
Topic starter
 

Bom dia.

Leigo no assunto aqui!
Estou com uma planilha onde cadastro, para um mesmo item, 5 'FA' diferentes com suas respectivas datas de cadastro.

Na mesma planilha preciso contar cada um desses erros dependendo do range das datas que eu escolho.

No entanto a célula com a fórmula CONT.SES não conta automaticamente, estou tendo que ir na aba onde tenho a relação de 'FA' e datas e dar um ENTER na célula onde tenho a data, ai sim ele calcula e computa esse erro na planilha de contagem.

No caso do exemplo que segue era pra contar 1 de cada FA. Mas ele só conta a partir do momento que clico na célula da data ao lado do FA e dou um ENTER.

Desde já agradeço a ajuda da comunidade!

Valter Junior.

 
Postado : 21/09/2018 7:00 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Nem mesmo as imagens consigo "ver". :mrgreen: :?:
Muito provavelmente seu campo data está como texto e não data; visualmente são iguais, mas data e armazenada como numero, somente assim a função ira reconhece-la como data valida. Verifique a origem do cadastramento/recebimento dessa "data" e efetue a correção.

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

 
Postado : 21/09/2018 7:07 am
(@vfjunior)
Posts: 4
New Member
Topic starter
 

Reinaldo

Seguem as IMAGENS, acho que agora da pra ver:


Fiz essa verificação sobre o formato das células, e ambas estão como DATA. O estranho é que quando clico em F3 por exemplo (sem alterar nada nela) e dou ENTER, ele calcula e abastece a célula com a formula CONT.SES.

Desde já agradeço a colaboração!
Valter Junior

 
Postado : 21/09/2018 7:26 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Não é a formatação da celula,mas sim o "valor" contido nela. Antes de editar essas celulas, formate a coluna como numero e veja o que ocorre; nas celulas que forem reconhecidas como data será apresentado o numero (hoje 21/09/2018 será mostrado 43364), as que continuarem no padrão DD/MM/AAAA são consideradas como texto.
Infelizmente pela imagem não dá para ver o conteudo.
Se utiliza um formulário para incluir/cadastrar essas datas, esse e uma condição recorrente há inúmeros tópicos no fórum sobre essa "peculiaridade, e necessário na hora de gravar na planilha efetuar a conversão normalmente --> Suacelula.value=cDate(seuTexTComdata).

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

 
Postado : 21/09/2018 10:00 am
(@spanta)
Posts: 38
Eminent Member
 

VFJunior ,

Pode ser que que no seu Excel foi aplicada a configuração para calcular manual

Vá na aba Fórmulas => Na extrema direita clique no botão "Opções de cálculo" => Se não estiver na opção "Automático" então aplique

 
Postado : 23/09/2018 5:22 pm
(@vfjunior)
Posts: 4
New Member
Topic starter
 

Reinaldo

Reinaldo, aparentemente deu certo. No entanto o 'cDate' não aceita 'txt' vazios.

Private Sub cmdadc_Click()

Dim rang As Range

Set rang = Range("B1:B1000")
Dim rangCel As Range
Dim regExiste As Boolean
regExiste = False
For Each rangCel In rang.Cells
If rangCel.Value = txtserial.Text Then
    regExiste = True
End If
Next
If regExiste = True Then

Range("B3").Select

Do While ActiveCell <> ""

If txtserial.Value = ActiveCell Then

ActiveCell.Offset(0, 1).Value = cbmod
ActiveCell.Offset(0, 2).Value = cbcor
ActiveCell.Offset(0, 4).Value = CDate(txtdata)
ActiveCell.Offset(0, 6).Value = CDate(txtdata2)
ActiveCell.Offset(0, 8).Value = CDate(txtdata3)
ActiveCell.Offset(0, 10).Value = CDate(txtdata4)
ActiveCell.Offset(0, 12).Value = CDate(txtdata5)
ActiveCell.Offset(0, 3).Value = cbdef1
ActiveCell.Offset(0, 5).Value = cbdef2
ActiveCell.Offset(0, 7).Value = cbdef3
ActiveCell.Offset(0, 9).Value = cbdef4
ActiveCell.Offset(0, 11).Value = cbdef5
ActiveCell.Offset(0, 9).Value = txtobs


End If

ActiveCell.Offset(1, 0).Activate


Loop
MsgBox "ALTERADO COM SUCESSO!", vbInformation


Exit Sub
Else
If txtserial = "" Or cbmod = "" Then
MsgBox "PREENCHER TODOS OS CAMPOS com (*)", vbExclamation, "CAMPO VAZIO"
txtserial.SetFocus

Else:

'Ativar a primeira planilha
ThisWorkbook.Worksheets("DEFEITOS").Activate

Dim ultimalinha As Long

ultimalinha = Cells(Rows.Count, 2).End(xlUp).Row + 1


Worksheets(1).Range("B" & ultimalinha).Value = UserForm1.txtserial
Worksheets(1).Range("C" & ultimalinha).Value = UserForm1.cbmod
Worksheets(1).Range("D" & ultimalinha).Value = UserForm1.cbcor
Worksheets(1).Range("F" & ultimalinha).Value = CDate(UserForm1.txtdata)
Worksheets(1).Range("H" & ultimalinha).Value = CDate(UserForm1.txtdata2)
Worksheets(1).Range("J" & ultimalinha).Value = CDate(UserForm1.txtdata3)
Worksheets(1).Range("L" & ultimalinha).Value = CDate(UserForm1.txtdata4)
Worksheets(1).Range("N" & ultimalinha).Value = CDate(UserForm1.txtdata5)
Worksheets(1).Range("E" & ultimalinha).Value = UserForm1.cbdef1
Worksheets(1).Range("G" & ultimalinha).Value = UserForm1.cbdef2
Worksheets(1).Range("I" & ultimalinha).Value = UserForm1.cbdef3
Worksheets(1).Range("K" & ultimalinha).Value = UserForm1.cbdef4
Worksheets(1).Range("M" & ultimalinha).Value = UserForm1.cbdef5
Worksheets(1).Range("O" & ultimalinha).Value = UserForm1.txtobs

MsgBox "CADASTRADO COM SUCESSO!", vbInformation, "Cadastrado"
     

End If
End If
End Sub

Nesse código existem momentos em que não preencho todas as datas (txtdata2, 3, 4, 5), precisava contornar esse erro caso precise deixar uma célula vazia. Como faço isso?

Desde já agradeço a colaboração!
Valter Junior

 
Postado : 24/09/2018 12:48 pm
(@spanta)
Posts: 38
Eminent Member
 

Olá VFJunior,

Coloque o comando IsDate(txtdata)

Ficaria assim:

IF IsDate(txtdata) then
ActiveCell.Offset(0, 4).Value = CDate(txtdata)
else
ActiveCell.Offset(0, 4).Value = ""
end if

 
Postado : 24/09/2018 3:35 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Sendo "apenas" erro quando do TextBox vazio; é possivel utilizar conforme o colega Spanta sugeriu ou

If txtdata.text <> "" then ActiveCell.Offset(0, 4).Value = CDate(txtdata)

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

 
Postado : 25/09/2018 4:02 am