Página 1 de 1

Adicionar linha no final da tabela.

Enviado: 24 Dez 2016 às 12:07
por JessicaRosa
Boa tarde, Pessoal

Estou começando a aprender a mexer em Macros e necessito criar uma em especial.
Criei uma planilha com diversas abas para controle de vendas por dia, estoque, vendas por modelo e despesas, porém tenho que manter algumas células bloqueadas para não ocorrer a alteração das fórmulas e, com isso, não se consegue aumentar as linhas da tabela e arrastar as formulas quando as vendas ultrapassam as linhas já pré-determinadas por mim.
O que eu necessito é de uma Macro que crie uma linha sempre depois da ÚLTIMA linha preenchida da tabela, com as formulas já determinadas.
Estou vasculhando a internet a uns 4 dias e as que encontro criam linhas no meio da tabela, pois se baseiam em uma terminada linha e criam a nova linha abaixo desta, ficando antes ou após a linha copiada na macro, não indo para o FINAL.

Exemplo:
Produto Mês Data Quantidade Valor Unitário Valor Vendido(bloqueada) Pagamento
....X.............X.........X..............X....................X..............................X..............................X
....Y..............Y.........Y................Y.....................Y...............................Y...............................Y
...Z..............Z........Z...............Z....................Z..............................Z..............................Z
(FINAL DA TABELA - CRIAR NOVA LINHA APERTANDO NO BOTÃO "INSERIR LINHA")

Muito obrigada!

Re: Adicionar linha no final da tabela.

Enviado: 24 Dez 2016 às 12:26
por gfranco
Boa tarde JessicaRosa.
Seria interessante que vc postasse sua planilha ( com dados fictícios mas mesma estrutura) com a macro de gravação escrita para uma sugestão mais acertada, entretanto, aqui vai uma sugestão meio "genérica" para resolver seu problema.
Como vc está trabalhando com macro eu imagino que a rotina de proteção tenha sido escrita via macro e não através da aba revisão->proteger planilha então:
Na macro de gravação, acrescente uma rotina de desproteção da referida planilha que receberá os dados e, após a gravação dos mesmos, a mesma macro fará a proteção novamente.
At
gfranco

Re: Adicionar linha no final da tabela.

Enviado: 24 Dez 2016 às 14:51
por JessicaRosa
Boa tarde, Gfranco

Segue a planilha em anexo.
Como você vai ver, a Macro está copiando a primeira linha e duplicando ela. Não consigo configurar nela a linha a ser copiada e a posição na qual será inserida.
Outra questão é da proteção da planilha, anexei ela desprotegida, porém quando protejo, ao tentar aplicar a Macro, aparece um erro. Não sei como fazer para aplicar a Macro com a planilha protegida também.

Muito obrigada!

Re: Adicionar linha no final da tabela.

Enviado: 25 Dez 2016 às 18:46
por gfranco
Boa noite e Feliz Natal.
Veja se o anexo se aproxima de seu objetivo.
Escrevi as macros ( uma para a planilha vendas e outra para a planilha despesas) e deixei comentado o código no módulo1
Estou devolvendo o arquivo no mesmo formato que vc enviou: Planilha do Microsoft Excel 97-2003 (.xls).
At
gfranco

Re: Adicionar linha no final da tabela.

Enviado: 26 Dez 2016 às 09:42
por JessicaRosa
Bom dia, Gfranco!
Obrigada! Espero que tenhas tido um ótimo Natal!
O objetivo da planilha é este mesmo, porém tive um probleminha com ela. Como todas as células estavam bloqueadas, não permitindo a adição dos dados, desbloqueei algumas para que fossem completadas mesmo com a planilha protegida. Quando terminei de fazer isto, começou a aparecer um erro o seguinte erro em vermelho:

If ULINHADADOS = ULINHAFORMULA Then
If Len(Trim(TARGET.Value)) > 0 Then
ActiveSheet.Range("c" & ULINHADADOS, "i" & ULINHADADOS).Copy
ActiveSheet.Range("C" & ULINHADADOS + 1, "i" & ULINHADADOS + 1).PasteSpecial xlPasteAll
Application.CutCopyMode = False
ActiveSheet.Range("C" & ULINHADADOS + 1).Value = vbNullString
ActiveSheet.Range("E" & ULINHADADOS + 1).Value = vbNullString
ActiveSheet.Range("F" & ULINHADADOS + 1).Value = vbNullString
ActiveSheet.Range("G" & ULINHADADOS + 1).Value = vbNullString
ActiveSheet.Range("I" & ULINHADADOS + 1).Value = vbNullString
End If

End If


End If
ActiveSheet.Range("C" & ULINHADADOS).Select


End Sub


Precisaria poder modificar as células, mesmo com as planilhas protegidas, impedindo a modificação apenas das com fórmulas.
Outra questão é quando aperto o botão inserir linha, ele está puxando a linha anterior com todos os dados preenchidos, haveria uma maneira de puxar ela vazia (sem dados), mas com as formulas?
Fiz as últimas modificações na planilha e estou colocando em anexo com todas as abas completas para ser feito nela, pode ser?

Muito obrigada!

Re: Adicionar linha no final da tabela.

Enviado: 26 Dez 2016 às 10:09
por gfranco
Bom dia.
Posso fazer sim.
Hoje estou muito atarefado aqui no trabalho então creio que só amanhã conseguirei ver isso com calma....

Re: Adicionar linha no final da tabela.

Enviado: 26 Dez 2016 às 21:11
por gfranco
Boa noite Jessica
Veja na plan vendas se a macro atende seu objetivo.

Adicionar linha no final da tabela.

Enviado: 04 Jan 2017 às 11:41
por JessicaRosa
Boa tarde, Gfranco
Desculpe a demora, estava sem internet.
É exatamente isso que necessito nas demais abas! Perfeito!!

Adicionar linha no final da tabela.

Enviado: 09 Jan 2017 às 11:30
por JessicaRosa
Gfranco, analisando a fórmula, consegui adaptar para a planilha de vendas por modelo! (:
Mas surgiu uma dúvida, como necessito analisar a penúltima linha das tabelas 'despesas' e 'estoque' e adicionar a linha antes do cálculo de soma, qual o código que analisa essa penúltima linha?