Pessoal, boa noite!
Uma dúvida sobre formatação de coluna do tipo data:
Ao tentar usar o Format(cells,1), "dd-mm-yyyy")) não tive êxito para formatar dados para o padrão Br (dd/mm/aaaa). Por isso, to usando duas rotinas no VBA: uma com dateserial e outra para colar os valores nas colunas . Alguma sugestão que nao precise de dois códigos?
Option Explicit
Sub ConversaoData()
Dim i As Integer
Dim dia As Byte
Dim mes As Byte
Dim ano As Integer
For i = 2 To Range("B1048576").End(xlUp).Row
'coluna b
dia = Day(Cells(i, 2)): mes = Month(Cells(i, 2)): ano = Year(Cells(i, 2))
'dia = Day(Cells(i, 2)): mes = Month(Cells(i, 2)): ano = Year(Cells(i, 2)): If Cells(i, 2) = "" Then Cells(i, 3) = "" Else Cells(i, 3) = DateSerial(ano, mes, dia)
'coluna g
'dia = Day(Cells(i, 7)): mes = Month(Cells(i, 7)): ano = Year(Cells(i, 7)): If Cells(i, 7) = "" Then Cells(i, 8) = "" Else Cells(i, 8) = DateSerial(ano, mes, dia)
'coluna h
'dia = Day(Cells(i, 8)): mes = Month(Cells(i, 8)): ano = Year(Cells(i, 8)): If Cells(i, 8) = "" Then Cells(i, 9) = "" Else Cells(i, 9) = DateSerial(ano, mes, dia)
'coluna k
'dia = Day(Cells(i, 11)): mes = Month(Cells(i, 11)): ano = Year(Cells(i, 11)): If Cells(i, 11) = "" Then Cells(i, 12) = "" Else Cells(i, 12) = DateSerial(ano, mes, dia)
'Next i
Cells(i, 3) = DateSerial(ano, mes, dia)
'execução coluna g - transformação: ao invés de Cells(i, 8) = DateSerial(ano, mes, dia) coloque: Cells(i, 7) = DateSerial(ano, mes, dia)
'execução coluna h - transformação: ao invés de Cells(i, 9) = DateSerial(ano, mes, dia) coloque: Cells(i, 8) = DateSerial(ano, mes, dia)
'execução coluna k - transformação: ao invés de Cells(i, 12) = DateSerial(ano, mes, dia) coloque: Cells(i, 11) = DateSerial(ano, mes, dia)
Next i
End Sub
Sub CopiarColunas()
Dim firstrowDB As Long
Dim arr1, arr2, arr3, arr4
Dim i As Long
arr1 = Array("C")
arr2 = Array("B")
arr3 = Array("F")
arr3 = Array("G")
For i = LBound(arr1) To UBound(arr1)
Planilha6.Columns(arr1(i)).Copy
Planilha6.Columns(arr2(i)).PasteSpecial Paste:=xlPasteAll
Planilha6.Columns(arr2(i)).Copy
Planilha6.Columns(arr3(i)).PasteSpecial Paste:=xlPasteAll
Next
Application.CutCopyMode = False
End Sub
Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Dúvida sobre formatação de coluna do tipo data
-
- Colaborador
- Mensagens: 16
- Registrado em: Qua Jul 19, 2017 10:59 pm
Re: Dúvida sobre formatação de coluna do tipo data
Essa tarefa de conversão de datas é uma dor no VBA mesmo. Se você conseguir garantir o formato da célula na planilha, facilita. De toda forma, quando o valor for para o VBA, ele vai automaticamente ser convertido para o formato americano.
Eu gostei da sua alternativa. Porque não transforma ela em uma função? Aí dá para usar sem problema
Eu gostei da sua alternativa. Porque não transforma ela em uma função? Aí dá para usar sem problema