Notifications
Clear all

MACRO COPIAR E COLAR

5 Posts
2 Usuários
0 Reactions
1,099 Visualizações
(@paulo_001)
Posts: 149
Estimable Member
Topic starter
 

Olá a todos.
Preciso muito de uma ajuda de vocês. Montei uma planilha onde lanço alguns valores em uma aba e posteriormente uso um comando para pegar todos esses valores e lançar em uma outra worksheet.
Montei uma macro com algumas informações que encontrei na internet, mas quando a executo ela joga os valores completamente desordenados na planilha destino. Alguém teria uma ideia de como reparar esse código?

Segue a planilha em anexo

O código que realiza a transferência da range está no módulo6 e pode ser acionado pelo botão tranferir.

*Essa macro pega tudo que esta na planilha Apoio (exceto a primeira linha) e joga na ultima linha em branco da planilha Saidas

 
Postado : 04/01/2016 7:35 pm
(@srobles)
Posts: 231
Estimable Member
 

Paulo_001,

Analisei seu modelo e pude notar que há inconsistência nos dados da planilha origem e da planilha destino.

Nos códigos do formulário que insere os dados planilha APOIO, você insere na coluna DATA o código do produto e assim por diante nos demais campos.
Quando se clica em TRANSFERIR, a macro que está correta, cola esses dados na ordem em que estão, porém na planilha SAÍDAS o primeiro campo é de DATA e não o CÓDIGO, logo os dados inseridos ficam desordenados.

Sugiro que estude e modifique os códigos do formulário para que toda vez que se insere um novo dado, o primeiro campo seja o de DATA, e para os demais, siga conforme ordem dos campos do formulário, assim tudo correrá conforme planejado.

Prefira por manter em suas planilhas sempre os mesmos campos e na mesma ordem, para que não tenha tanto trabalho na hora de manipulá-los, e caso um novo campo tenha que ser preenchido, utilize sempre a próxima coluna, ainda mais quando trabalhamos com copiar e colar.

Aguado retorno,

Abs

Espero ter ajudado.

Abs.

Saulo Robles

 
Postado : 04/01/2016 10:52 pm
(@paulo_001)
Posts: 149
Estimable Member
Topic starter
 

srobles,

Muito obrigado pela resposta.
Na verdade os rótulos das colunas são exatamente iguais (Apoio e Saidas). Você provavelmente deve ter olhado a Plan Apoio2 , que eh onde pretendo colocar também o código, depois de melhorado.

Meu problema é que o primeiro registro e efetuado direitinho, mas se eu gerar mais dados, quando realizo a transferência os dados deixam alguns espaços em branco na linhas de cima e se desordenam. poque será que isso acontece?

*os dados são lançados na planilha Apoio através do botão Requisitar

Pink Floyd Rules!

 
Postado : 05/01/2016 3:27 am
(@srobles)
Posts: 231
Estimable Member
 

Paulo_001,

Me esclareça uma dúvida :

Os dados devem ser lançados na planilha SAÍDAS apenas quando se clica em transferir ou deve ser feito durante a inserção de dados no formulário?

Explico :

Notei que no evento do botão ADICIONAR A LISTA, os dados são inseridos tanto na planilha APOIO quanto na planilha SAIDAS, porém na planilha SAIDAS algumas células da última linha são ignoradas, veja o código abaixo :

iRow = Sheets("Apoio").Cells(Cells.Rows.Count, "A").End(xlUp).Row + 1

With Sheets("Apoio")
    .Cells(iRow, 1).Value = VBA.Format(Date, "mm/dd/yy")
    .Cells(iRow, 2).Value = Me.ComboBoxCodigo.Value
    .Cells(iRow, 3).Value = Me.ComboBoxDescrição.Value
    .Cells(iRow, 4).Value = Me.TextBoxUnidade.Value
    '.Cells(iRow, 4).Value = Me.TextBox1.Value
    .Cells(iRow, 5).Value = Me.TextBoxqtd.Value
   
    .Cells(iRow, 6).Value = Me.ComboBoxRequisitante.Value
    
    If OptionButton1 = True Then
    .Cells(iRow, 7).Value = "SAÍDA OP"
     End If
     
     If OptionButton2 = True Then
     .Cells(iRow, 7).Value = "TRANFERÊNCIA"
     End If
     
       If OptionButton3 = True Then
     .Cells(iRow, 7).Value = "PERDA"
     End If
     
    
    '.Cells(iRow, 8).Value = Me.TextBoxDepartamento.Value
    
    End With

'lanças os itens requisitados na planilha saída
iRowSaida = Sheets("Saidas").Cells(Cells.Rows.Count, "A").End(xlUp).Row + 1

With Sheets("Saidas")
    .Cells(iRowSaida, 1).Value = Format(Now, "dd/mm/yyyy")
    .Cells(iRowSaida, 3).Value = Me.ComboBoxCodigo.Value
    .Cells(iRowSaida, 5).Value = Me.TextBoxqtd.Value
    .Cells(iRowSaida, 6).Value = Me.ComboBoxDescrição.Value
    .Cells(iRowSaida, 7).Value = Me.TextBoxUnidade.Value
    .Cells(iRowSaida, 8).Value = Me.ComboBoxRequisitante.Value
    If OptionButton1 = True Then
    .Cells(iRowSaida, 9).Value = "SAÍDA OP"
     End If
     
     If OptionButton2 = True Then
     .Cells(iRowSaida, 9).Value = "TRANFERÊNCIA"
     End If
     
       If OptionButton3 = True Then
     .Cells(iRowSaida, 9).Value = "PERDA"
     End If
     
     If OptionButton2 = True Then
     .Cells(iRowSaida, 10).Value = Me.ComboBoxArmazen.Value
     Else
     .Cells(iRowSaida, 10).Value = "x"
     End If
    '.Cells(iRowSaida, 9).Value = UCase(Me.TextBoxLocalEntrega.Value)
        
End With

Note que ao inserir dados na planilha APOIO todos células são preenchidas corretamente e na planilha SAIDAS as células 2 e 4 são omitidas. Repare também que ao clicar em TRANSFERIR os dados da planilha APOIO são copiados, mas já existem os dados com campos em branco na planilha SAIDAS. Por isso os dados ficam desordenados, porém está tudo correto.

Aguardo retorno.

Abs

Espero ter ajudado.

Abs.

Saulo Robles

 
Postado : 05/01/2016 10:44 am
(@paulo_001)
Posts: 149
Estimable Member
Topic starter
 

srobles,

Me esclareça uma dúvida :

Os dados devem ser lançados na planilha SAÍDAS apenas quando se clica em transferir ou deve ser feito durante a inserção de dados no formulário?

Sim, na verdade essa planilha tinha outra função. Os colaboradores da empresa utilizavam para gerar uma requisição de material de escritório que era enviada para meu e-mail.
Só que agora eu preciso dela para outra situação.

Notei que no evento do botão ADICIONAR A LISTA, os dados são inseridos tanto na planilha APOIO quanto na planilha SAIDAS, porém na planilha SAIDAS algumas células da última linha são ignoradas, veja o código abaixo :

Verdade!! Achei que tinha comentado essas linhas do código antigo. Ai está o erro!.

Muito obrigado Amigo.

 
Postado : 05/01/2016 6:38 pm