Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
Avatar do usuário
Por LeoHenrique
Posts Avatar
#70967
Olá pessoal !

Existe um código que faça a mesma função do Ctrl + L no excel ? Procurei e não achei nada !
É que no final de um código que tenho, faço manualmente, procuro uma informação específica, e caso localizo, substituo.
Como se fosse o Ctrl + L do excel usando o comando de substituir, caso localizar o conteúdo procurado.

Se alguém souber como montar, desde já agradeço.
Por osvaldomp
#70968
Pesquise sobre a função "Find". ;)
#70978
Ok, Osvaldo ! Obrigado !!

Pesquisei e adaptei o código abaixo para o que preciso, mas ainda não funcionou... se puder ver o que está errado, agradeço.
Em anexo segue planilha para testar. Obrigado !

Sub FindValue()
Dim c As Range
Dim firstAddress As String
With Worksheets("Atualizado_Sell_Out").Range("AJ7:AJ10000")
Set c = .Find(Sheets("Destaque_Col").Range("J3"), LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Value = Sheets("Destaque_Col").Range("K4")
Set c = .FindNext(c)
Loop While Not c Is Nothing
End If
End With
End Sub
Você não está autorizado a ver ou baixar esse anexo.
Por osvaldomp
#70984
Olá, @LeoHenrique .

Vou analisar o seu código e em seguida coloco aqui alguma sugestão.

Me parece que você está tentando utilizar uma macro para "inverter" datas do formato mm/dd para dd/mm, é isso?

Lembro de ter lido alguma postagem sua há dias em que você comentou que as datas são alteradas de dd/mm para mm/dd ao importar os dados de outro arquivo.

Os dados são importados manualmente ou via macro ou outra forma?
Você já tentou corrigir para que as datas não sejam invertidas ao importar os dados ?
#71000
Bom dia Osvaldo !!

Muito obrigado pela ajuda...

Osvaldo = Me parece que você está tentando utilizar uma macro para "inverter" datas do formato mm/dd para dd/mm, é isso?
R: Sim, uso uma macro para isso, inclusive foi você que montou, ficou top !! Em anexo a planilha segue a macro que uso para importar as datas de outra aba. "Replica Datas" é o nome da macro.


Osvaldo = Você já tentou corrigir para que as datas não sejam invertidas ao importar os dados ?
R: Sim... neste fórum há um tempo atrás, mas parece que é um erro do excel... se tiver como corrigir, ficará perfeito, não necessitará de um código para acertar o outro.

Se puder corrigir, ficará melhor ainda, caso não, um código que localize a data que está na aba "Destaque_Col" célula "J3" e alterar para a data que está na mesma aba, célula "K3" e assim sucessivamente.

Obrigado, novamente !
Você não está autorizado a ver ou baixar esse anexo.
Por osvaldomp
#71036
Olá, @LeoHenrique .
Consegui corrigir no primeiro código, agora ele replica as datas corretamente. Utilize o código abaixo, que já está corrigido, no lugar do anterior.

A origem do problema é que os dados que estão na planilha Nao_Faturados possivelmente são importados de algum outro Sistema e as "datas" que são lançadas na coluna Z são textos que se parecem com datas, não são datas reais.

Aí, o VBA ao ler na célula o texto 03/06/2022, esperto que é, ele entende isso como uma data, e como ele estudou em escolas dos EUA, ele interpreta como mm/dd, ou seja, mar 06. Então ele pergunta para o Windows, como a máquina está configurada para representar 06 mar 2022 e obtém a resposta: coloque 06/03/2022. Por isso é que ele troca 03/06/2022 por 06/03/2022.

Isso só ocorre com as "datas" cujo dia seja de 01 a 12. Por exemplo, se o texto for 17/08/2022, o VBA tenta entender como mm/dd, mas na escolinha lhe ensinaram que o maior número que representa mm é 12, ou seja, não existe mês 17. Então ele conclui que aquilo não é uma data e pra evitar confusão ele foi treinado pra não mexer, por isso que essas "datas" não são alteradas, e ele replica como um texto: 17/08/2022.

Para contornar eu acrescentei ao código os comandos para transformar as colunas Y:Z em datas reais. Veja se agora atende.
#
Código: Selecionar todos
Sub ReplicaDatasV2()
 Dim ref As Range, dat As Range, refAdd As String
  Application.ScreenUpdating = False
  Range("AI7:AI" & Cells(Rows.Count, 2).End(3).Row).Value = ""
  With Sheets("Nao_Faturados")
   If Application.IsText(.[Y2]) Then
    .Columns("Y:Y").TextToColumns , FieldInfo:=Array(1, 4)
   End If
   If Application.IsText(.[Z2]) Then
    .Columns("Z:Z").TextToColumns , FieldInfo:=Array(1, 4)
   End If
  End With
  For Each ref In Range("B7:B" & Cells(Rows.Count, 2).End(3).Row)
   Set dat = Sheets("Nao_Faturados").[G:G].Find(ref.Value)
    If Not dat Is Nothing Then
     refAdd = dat.Address
     Do
      ref.Offset(, 33) = IIf(ref.Offset(, 33).Value = "", _
       dat.Offset(, 19).Value, ref.Offset(, 33).Value & Chr(10) & dat.Offset(, 19).Value)
      Set dat = Sheets("Nao_Faturados").[G:G].FindNext(After:=dat)
     Loop While dat.Address <> refAdd
    End If
  Next ref
End Sub

Por andrecdan
#71698
Olá! Estive lendo a solução para este problema das datas. No meu caso é um formulario que criei como sistema de vendas onde eu salvo sempre a data e hora das vendas, no entanto a data sempre vem em formato mm/dd. Como consigo fazer para que a data saia no formato dd/mm?
Por osvaldomp
#71699
Olá, @andrecdan .

Sugestão: disponibilize uma amostra do seu arquivo Excel. Veja no final das minhas postagens como anexar arquivos aqui no fórum.
Por osvaldomp
#71702
osvaldomp escreveu: 12 Jul 2022 às 11:38 Sugestão: disponibilize uma amostra do seu arquivo Excel.
Para verificar um problema de formatação de datas não precisamos de um arquivo com 5MB, por isso eu sugeri uma amostra, ou seja, meia dúzia de linhas com dados na planilha, com o tal formulário que você citou, com todos os códigos envolvidos e com as necessárias explicações do resultado que está obtendo atualmente e o resultado desejado.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord