Notifications
Clear all

Botão Atualizar - VBA Excel

7 Posts
2 Usuários
0 Reactions
2,215 Visualizações
(@rafapva)
Posts: 4
Active Member
Topic starter
 

Boa tarde!

Sou novo no forum, e não sei se estou postando no lugar correto.

Tenho um controle de estoque que no qual será alimentado por uma outra planilha. Exemplo: "Estoque" recebe as informações em tempo real de um outro arquivo chamado "Plan1". Gostaria de saber se existe algum código VBA que faça com que quando eu lançar algo na plan1 eu vá no estoque e clique no botão atualizar e não sobreponha o que eu ja tenha feito no estoque. Pegue as novas informações da Plan1 e jogue no estoque como novas informações. Consegui fazer isso com a formula =SE, mas gostaria de não usar fórmulas, pois tenho uma outra macro no estoque que faz eu dividir a quantidade da linha. Uma formula no estoque me atrapalharia.

Desde já agradeço!

Abs,
Rafael

 
Postado : 10/04/2013 2:25 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Poste seu arquivo compactado para que a comunidade possa ajuda-lo!

Att

 
Postado : 10/04/2013 5:47 pm
(@rafapva)
Posts: 4
Active Member
Topic starter
 

Prezado Alexadrevba, boa tarde!

Tentei anexar o arquivo aqui mas é grande para esse fórum, compactei os arquivo e fiz um upload no 4shared.

Segue link: http://www.4shared.com/rar/hCe9R5GM/Plans_Rafa.html

Seguinte.

Tem dois arquivos: "Estoque" e "Estoque take-up", no qual o "Estoque" deve receber as informações em tempo real do "Estoque take-up".

Como disse no outro post, consegui fazer isso atraves da fórmula =SE, porem como tenho uma macro no "Estoque" que faz dividir a linha, a fórmula tbm é duplicada puxando informações incorretas. Preciso que as informações do "Estoque take-up" sejam enviadas ao "Estoque" sem fórmulas, pois me atrapalharia.

Muito obrigado pela ajuda Alexandrevba!

Abs,
Rafael

 
Postado : 11/04/2013 11:21 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Eu não sei se é isso, faças os testes.

Sub Talvez()
Dim DestBook As Workbook, SrcBook As Workbook
Application.ScreenUpdating = False
Set SrcBook = ThisWorkbook
On Error Resume Next
Set DestBook = Workbooks.Open("C:UsersalexandreDownloadsEstoque.xlsm") '<- mude aqui
If Err.Number = 1004 Then
Set DestBook = Workbooks.Add
SrcBook.Worksheets(1).Range("A7:AD1000").Copy
DestBook.Worksheets(1).Range("B7").PasteSpecial
Application.CutCopyMode = False
DestBook.SaveAs ("C:UsersalexandreDownloadsEstoque.xlsm") '<- mude aqui
DestBook.Close
Else
SrcBook.Worksheets(1).Range("A7:AD1000").Copy
DestBook.Worksheets(1).Range("B7").PasteSpecial
Application.CutCopyMode = False
DestBook.Save
DestBook.Close
End If
On Error GoTo 0
Set DestBook = Nothing
Set SrcBook = Nothing
End Sub
 
Postado : 11/04/2013 6:12 pm
(@rafapva)
Posts: 4
Active Member
Topic starter
 

Bom dia Alexandrevba!

Esse código validou, mas não puxou as informações do outro arquivo.

Tentei fazer algumas modificações no código, que tbm validou (não deu erro) mas tbm não puxou as informações.

Segue código:

------------------------------------------

Sub CommandButton1_Click()
Dim DestBook As Workbook, SrcBook As Workbook
Application.ScreenUpdating = False
Set SrcBook = ThisWorkbook
On Error Resume Next
Set DestBook = Workbooks.Open("C:UsersrafaelDesktopEstoque Take-up - Safra 13.xlsm") '<- mude aqui
If Err.Number = 1004 Then
Set DestBook = Workbooks.Add
SrcBook.Worksheets(1).Range Cells(i + j, 1): Cells(i + j, 9999999).Copy
DestBook.Worksheets(1).Range("B7").PasteSpecial
Application.CutCopyMode = False
DestBook.SaveAs ("C:UsersrafaelDesktopEstoque Take-up - Safra 13.xlsm") '<- mude aqui
DestBook.Close
Else
SrcBook.Worksheets(1).Range Cells(i + j, 1): Cells(i + j, 9999999).Copy
DestBook.Worksheets(1).Range("B7").PasteSpecial
Application.CutCopyMode = False
DestBook.Save
DestBook.Close
End If
On Error GoTo 0
Set DestBook = Nothing
Set SrcBook = Nothing
End Sub

--------------------------------------------------

 
Postado : 12/04/2013 6:36 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Eu não devo ter entendido corretamente, mas em meus testes eu abrir o arquivo (estoque), copiei os dados (Estoque Take-up - Safra 13) para o arquivo (estoque), funcionou.

Mas se não for isso, só posso tentar depois, caso alguém não o faça antes.

Quanto a sua rotina, você não declarou as variáveis (i, j), eu não entendi...

Att

 
Postado : 12/04/2013 9:29 am
(@rafapva)
Posts: 4
Active Member
Topic starter
 

Alexandre,

Vc diz que em seus testes, vc conseguiu importar as informações do "Estoque take-up" para dentro do "Estoque" com esse código?

Alterei os diretorios aqui colocando o caminho de cada uma mas n deu certo. Coloquei o caminho do "Estoque take-up" e quando cliquei no botao o excel entendeu que era pra puxar a informação do "Estoque" para o "Estoque take-up".

Eh meio dificil explicar por escrita. O que preciso é que as informações do "estoque take-up" sejam enviadas para o "estoque". E que quando eu for inserir uma nova linha no "estoque take-up" não sobreponha nenhuma linha do "estoque", no caso a macro do "estoque" tem que ler as informações do "estoque take-up" e ver se ja a informação ja foi enviada para o "estoque" e se não foi ainda, deve incluir uma linha no final contendo a informação nova.

Com relação as variaveis (i e j) desconsidera, tentei fazer alguma coisa para ver se dava certo, mostrei o codigo pra vc ver o que eu tinha feito.

Muito obrigado pela ajuda Alexandre.

Abraços,
Rafael

 
Postado : 12/04/2013 11:33 am