Página 1 de 1

SUBISTITUIÇÃO . POR / ACABA BUGANDO A DATA

Enviado: 13 Mai 2020 às 21:26
por estyfodense
Sub Macro1()
'
' Macro1 Macro
'

'
Range("B2:B25").Select
Cells.Replace What:=".", Replacement:="/", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False _
, FormulaVersion:=xlReplaceFormula2
End Sub

QUANDO O codgio roda para substituir o . por / ele acaba invertendo a data

tipo antes

01.04.2020
02.04.2020
03.04.2020
04.04.2020
06.04.2020
07.04.2020
08.04.2020
09.04.2020
11.04.2020
13.04.2020
14.04.2020
15.04.2020
16.04.2020
17.04.2020
18.04.2020
20.04.2020
22.04.2020
23.04.2020
24.04.2020
25.04.2020
27.04.2020
28.04.2020
29.04.2020
30.04.2020

Depois de rodar o codigo

04/01/2020
04/02/2020
04/03/2020
04/04/2020
04/06/2020
04/07/2020
04/08/2020
04/09/2020
04/11/2020
13/04/2020
14/04/2020
15/04/2020
16/04/2020
17/04/2020
18/04/2020
20/04/2020
22/04/2020
23/04/2020
24/04/2020
25/04/2020
27/04/2020
28/04/2020
29/04/2020
30/04/2020

reparei que apartir do dia 13 ele faz a conversão certinha mais as datas anteriores ficam errada, alguem tem alguma ideia ?

SUBISTITUIÇÃO . POR / ACABA BUGANDO A DATA

Enviado: 14 Mai 2020 às 06:02
por AfonsoMira
Bom dia.

Experimente esse código:
Código: Selecionar todos
Sub troca_pontos()
Dim ano As String, mes As String, dia As String
Dim data As Date
Dim i As Integer
'Vai do B2 até ao B25, para aumentar basta substiuir o 25 pela linha desejada
For i = 2 To 25
'vai buscar ano
ano = Right(Cells(i, 2), 4)
'vai buscar mes
mes = Mid(Cells(i, 2), 4, 2)
'vai buscar dia
dia = Mid(Cells(i, 2), 1, 2)
'junta tudo e forma uma data
data = DateSerial(ano, mes, dia)
'insere a data formada na respetiva celula
Cells(i, 2).Value = data
Next i
End Sub
Alguma dúvida só dizer.

:D

Re: SUBISTITUIÇÃO . POR / ACABA BUGANDO A DATA

Enviado: 14 Mai 2020 às 08:47
por babdallas
Código: Selecionar todos
Sub Macro1()
    Dim vrtData     As Variant
    Dim lngCont     As Long
    
    vrtData = Planilha1.Range("B1:B24").Value
    
    For lngCont = LBound(vrtData, 1) To UBound(vrtData, 1)
        vrtData(lngCont, 1) = VBA.CDate(VBA.Replace(vrtData(lngCont, 1), ".", "/"))
    Next lngCont
    
    Planilha1.Range("B1:B24").Value = vrtData
End Sub

Re: SUBISTITUIÇÃO . POR / ACABA BUGANDO A DATA

Enviado: 14 Mai 2020 às 10:23
por osvaldomp
Código: Selecionar todos
Sub TextoParaData()
 Columns(2).TextToColumns , FieldInfo:=Array(1, 4)
End Sub

Re: SUBISTITUIÇÃO . POR / ACABA BUGANDO A DATA

Enviado: 14 Mai 2020 às 21:30
por estyfodense
Agradeço a todos mais a Ultima resposta me deixou no sapatinho :D