Ir ao conteúdo
  • Cadastre-se
diego_janjao

Substituir dados via vba

Recommended Posts

Boa tarde, estou montando uma planilha e uma das coisas que eu queria colocar e para alterar os dados de uma outra aba via macro, porém eu não estou conseguindo que a planilha entenda que eu quero procurar o valor que está na célula E1 e substituir pelo valor que está na célula E2.

 

Sub Alterar()
'
' Alterar Macro

    Sheets("Índice Embalagens").Select
    Replace What:=[E1], Replacement:=[E2], LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:= _
        False, SearchFormat:=False, ReplaceFormat:=False
End Sub

Alguém poderia me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já achei a solução de uma forma mais simples:

 

    Sheets("Índice Embalagens").Select
    Range("A1:A1000").Replace [E1], [E2]
    Sheets("Lançamento").Select
    Range("C26").Select
        

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom como eu ja tinha feito a sugestao quando voce postou ...

Segue para posteriores consultas: 

Sub Alterar()
'
' Alterar Macro

Sheets("Índice Embalagens").Select
With ActiveSheet
    .Range("E1:E2").Select
    Selection.Replace What:=.Range("E1").Value, Replacement:=.Range("E2").Value, LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False
        End With
End Sub

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Basole , não sou nenhum expert em VBA e estou bem longe disso, rs

mas quando você colocou .Range("E1:E2").Select , isso não está limitando a minha procura e substituição apenas nas células E1 e E2?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra opção:

Sub AlterarV2()
  With Sheets("Índice Embalagens")
   .[A1:A1000].Replace .[e1], .[E2], xlPart
  End With
End Sub

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 minutos atrás, diego_janjao disse:

Na minha solução coloquei um range qualquer, mas a intenção era procurar na aba toda

 

obs. procurar e substituir em toda a planilha (comando abaixo) irá substituir inclusive em 'E1'

.Cells.Replace .[e1], .[E2], xlPart

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aproveitando a presença de vocês, @osvaldomp@Basole , gostaria de tirar uma dúvida:

Depois de rodar essa macro, queria que aparecesse a mensagem:
"Todos os dados serão atualizados, deseja continuar?"
[  ] Sim

[  ] Não

 

O código para msgbox eu até sei usar, mas para dar essa confirmação caso clique em sim, como eu posso fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi exatamente o que você quer.

Veja se ajuda.

Sub teste()
 If MsgBox("Todos os dados serão atualizados, deseja continuar?", vbYesNo) = vbYes Then
  MsgBox "você clicou sim"
 Else: MsgBox "você clicou não"
 End If
End Sub

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×