Notifications
Clear all

Problemas com Datas no VBA

4 Posts
2 Usuários
0 Reactions
1,008 Visualizações
 Frrz
(@frrz)
Posts: 16
Active Member
Topic starter
 

Senhores, Boa Tarde

É o seguinte, eu tenho uma Macro que faz o tratamento de um Arquivo do Sistema.

O Problema é:

Quando a Macro lê a Array, ela joga as datas Invertidas até o dia 14, Ex:

01/04/2013
02/04/2013

ela me retorna assim:

04/01/2013
04/02/2013

até o dia 14, do dia 14 pra cima ela me retorna normal (04/13/2013, 14/04/2013), segue a baixo o código, em vermelho é a posição referente a Data

' Abre o arquivo .ENV para tratamento
Workbooks.OpenText FileName:=ArquivosProcessar(i), Origin:= _
xlWindows, StartRow:=2, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, _
1), Array(2, 1), Array(12, 1), Array(22, 1), Array(52, 1), Array(66, 1), Array(166, 1), _
Array(186, 1), Array(206, 1), Array(208, 1), Array(218, 1), Array(226, 1), Array(231, 1), _
Array(240, 1), Array(280, 1), Array(288, 1), Array(300, 1), Array(314, 1), Array(317, 1), _
Array(327, 1), Array(337, 1), Array(351, 1), Array(361, 1), Array(371, 1), Array(376, 1), _
Array(390, 1), Array(400, 1), Array(655, 1), Array(669, 1), Array(674, 1), Array(704, 1), _
Array(718, 1), Array(732, 1), Array(742, 1), Array(762, 1), Array(772, 1), Array(779, 1), _
Array(787, 1), Array(801, 1))
nomeplan = Mid(ArquivosProcessar(i), Len(ArquivosProcessar(i)) - 13, 10)

' Insere nomes das colunas e formata o arquivo
Columns("A:A").Select
Selection.Insert Shift:=xlToRight
Range("A1").Value = "'" + nomeplan
Range("A1").Copy
Columns("A:A").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.End(xlDown).Select
Linha = ActiveCell.Row
Selection.EntireRow.Delete
Range("A1").Select
Selection.EntireRow.Insert
Range("A1").Value = "Arquivo"
Range("B1").Value = "TP"
Range("C1").Value = "Seq"
Range("D1").Value = "ID"
Range("E1").Value = "Cliente"
Range("F1").Value = "CPF"
Range("G1").Value = "Endereço"
Range("H1").Value = "Bairro"
Range("I1").Value = "Cidade"
Range("J1").Value = "UF"
Range("K1").Value = "País"
Range("L1").Value = "CEP"
Range("M1").Value = "DDD"
Range("N1").Value = "Tel"
Range("O1").Value = "Descrição"
Range("P1").Value = "Código"
Range("Q1").Value = "Peso"
Range("R1").Value = "Vuni"
Range("S1").Value = "Qtd"
Range("T1").Value = "NF"
Range("U1").Value = "Série"
Range("V1").Value = "Vtot"
Range("W1").Value = "Resg"
Range("X1").Value = "ID Ant"
Range("Y1").Value = "Aliq ICMS"
Range("Z1").Value = "ICMS"
Range("AA1").Value = "Emissão"
Range("AB1").Value = "OBS"
Range("AC1").Value = "Frete"
Range("AD1").Value = "CFOP"
Range("AE1").Value = "Natureza"
Range("AF1").Value = "Base+Frete"
Range("AG1").Value = "Produtos+Frete"
Range("AH1").Value = "Pedido"
Range("AI1").Value = "Categoria"
Range("AJ1").Value = "Data Resgate"
Range("AK1").Value = "Cód.IBGE"
Range("AL1").Value = "NCM"

A Principal dúvida é, quando eu coloco 773 ou 771, a data não é invertida, mas ela vem com um numero a mais ou um numero a menos,

Agradeço desde já

 
Postado : 26/04/2013 9:34 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Você tentou utilizar a função format:

format(Array(762, 1);"mm/dd/yyyy")

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

 
Postado : 26/04/2013 10:18 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Experimente:
Altere: ... Array(762, 1), Array(772, 1)...
Para: Array(762, 4), Array(772, 4)... (ou) Array(762, 9), Array(772, 9)

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

 
Postado : 26/04/2013 10:28 am
 Frrz
(@frrz)
Posts: 16
Active Member
Topic starter
 

Experimente:
Altere: ... Array(762, 1), Array(772, 1)...
Para: Array(762, 4), Array(772, 4)... (ou) Array(762, 9), Array(772, 9)

Colocando 4 funcionou, Muito Obrigado Reinaldo :D

 
Postado : 26/04/2013 11:02 am