Na planilha Excel, como converter o formato de data de uma célula em formato geral quando seu valor é alterado de data para texto (ou número)?

3

Eu acho isso muito estranho na folha de excel (ou pode ser apenas eu), por padrão, todas as CELLS na planilha excel estão no formato GERAL (G) e quando eu inserir valor de data (01/01/2012) em uma célula o formato é alterado para data (D4), que é perfeito. Mas quando eu altero de volta o valor para algum valor de texto (por exemplo: trem), o formato não muda para o formato geral (ou formato de texto), ele ainda permanece como formato de data (D4).

Devo ativar qualquer configuração no meu Excel para alterar o formato de data para geral quando o valor de uma célula é alterado de data para texto?

qualquer ajuda será muito apreciada.

    
por rookie_developer 20.07.2012 / 23:20

3 respostas

1

Não, você não pode fazer isso. É uma coisa única.

    
por 21.07.2012 / 01:14
1

Já considerou isto em vez ?

Altere o NumberFormat em inserindo uma célula para NumberFormat "Geral" toda vez.

(Você teria que inserir a célula no modo de edição para alterar de uma data para o texto de qualquer maneira, por isso não é significativamente diferente)

Em vez de verificar o formato quando você está deixando a célula.

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    ActiveCell.NumberFormat = "General"
End Sub

É claro que isso pode criar outros problemas com outras células que você não quer como "Geral", mas você pode excluir intervalos facilmente, testando ...

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If ActiveCell.Column <> 4 Then
      ActiveCell.NumberFormat = "General"
    End If
End Sub

Quando você insere uma data em um ActiveCell, o Excel ainda o converterá em formato de data na sua saída, mas porque é um formato "Geral" para começar com um número de série não convertido em uma data, o que parece seja o problema que você tem agora.

A maior desvantagem é que a seleção de uma data existente irá convertê-la para "Geral", mas, enquanto estiver na célula, você pode clicar com o botão direito do mouse e formatá-la como data, se tiver esquecido de ver a data antes de sair.

Se você ainda quiser explorar a formatação da célula ao sair dela, tente também

Armazene o ActiveCell atual como uma variável Pública em um módulo para que, quando você o deixar, você possa usá-lo para verificar se é um formato de data

A função Cell pode ser a maneira mais fácil de testar um formato de data

aCell = Application.Evaluate("=CELL(""format""," & previousCell & ")")
If Left(aCell, 1) <> "D" Then previouseCell.NumberFormat = "General"
    
por 21.07.2012 / 10:42
0

Você também pode usar esta função de planilha:

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not IsNumeric(Target.Value) And Not IsDate(Target.Value) Then
    Target.NumberFormat = "General"
  End If
End Sub

Se o valor for uma string, o formato geral será definido.

    
por 25.07.2012 / 16:44