Bom dia Sandro,
Os desdobramentos para atendimentos devem chegar a no máximo em número de 6-8. Já o de parcelamentos podem chegar a 30
Usaremos essa informação para limitar a quantidade de linhas informadas na hora de abrir um desdobramento.
O que vale pra avaliarmos a performance, e suas consequências (se vamos usar fórmulas ou valores nas filhas, por exemplo) não é o máximo de parcelamentos ou atendimentos.
O que é interessante saber é:
-Quantidade média estimada de registros por ano (parece que já temos esse dados: 5000)
-Quantidade média estimada de registros que terão desdobramento de Atendimento (ex. 1000 das 5000 linhas)
-Quantidade média estimada de registros que terão desdobramento de Parcelamento (ex. 2000 das 5000 linhas)
-Quantidade média de linhas que terá um desdobramento de Atendimento típico (ex. 4 linhas)
-Quantidade média de linhas que terá um desdobramento de Parcelamento típico (ex. 8 linhas)
São valores estimados. Depois podemos colocar 20% de margem acima para efetuar os testes.
Quando falei de macros ou fórmulas estava me referindo à situação colocada logo acima... mas dentro dessa situação que vc colocou as linhas filhas podem copiar a mãe... exceto pela coluna sub (óbvio) e pelas colunas que envolvem valor financeiro (contábeis)... penso eu.
... eu prefiro linhas cheias mesmo que não sejam fórmulas... mas se é para melhorar a performance manda ver.
Podemos fazer assim e ver se fica muito demorado, mas de qualquer forma, se fizermos assim, os valores serão passados da mãe para a filha de forma fixa, ou seja, sem fórmula, pois se usarmos fórmulas a classificação bagunçará essas fórmulas.
Eu tinha proposto da linha ficar vazia na filha, porque caso após feito o desdobramento, a mãe sofrer alguma alteração de valor em alguma das suas células, a filha não será atualizada. Com isso, o operador corre o risco de consultar aquela informação na linha filha e obter um dado inválido. Pra não ocorrer isso teríamos 2 alternativas:
- O operador terá que fazer a alteração nas linhas filhas também;
- A macro que Ordena e Acerta poderia verificar eventuais diferenças, e recopiar todos os dados que não batem, da mãe para as filhas, a cada vez que fosse executada. Mesmo assim, no intervalo entre a alteração na linha mãe, e a execução da
dos acertos, a informação estará divergente entre mãe e filhas.
____
Como você está aprendendo (e eu também, sempre!), de vez em quando eu escrevo coisas que não tem a ver com o projeto, mas já que esbarramos nelas, eu comento. Lá vai mais uma.
Falei no post a respeito de uma das finalidades de declarar variáveis, que é evitar enganos de digitação.
Há outras: ela é importante também para economizar espaço de memória. Se você precisa guardar uma informação em uma variável, usando o DIM com declaração do tipo de variável, o Excel vai alocar a memória suficiente pra guardar aquilo. Um número grande ocupa varias vezes mais espaço do que um número de 1 dígito. Se você usa o DIM com declaração de tipo, economiza espaço. Para variáveis únicas da macro (ex.: ColReg, Lin, LFCR1, ErroABC), não vejo vantagem nisso. A economia é mínima perto do espaço que temos de memória. A necessidade começa quando falamos de matrizes. Se dimensionar uma matriz de 500.000 componentes, e disser que eles serão do tipo Double, ou se disser que serão do tipo String, ou se disser que serão do tipo Byte, haverá diferença, pois a redução de espaço individual será multiplicada por 500mil. Eu, particularmente, só declaro variáveis nessas condições, quando haverá significativo ganho de memória.
Tem vezes que a declaração faz ocupar ainda mais memória. Em programação é comum ter que usar uma variável momentânea, que tem abrangência apenas dentro de um loop, por exemplo, apenas numa parte da macro. Eu costumo usar a variável Aux1 para isso (se forem mais, uso Aux2, Aux3, etc). São variáveis que ajudam só de forma localizada. Depois de usar, mais pra frente na macro, se tiver necessidade de outra variável local, uso Aux1 novamente, mas sua finalidade não tem nada a vez com a primeira utilização. Elas podem conter número, ou texto, ou operadores lógicos, sei lá. A situação é quem define. Se eu declarar Aux1 como Double, por exemplo, porque vou usá-la dessa forma, mais pra frente se precisar usar uma variável auxiliar novamente, para guardar texto, não poderei usar Aux1. Terei que declarar e usar outra variável. Se eu não declarar que Aux1 é de um determinado tipo (o Excel a considera Variant, que corresponde a "Coringa"), poso usar diversas vezes durante a macro.
Para aqueles que querem declarar pelo primeiro motivo (evitar erros de digitação) mas não pelo segundo, não querem ficar pensando no tipo de variável, quanto ocupa, etc (me refiro ás variáveis simples, de 1 ocorrência) eles podem declarar a variável, mas sem declarar o tipo. Ex.:
DIM LFCR1, LFCR2, LFCR3, Flag, Auxiliar, Erro, Erro2.
Jimmy