| Copiar linha completa para outra sheet, se uma célula não está vazia | |
|
|
Autor | Mensagem |
---|
PatriciaBarbosa
Mensagens : 8 Data de inscrição : 25/07/2013 Idade : 36 Localização : Lisboa
| Assunto: Copiar linha completa para outra sheet, se uma célula não está vazia Qui Jul 25, 2013 11:39 pm | |
| Olá a todos Estive a pesquisar aqui no forum, mas não consegui encontrar uma solução para o meu problema.
Então cá vai:
eu tenho uma folha de cálculo com 2 sheets. Na sheet1 há um resumo de toda a informação relativa aos colaboradores de uma empresa num determinado mês. Nas colunas AW e AX são registadas as saídas e entradas de colaboradores (estas células só são preenchidas quando há uma entrada ou saida, caso contrário ficam em branco). O que pretendo é que quando preencho estas células, na sheets2 seja feita uma cópia da linha correspondente a esse colaborador.
Eu criei a macro abaixo, mas só funciona se a sheet2 estiver vazia caso contrário não actualiza quando que eu faço mudanças nas colunas das entradas e saidas.
Sub Copiar() Dim i As Integer Dim k As Integer 'Variável para controlar a linha de destino k = 2 'Percorre ""Nova Comercial - Rec Humanos"" da linha 2 até a 250 For i = 2 To 250 'Se o valor das células das colunas "AX" e "AW" for diferente de 0 If Sheets("Nova Comercial - Rec Humanos").Cells(i, "AW").Value <> "" Or Cells(i, "AX").Value <> "" Then 'Copia a linha "i" no intervalo que compreende as colunas B a AX 'para linha de destino a partir da coluna "k"
Sheets("Nova Comercial - Rec Humanos").Range(Cells(i, "B"), Cells(i, "AX")).Copy Sheets("Lista de saídas e entradas").Cells(k, "B") 'Incrementa o valor de "k" para que o intervalo seguinte seja copiado na linha de baixo. k = k + 1 End If Next End sub
Se alguém me conseguir ajudar a perceber o que está errado.... obrigada | |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: Re: Copiar linha completa para outra sheet, se uma célula não está vazia Sáb Jul 27, 2013 4:46 am | |
| Boa noite!!
Tem como postar seu arquivo modelo em site gratuito??
Depois poste seu link arqui!!
Att | |
|
| |
PatriciaBarbosa
Mensagens : 8 Data de inscrição : 25/07/2013 Idade : 36 Localização : Lisboa
| Assunto: link para o ficheiro Sáb Jul 27, 2013 6:22 pm | |
| Boa tarde, aqui esta o link para a folha de excel
sendspace.com/file/bxhj4c
O que eu pretendo é que sempre que eu preencho uma célula da coluna AW ou AX da folha 1 a linha correspendente a essa célula seja copiada (desde a coluna A até AX para a folha 2 que tem o mesmo cabeçalho. Queria que este procedimento fosse automático. Obrigado! | |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: Re: Copiar linha completa para outra sheet, se uma célula não está vazia Seg Jul 29, 2013 1:41 am | |
| Boa Noite!! Veja se você consegue adaptar Na coluna AY da guia "Nova xxxxx - Rec Humanos" coloque a função - Código:
-
=SE(OU(AW2<>"";AX2<>"");1;0) - Código:
-
Sub CopiarAleVBA() Dim lRow As Long Application.ScreenUpdating = 0 Application.Calculation = xlCalculationManual
lRow = Range("C" & Rows.Count).End(xlUp).Row
Sheets("Nova xxxxx - Rec Humanos").Range("C2:AY" & lRow).Copy Sheets("Lista de saídas e entradas").Range("C1").Offset(1).PasteSpecial (xlPasteValues) With Worksheets("Lista de saídas e entradas").UsedRange .AutoFilter Field:=51, Criteria1:=0 .Offset(1).EntireRow.Delete .AutoFilter End With
Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = 1 End Sub
Há varias maneiras de se fazer isso, o restante eu deixarei para sua criatividade. Att | |
|
| |
PatriciaBarbosa
Mensagens : 8 Data de inscrição : 25/07/2013 Idade : 36 Localização : Lisboa
| Assunto: Re: Copiar linha completa para outra sheet, se uma célula não está vazia Seg Jul 29, 2013 12:52 pm | |
| Antes de mais muito obrigada pelo feedback ! Eu sou relativamente nova a mexer com o vba pelo que ainda tenho bastantes dificuldades "básicas". É suposto o código copiar a informação da folha 1 para a folha 2 e depois mediante o filtro aplicado à coluna AY apagar as linhas correspondentes a "0".Certo? Por algum motivo, que eu não estou a perceber qual, o código dá erro a partir daqui.... .AutoFilter Field:=51, Criteria1:=0 .Offset(1).EntireRow.Delete .AutoFilter End With Ou seja copia a informação para a folha dois mas não estou a conseguir que faça o filtro e apague o que não é necessário.... Alguma ideia de como resolver isto? Muito obrigada! | |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: Re: Copiar linha completa para outra sheet, se uma célula não está vazia Sáb Ago 03, 2013 3:05 am | |
| Boa noite!! Da forma como eu fiz não foi tão inteligente, mas é possível criar derivadas formas para isso. Eu não tive problema com seu anexo, mas imagine que no código eu não referenciei a guia ou tem células mescladas etc. Tudo isso pode gerar erro. Leia: http://www.bertolo.pro.br/FinEst/SemanaContabeis2007/MacroExcel.pdf Tente assim - Código:
-
Sub coiar() Dim lRow As Long Sheets("Nova xxxxx - Rec Humanos").Select '<--Veja esse linha Application.ScreenUpdating = 0 Application.Calculation = xlCalculationManual
lRow = Range("C" & Rows.Count).End(xlUp).Row Sheets("Nova xxxxx - Rec Humanos").Range("C2:AY" & lRow).Copy Sheets("Lista de saídas e entradas").Range("C1").Offset(1).PasteSpecial (xlPasteValues) With Worksheets("Lista de saídas e entradas").UsedRange .AutoFilter Field:=51, Criteria1:=0 .Offset(1).EntireRow.Delete .AutoFilter End With
Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = 1 End Sub
Att | |
|
| |
PatriciaBarbosa
Mensagens : 8 Data de inscrição : 25/07/2013 Idade : 36 Localização : Lisboa
| Assunto: Re: Copiar linha completa para outra sheet, se uma célula não está vazia Qua Ago 28, 2013 11:56 am | |
| Boa noite, peço desculpa pela demora a dar feedback. Funcionou na perfeição.... obrigada | |
|
| |
PatriciaBarbosa
Mensagens : 8 Data de inscrição : 25/07/2013 Idade : 36 Localização : Lisboa
| Assunto: Re: Copiar linha completa para outra sheet, se uma célula não está vazia Qui Ago 29, 2013 12:22 pm | |
| Bom dia, precisava de mais uma ajuda numa macro que penso que está quase concluída mas que falta um passo que não estou a conseguir fazer ;( estão é assim: eu preciso que se faça um find what (pelo nome das "categorias") na folha "dados", que se copiem os valores das contas associadas a essa categoria e que se cole na folha "sheet_destino" que corresponde a essa mesma categoria. A macro que criei faz esse processo, com um problema que é: quando a categoria é formada apenas por uma conta ela está a copiar contas erradas (exemplo categoria 6,7 e 8 ). Penso que a solução passa por fazer o find e testar se a célula abaixo está em branco...mas não estou a conseguir fazer . Deixo aqui o link para uma sheet de exemplo onde está feita a macro que já criei. http://www.sendspace.com/file/axlb80 se me puderem ajudar agradecia imenso. | |
|
| |
alexandrevba
Mensagens : 1820 Data de inscrição : 13/07/2011 Localização : Serra - ES
| Assunto: Re: Copiar linha completa para outra sheet, se uma célula não está vazia Sáb Ago 31, 2013 2:39 am | |
| Boa noite!! Como eu estou bem atrapalhado com tempo, por ventura, porque sua guia "Sheet_destino" não poderia ser em formato de baco de Dados Att | |
|
| |
PatriciaBarbosa
Mensagens : 8 Data de inscrição : 25/07/2013 Idade : 36 Localização : Lisboa
| Assunto: Re: Copiar linha completa para outra sheet, se uma célula não está vazia Dom Set 08, 2013 4:37 pm | |
| Olá Alexandre, antes de mais muito obrigada pela resposta rápida. Não sei se percebi bem a sua sugestão, mas a questão é que a informação da sheet "dados" é retirada todos os meses do sistema informático e varia de mês para mês...penso que só desta forma consigo garantir que se aparecerem categorias com novas contas elas são sempre contabilizadas...acha que consegue ajudar-me?a Obrigada | |
|
| |
PatriciaBarbosa
Mensagens : 8 Data de inscrição : 25/07/2013 Idade : 36 Localização : Lisboa
| Assunto: Re: Copiar linha completa para outra sheet, se uma célula não está vazia Dom Set 22, 2013 1:25 pm | |
| Bom dia....ainda estou a tentar resolver esta questão..... Alguém tem alguma sugestão? Obrigada! | |
|
| |
Conteúdo patrocinado
| Assunto: Re: Copiar linha completa para outra sheet, se uma célula não está vazia | |
| |
|
| |
| Copiar linha completa para outra sheet, se uma célula não está vazia | |
|