Ir ao conteúdo

Posts recomendados

Postado

Hello Pessoal

Eu tenho uma macro que realiza a importação de uma planilha para a outra. O campo data fica na coluna "I" e por algum motivo, após a importação ser feita, a data esta sendo invertida 

Como por exemplo, de 12/08/2020 para 08/12/2020. Podem me ajudar? 

image.png

Book2.xlsx

Postado

O que acontece comigo e isso

datas 01 a 12/mm/aaaa são gravadas na planilha Excel, erroneamente, como mm/dd/aaaa. O formato dessas células aparece como DATA. Ou seja, o Excel está interpretando dias de 01 a 12 como se fossem meses e alterando o formato da célula.

b) datas 13 a 31/mm/aaaa são gravadas corretamente na planilha Excel como dd/mm/aaaa. O formato dessas células aparece como GERAL.

  • Membro VIP
Postado

Já tentou formatar a coluna de origem e/ou a coluna de destino?

 

Aqui estou com o LibreOffice... uma opção seria algo assim:
image.png
 

ou
image.png
 

Ou veja se tem alguma configuração na Macro para definir o "idioma" ou a formatação adequada.

 

adicionado 1 minuto depois

Dar para definir manualmente também:
image.png


Ou DD/MM/AAAA
 

Postado
13 horas atrás, DECOVIOTI disse:

Eu tenho uma macro que realiza a importação de uma planilha para a outra.

 

Experimente contrariar a lógica. Altere na sua macro conforme abaixo.

 

CélulaDestno = Format(CélulaOrigem, "mm/dd/yyyy")

 

Se você não conseguir, então disponibilize um novo arquivo Excel, inclua também uma amostra da planilha de origem dos dados e o código (macro) em uso. Lembrando que arquivo com macro deve ser compactado antes de anexar (zip, zipx, rar, 7z).

Postado

@osvaldomp

 

Grato pela mensagem/orientação 

Eu anexei o arquivo juntamente com o código que estou utilizando

No arquivo em questão, há 2760 registros, onde temos uma coluna chamada "Data depois da importacao", uma coluna chamada "Data Antes da importacao".

Sub Import()

    Dim lin, linfinal, rg As Double
    Dim sDir, sPath As String

    'Clean data
    Sheets("Data").Range("A2:AP100000").ClearContents
    'Improve the performance of the macro
    With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
    End With

    'Determine the location and name of the file
    sPath = Sheets("Data").Cells(1, 73).Value
    sDir = Sheets("Data").Cells(1, 75).Value
    Workbooks.Open Filename:=sPath & sDir
    Range("A2").Select
    Range("A2", Cells([A1].CurrentRegion.Rows.Count, [A1].CurrentRegion.Columns.Count)).Copy
    Workbooks(sDir).Close False

    'Paste the data inside the dataset
    Range("A1048576").End(xlUp).Offset(1, 0).PasteSpecial
    Range("A1").Select
    'linfinal = Sheets(1).Cells(Cells.Rows.Count, "G").End(xlUp).Row
    linfinal = Cells(Rows.Count, "G").End(xlUp).Row

    'Insert the borders to the dataset
    With Range("A1")
      .CurrentRegion.Borders.LineStyle = xlContinuous
    End With

    'User Message
     rg = Range("A1048576").End(xlUp).Row
     MsgBox "Number of records uploaded is: " & rg, vbOKOnly + vbInformation, "System Alert" & " " & Format(Now(), "dd/mmm/yyyy")

End Sub

Dataset.zip

Postado

Talvez por eu não ter me expressado com exatidão o arquivo que você disponibilizou não serviu.

 

É preciso saber em qual coluna da planilha de origem dos dados estão as datas que serão copiadas e coladas na planilha destino, então é preciso que você disponibilize também a planilha origem, conforme comentei antes.

 

Sugestão, após rodar a macro como você faz habitualmente:

1. junte ao arquivo destino uma cópia da planilha origem, assim: selecione a planilha origem dos dados / clique com o direito sobre a sua guia / Mover ou Copiar / Criar uma cópia / Para a Pasta: selecione o arquivo destino dos dados / OK

2. no arquivo destino deixe em ambas as planilhas APENASMENTE 5 OU 6 LINHAS COM DADOS, E NÃO 2.700+ LINHAS;

3. na planilha destino NÃO ALTERE AS COLUNAS, ex. Data depois da importacao, Data Antes da Importacao e comparar que você acrescentou, são desnecessárias, mantenha a coluna que recebeu as datas na forma que foram coladas pela macro, pois precisamos comparar as datas copiadas com as datas coladas

4. não coloque exemplos de datas em que o dia é igual ao mês, ex. 01/01/XXXX ou 06/06/XXXX, pois não fazem sentido

5. salve o arquivo destino, que estará formado pelas planilhas origem e destino e disponibilize aqui no fórum

 

Se você preferir, disponibilize os dois arquivos ao invés de um arquivo com as duas planilhas.

 

Resumindo: precisamos ver a estrutura da planilha origem, COM TODAS AS COLUNAS QUE CONTÉM DADOS, notadamente a coluna em que estão as datas, obviamente com as datas, e precisamos ver a estrutura da planilha destino, notadamente a coluna em que são coladas as datas pela macro. E para isso não precisamos de mais do que 5 ou 6 linhas em cada planilha, please.

Postado

@osvaldomp Ola Tudo bem? Agradeco muito a orientacao

Por uma questão de confidencialidade, tive que renomear as colunas.

 

Consegui realizar o que queria usando o código o qual achei em outro site. Estou disponibilizando caso alguém também precise.

 

    Columns("I:I").Select
    Selection.TextToColumns Destination:=Range("I:I"), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
    Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
    :=Array(1, 4), TrailingMinusNumbers:=True

Ate a proxima

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!