Ir ao conteúdo
  • Cadastre-se

Excel Levando informações de uma sheet a outra VBA


Ir à solução Resolvido por Midori,

Posts recomendados

Boa tarde!

 

Estou com a seguinte duvida:

 

Não consigo levar as informações completas de cada célula da sheet1 para sheet2.

 

Abaixo as Sheets.

 

Sheet1 (Entrada de Materiais):

image.thumb.png.1d2e9323bbf53fe2df58cbe0b11e6e1f.png 

 

Sheet2 (Movimentações):

image.thumb.png.cff64f6c71eb3dedac5d62c6bec082e2.png

 

Ao clicar no botão de Registrar Entrada, o mesmo deveria enviar as informações das 3 linhas para sheet2, porém só leva a ultima linha.

 

Abaixo o código do botão Registrar Entrada.

 

Sub Registrar_Entrada()
    
    ult_linha1 = Worksheets("Movimentações").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Row
    
    Dim data As String
    Dim classificacao As String
    Dim Codigo As String
    Dim descricao As String
    Dim fornecedor As String
    Dim Nota As String
    Dim pedido As String
    Dim quantidade As String
    Dim status As String
    
    U_L = Sheets("Entrada de Materiais").Range("A" & Rows.Count).End(xlUp).Row
    
    For I = 7 To U_L
    
    data = Worksheets("Entrada de Materiais").Range("A" & I)
    classificacao = Worksheets("Entrada de Materiais").Range("B" & I)
    Codigo = Worksheets("Entrada de Materiais").Range("C" & I)
    descricao = Worksheets("Entrada de Materiais").Range("D" & I)
    fornecedor = Worksheets("Entrada de Materiais").Range("G" & I)
    Nota = Worksheets("Entrada de Materiais").Range("H" & I)
    pedido = Worksheets("Entrada de Materiais").Range("I" & I)
    quantidade = Worksheets("Entrada de Materiais").Range("J" & I)
    status = Worksheets("Entrada de Materiais").Range("K" & I)
    
    Worksheets("Movimentações").Activate
    Worksheets("Movimentações").Range("A" & ult_linha1) = data
    Worksheets("Movimentações").Range("B" & ult_linha1) = status
    Worksheets("Movimentações").Range("C" & ult_linha1) = classificacao
    Worksheets("Movimentações").Range("D" & ult_linha1) = Codigo
    Worksheets("Movimentações").Range("E" & ult_linha1) = descricao
    Worksheets("Movimentações").Range("F" & ult_linha1) = quantidade
    Worksheets("Movimentações").Range("G" & ult_linha1) = fornecedor
    Worksheets("Movimentações").Range("H" & ult_linha1) = Nota
    Worksheets("Movimentações").Range("I" & ult_linha1) = pedido

    'limpar conteudo completo
    'Range("A7:C100,G7:K100").Select
    'Selection.ClearContents
    'Range("A7").Select

    Next I
End Sub

 

Obrigado!

Link para o comentário
Compartilhar em outros sites

@Midori a variável ult_linha1, seria para encontrar a ultima linha da Sheet Movimentações. onde eu teria que usar ela também pra selecionar todas as informações da Sheet Entrada de Mercadorias?

 

Estou usando a variável U_L para encontrar a ultima linha da Sheet Entrada de Mercadorias...

Link para o comentário
Compartilhar em outros sites

  • Solução

@Guilherme Stoduto Você atribuiu a última linha da planilha Movimentações só uma vez, por isso sua macro sempre vai escrever nela. Então essa variável deve ser atualizada a medida que novos dados são acrescentados na planilha. Você pode fazer isso incrementando dentro do loop ult_linha1 = ult_linha1 + 1 ou movendo a atribuição que fez no início da Sub para o início do loop.

  • Curtir 1
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...