Ir ao conteúdo

Posts recomendados

Postado

Bom dia pessoal!

 

Desenvolvi uma macro, onde eu realizo a cópia de informações de outra planilha compartilhada, porém, algumas informações (marcadas em vermelho no anexo) estão alterando a ordem escrita. A data correta seria: 09/04/2019, porém está vindo escrito com o mês na frente do dia: 04/09/2019.

 

Poderiam me ajudar com alguma macro que fizesse com que a data viesse de maneira correta?

 

Agradeço a atenção e ajuda desde já!

Obrigado!

Capturar.PNG

  • Membro VIP
Postado

Isso é problema de localização do excel na hora de abrir o arquivo. Se você executar a macro passo a passo (F8) vai perceber que na hora de abrir a planilha fonte as datas estarão trocadas.

Você pode resolver isso facilmente inserindo a opção "local: true" linha de comando onde você abre a planilha. Ficaria algo assim:

Workbooks.Open Filename:="bla bla bla.xls", Local:=True

  • Curtir 1
Postado

@Hanner Muito obrigado pela atenção!

 

Inseri no local indicado, porém ao realizar a atualização, as datas continuam vindo fora do formato correto.

 

o Código ficou assim: 

 

Workbooks.Open Filename:="Y:\EF\Publico\PCP\PROGRAMAÇÃO DE FÁBRICA\2019\BLISTAGEM E EMBALAGEM\PROGRAMAÇÃO Blistagem e Embalagem Maio 2019.xlsx", Local:=True, Password:="senha", ReadOnly:=True

 

Não tenho total conhecimento de programação, então não sei dizer se tem algo no meu código que está realizando esta alteração.

 

Pode me ajudar? Agradeço mais uma vez a atenção.

  • Membro VIP
Postado

@Guilherme Palma Vani  eita, que estranho. Infelizmente não sei resolver de outra forma cara. O mais estranho é que geralmente quando ocorre esse problema, o Excel tenta "inverter" para algumas datas impossíveis. No caso de 21/4 ele converteria pra 4/21 (data inexistente) e a célula ficaria com formato de texto.

 

Não sei se vai ajudar, mas nas linhas de código que uso o recurso do Local:=true nunca usei em conjunto a opção de somente leitura "ReadOnly:=True". Caso não seja um requerimento, tira essa parte do código só pra testar.

Desculpa não poder ajudar mais 😕

  • Curtir 1
  • 2 semanas depois...
Postado

Bom dia,

 

Alguém pode me auxiliar neste problema por favor? Não estou conseguindo resolve-lo e é algo extremamente importante em minha macro.

 

Agradeço a ajuda desde já!

 

Em 13/05/2019 às 10:00, Guilherme Palma Vani disse:

Bom dia pessoal!

 

Desenvolvi uma macro, onde eu realizo a cópia de informações de outra planilha compartilhada, porém, algumas informações (marcadas em vermelho no anexo) estão alterando a ordem escrita. A data correta seria: 09/04/2019, porém está vindo escrito com o mês na frente do dia: 04/09/2019.

 

Poderiam me ajudar com alguma macro que fizesse com que a data viesse de maneira correta?

 

Agradeço a atenção e ajuda desde já!

Obrigado!

Capturar.PNG

 

Postado

Sugestão - disponibilize uma amostra de cada arquivo Excel (imagens não servem) com algumas linhas com dados na planilha origem que estejam provocando o erro relatado (10 linhas no máximo).

O arquivo destino, que contém a macro, deverá ser compactado antes de anexar aqui no fórum.

Postado

@osvaldomp  Obrigado pela Sugestão.

 

Segue trecho do código utilizado para realizar a organização por data:

 

'
' Ordenar por Data
'
On Error Resume Next
    If Application.Intersect(Target, Application.Columns(7)) Is Nothing Then Exit Sub
    If Target.Count > 7 Then Exit Sub
    Range("G1").Sort Key1:=Range("G2"), Order1:=xlAscending, Header:=xlYes, _
                                        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom



Outra opção que já tentei, foi com esse código:



Range("A1:Q1000").Select
ActiveWorkbook.Worksheets("Temp_L1").Sort.SortFields.Clear
   ActiveWorkbook.Worksheets("Temp_L1").Sort.SortFields.Add2 Key:=Range( _
        "G1:K1000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("Temp_L1").Sort
        .SetRange Range("A1:R1000")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Inclusive, já tentei realizar a alteração para a data americana com este código:

 

'
' Alterando para data Americana

'
Range("G1:K1000").Select
Selection.NumberFormat = "mm/dd/yy"

 

O problema principal está sendo:

Na planilha principal onde retiro as informações, está tudo de acordo. Ao copiar e colar para a minha via VBA, está ocorrendo a alteração da data com o mês. E ao pedir para organizar por data a linha inteira, ele leva em consideração somente o dia, e não a data por completo.

 

Poderiam me auxiliar neste problema?

 

Agradeço desde já a atenção! Qualquer duvida, pode falar.

 

OBRIGADO!

Planilha de Teste.xlsx

  • Solução
Postado

Operações executadas pelo código abaixo:

1. nas colunas G, H e K transforma os textos do tipo 05/20/2019 07:43 no texto 20/05/2019  07:43

2. nas colunas G, H e K transforma os textos em data & hora reais

3. ordena a tabela A:Q em ordem ascendente com base na coluna G
 

Sub TextosEmDatasOrdenadas()
 Dim c As Range, LR As Long
  Application.ScreenUpdating = False
  LR = Cells(Rows.Count, 7).End(3).Row
  For Each c In Union(Range("G6:H" & LR), Range("K6:K" & LR))
   If Mid(c.Value, 4, 2) > 12 Then
    c.Value = Mid(c.Value, 4, 2) & "/" & Left(c.Value, 2) & "/" _
     & Mid(c.Value, 7, 4) & " " & Format(Right(c.Value, 4), "hh:mm")
   End If
   c.NumberFormat = "dd/mm/yyyy hh:mm"
   c.Value = CDate(c.Value)
  Next c
  Range("A6:Q" & LR).Sort Key1:=[G5], Order1:=xlAscending
  Application.ScreenUpdating = True
End Sub

obs.

1. considerei que ao rodar o código a planilha ativa será Linha 1

2. se você quiser poderá rodar o código acima ao final do código que copia os dados para a planilha Linha 1, basta colocar o nome do primeiro ao final do segundo, conforme abaixo.
 

Sub SuaMacroQueCopiaDados()
'blá...
'blá...
'blá...
TextosEmDatasOrdenadas
End Sub

 

Postado

Situação antes de rodar a macro.

image.png.3fafe43f4d74f781af280ee839feb146.png

 

Situação depois de rodar a macro.

image.png.acf4325e7a97f250aa5de235e45a12c8.png

 

 

10 horas atrás, Guilherme Palma Vani disse:

Testei a macro que me enviou, porém, algumas informações não seguem o que foi informado na macro..

O que exatamente a macro faz que está diferente do que afirmei que ela faz ?

 

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!