Notifications
Clear all

Travar linhas

7 Posts
2 Usuários
0 Reactions
1,440 Visualizações
(@jokerpot)
Posts: 132
Estimable Member
Topic starter
 

Pessoal Boa Tarde!

Tenho uma duvida que nao consegui resolver.

Tenho uma planilha com 2 abas (Plan1 e Plan2) sendo que a Plan1 é alimentada via Macro que apaga o conteúdo das células e insere novos dados.

Na Plan2 existem formulas tipo somase que somam valores da Plan1 com critérios definidos.

A formula seria + ou - essa abaixo:

=SOMASE(Plan1!$E$4:$E$100000;Plan2!F8;Plan1!$H$4:$H$100000)

A formula funciona perfeitamente, porem notei que sempre quando rodo a Macro as referencias E100000 e H100000 vão perdendo linhas.

Exemplo: Quando rodo a macro essas referencias ficam E90000 e H90000. Quando rodo outras vez ficam E80000 e H80000 e assim sucessivamente.

Tem algum jeito de travar sempre na mesma referencia?

obs: se fizer pela coluna inteira da certo, porem a macro fica muito lenta.

 
Postado : 11/02/2016 1:17 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

O ideal seria vc colar aqui o código da macro
Mas eu diria que certamente vc usa o. Delete nesse código e ele destrói referências mesmo...

Cola o código e arrumamos ele pra vc

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 11/02/2016 1:34 pm
(@jokerpot)
Posts: 132
Estimable Member
Topic starter
 

Fernando Boa Tarde!

Segue parte do codigo.

Acredito que a causa então seja o que esta em negrito.

Abraços,

Sub FORMATAR()

TEMPO_INI = Time
x_ABA = "CONTINGENCIA ATUAL"

ULTIMA_LINHA_GERAL = Sheets("GERAL").Range("B1048576").End(xlUp).Row

Sheets("CONTINGENCIA ATUAL").Select
ULTIMA_LINHA_CONT = Sheets("CONTINGENCIA ATUAL").Range("A1048576").End(xlUp).Row

If ULTIMA_LINHA_CONT = 5 Then
   ULTIMA_LINHA_CONT = 6
End If

[b]x_ROWS = "6:" & ULTIMA_LINHA_CONT
Rows(x_ROWS).Select
Selection.Delete Shift:=xlUp[/b]

ULTIMA_LINHA_CONT = Sheets("CONTINGENCIA ATUAL").Range("A1048576").End(xlUp).Row
    
If ULTIMA_LINHA_CONT = 5 Then
   ULTIMA_LINHA_CONT = 6
End If

Sheets("GERAL").Select

Status = False
n_IMP = 4
NUMERADOR = 1
POSSIVEL = Sheets("CONTINGENCIA ATUAL").Cells(2, 7).Value
PROVAVEL = Sheets("CONTINGENCIA ATUAL").Cells(3, 7).Value
 
Postado : 11/02/2016 1:42 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Isso mesmo, exatamente isso... troque por:

x_ROWS = "6:" & ULTIMA_LINHA_CONT
Rows(x_ROWS).Clear

p.s.: não dá pra negritar dentro da tag de código, rsrs

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 11/02/2016 1:45 pm
(@jokerpot)
Posts: 132
Estimable Member
Topic starter
 

Fernando,

Só percebi que nao dava pra negritar depois que postei, kkkkk

Funcionou em partes. Ocorreu que a planilha perdeu a formatação.

Exemplo, os textos estão formatado em Arial e os numeros como contábil. Alterando a parte mencionada os textos estao como Calibri e os numeros como Geral! :(

 
Postado : 11/02/2016 1:49 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Tudo bem, troque Clear por ClearContents

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 11/02/2016 2:07 pm
(@jokerpot)
Posts: 132
Estimable Member
Topic starter
 

Tudo bem, troque Clear por ClearContents

Fernando Bom Dia!

Muito obrigado pela ajuda.
Deu certo.

Abraços,

 
Postado : 12/02/2016 5:58 am