Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
  • Avatar do usuário
Por enunes
Posts
#45798
Bom dia Senhores,

Preciso criar uma macro para que em determinada coluna os valores que estão como data e hora sejam alteradas somente para data. Porém não só formatação, pois alimenta tabela dinâmica e na tabela a hora seria mostrada. Fiz uma macro selecionando a coluna e localizando e alterando os valores, porém desta forma só aceita a data que digito.

Haveria alguma forma de alterar na coluna mesmo com várias datas e horários ?

Esse o código gerado na gravação da macro. Em anexo somente a coluna que preciso alterar.

Obrigado.

Sub Macro9()
'
' Macro9 Macro
'

'
Columns("E:E").Select
Application.ReplaceFormat.NumberFormat = "m/d/yyyy"
Selection.Replace What:="12/07/2019*", Replacement:="12/07/2019", LookAt _
:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=True
End Sub
Você não está autorizado a ver ou baixar esse anexo.
Avatar do usuário
Por Reinaldo
Avatar
#45800
Experimente:
Código: Selecionar todos
Sub alteradata()
Dim x As Long
For x = 2 To ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
    Cells(x, 1).Value = Int(Cells(x, 1).Value)
Next
    Columns("A:A").Select
    Selection.NumberFormat = "m/d/yyyy"
Cells(1, 1).Select
End Sub
Avatar do usuário
Por Jimmy
Avatar
#45813
Nunes,

É importante ter o problema resolvido, mas também é entender o como. Vou te explicar.

Os valores de data/hora no excel são armazenados como um número, que seria a quantidade de dias decorridos desde 01/01/1900. Por isso, se digitar zero em uma célula, e formatar como data, resultará 00/01/1900. Se em outra célula digitar hoje() e formatar como número, obterá 43665, que é a quantidade de dias entre 1900 e hoje.

As horas são guardadas na parte fracionária desse número. Assim, se digitar 43665,25 resultadá no dia de hoje, + 25% de um dia, logo, 19/07/2019 6:00h. O valor 43666,666666 resultará amanhã à 16h pois 16 é 66,666% de um dia.

Para tirar a hora de uma data basta pegar a sua parte inteira, e a função INT usada na macro faz isso.

Na sua planilha, se não quiser usar macro, pode criar uma coluna auxiliar que pegue a parte inteira da célula que tem a data+hora, e essa coluna passará a ter somente a data, com hora zero. Nem sempre é assim, mas nesse caso, a função de planilha é igual à de macro: ambas INT(valor).

Jimmy San Juan
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord