Ir ao conteúdo
  • Cadastre-se

Excel macro para gravar dados em outra planilha


Posts recomendados

Bom dia...

 

Estou precisando de ajuda com a planilha que está em anexo.

 

Na aba "Análise", Nas colunas de "A" até "H", está o resultado de um consulta na planilha "Estoques" depois de alguns filtros já aplicados.
Eu preciso escolher alguns desses rolos de malha para serem utilizados para uma determinada Ordem de Produção.

O que eu quero fazer para facilitar o trabalho do usuário desta planilha é, quando o usuário identificar quais os rolos de malha ele quer reservar para uma determinada ordem (colocando o número da ordem na linha do rolo desejado, na coluna "I"), ao clicar no botão reservar, o Excel grave lá na planilha "Estoques" na coluna "H" o número da ordem para o qual este rolo foi reservado.
O que identifica cada rolo é o "Material" (coluna "B") e o "Lote" (coluna "D").

 

Não sei se conseguir expressar claramente minha necessidade mas, será que alguém consegue me ajudar?

 

Obrigado.

 

Marcação de Rolos.xlsm

 

 

Link para o comentário
Compartilhar em outros sites

Olá.

Veja se o código abaixo atende.

Sub MarcaReservado()
 Dim LR As Long, c As Range, frstAdd As String, k As Range
  LR = Cells(Rows.Count, 1).End(3).Row
  Set c = Range("I8:I" & LR).Find("*")
   If Not c Is Nothing Then
    frstAdd = c.Address
     Do
      With Sheets("Estoques")
       .Range("A1:U" & .Cells(Rows.Count, 1).End(3).Row).AutoFilter Field:=2, Criteria1:=c.Offset(, -7).Value
       .Range("A1:U" & .Cells(Rows.Count, 1).End(3).Row).AutoFilter Field:=4, Criteria1:=c.Offset(, -5).Value
         For Each k In .Range("A2:A" & .Cells(Rows.Count, 1).End(3).Row).SpecialCells(xlCellTypeVisible)
           k.Offset(, 7) = c.Value
         Next k
       .AutoFilterMode = False
      End With
       Set c = Range("I8:I" & LR).FindNext(c)
     Loop While Not c Is Nothing And c.Address <> frstAdd
   End If
End Sub

 

Link para o comentário
Compartilhar em outros sites

Boa Tarde @osvaldomp

 

Perfeito, seu código funcionou exatamente como eu  esperava.

Porém, algo que eu não havia analisado é a necessidade de excluir a reserva feita.

Então, quero agora adicionar um botão "Excluir Reserva" para limpar o número da ordem a qual havia sido inserida através da macro que você me passou.

 

Obrigado.

Link para o comentário
Compartilhar em outros sites

53 minutos atrás, marcinhovn disse:

 

Então, quero agora adicionar um botão "Excluir Reserva" para limpar o número da ordem a qual havia sido inserida através da macro que você me passou.

 

 

 

Me parece que você quer limpar um número dentre os números de reserva que o código inseriu na planilha "Estoques", é isso? Se sim, qual é esse número que você quer limpar?

Link para o comentário
Compartilhar em outros sites

@osvaldomp

 

O valor que estiver na coluna H da planilha Estoques, eu quero limpar.

Simplificando: Acabei de digitar o número de uma ordem e cliquei no botão "Reservar", então ele gravou na planilha Estoques.

Porém, me arrependi e quero limpar esta informação clicando no botão "Excluir Reserva", aí eu digito o numero da Ordem novamente só que agora clico no botão "Excluir Reserva".

 

Link para o comentário
Compartilhar em outros sites

7 horas atrás, marcinhovn disse:

 

... aí eu digito o numero da Ordem novamente só que agora clico no botão "Excluir Reserva".

 

 

Ao invés de digitar novamente o número da Ordem selecione-o na planilha "Análise" e rode o código.

Você poderá selecionar quantas Ordens desejar.

dica - se a seleção abrange células não adjacentes mantenha Ctrl pressionada enquanto seleciona com o mouse.

Sub DesmarcaReservado()
 Dim c As Range, k As Range
  For Each c In Selection
   With Sheets("Estoques")
    .Range("A1:U" & .Cells(Rows.Count, 1).End(3).Row).AutoFilter Field:=2, Criteria1:=c.Offset(, -7).Value
    .Range("A1:U" & .Cells(Rows.Count, 1).End(3).Row).AutoFilter Field:=4, Criteria1:=c.Offset(, -5).Value
      For Each k In .Range("A2:A" & .Cells(Rows.Count, 1).End(3).Row).SpecialCells(xlCellTypeVisible)
       k.Offset(, 7) = ""
      Next k
    .AutoFilterMode = False
   End With
  Next c
End Sub

 

Link para o comentário
Compartilhar em outros sites

  • 2 anos depois...

Boa tarde senhores, 

 

Recentemente tivemos uma demanda de impressoras portáteis que devem sair a campo e estou gerenciando quem leva qual das 86 unidades. Criei códigos gestores para cada uma pelo número de serie de 0657 a 0742. Deles gerei códigos de barras e tenho 4 leitores USB´s. 

 

Pergunta:

 

Como consigo que minha planilha faça o preenchimento através de um botão macro (tipo "gravar") em outra aba ("relatorios" nome da nova aba criada) das células "D9" (funcionário), "C10" (equipamento), "D10" (pátio) e  "F5" (data que foi configurada com "=agora()") ? [ Aba original se chama "controle"].

 

No relatório as linhas começam no "A3" (funcionário), "B3" (equipamento), "C3" (data) e "D3" (pátio) considerando que a cada vez que gravar reinicie a linha "A4", "A5",... etc... 

 

Planilha em anexo de apenas uma unidade orgânica, contudo as demais só mudam os funcionários e eu mudo a mascara, também não esta protegida.  (senha 4 vezes "*" asterisco)  sendo : **** 

 

Agradeço muito a ajuda, pois eu elaborei todas as formulas (bem simples para que qualquer um possa identificar o uso) e recebo da aba "dados" através de registro funcional o nome de guerra/funcional e do código gestor o Pátio que ele esta locado com cores e tudo mais, contudo os funcionários que as entregam com os leitores podem usar o crachá (o que forçaria a eles não esquecerem) e os códigos que já fixei nos equipamentos.

 

Fiquem com Deus!

CONTROLE DE EQUIPAMENTOS v2.xlsx

Link para o comentário
Compartilhar em outros sites

  • 11 meses depois...

Tenho um problema em que tenho de escrever numa folha de outro livro.
O meu problema é o seguinte;

Tenho um livro onde registo todas as horas voadas segundo a folha de registo. Os pilotos vaõ variando para o mesmo avião.
Este livro tem uma tabela de pilotos onde calculo o número de horas voadas piloto a piloto.
Noutro livro chamado de facturação tenho além da mesma tabela de pilotos uma folha por cada piloto.
Como fiz.

Na folha de registo de horas linha a linha e noutras colunas calculo por piloto o número da linha que depois faço a concatenação com o nome o que me vai permitir fazer nas folhas dos pilotos fazer a procura das suas horas usando a função PROCV.
Este sistema torna muito pesado o ficheiro de facturação.
Será tecnicamente possível fazer ao contrário, isto é linha a linha registar no ficheiro de facturação e na folha do respectivo piloto os dados desse voo.
Em anexo junto dois ficheiros com um exemplo.
O ficheiro Recolha é onde registo as horas e no facturação onde facturo.
 

Facturação.xlsx Recolha.xlsx

Link para o comentário
Compartilhar em outros sites

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!