é,
mas como falei ainda estou limpando e redefinindo,
Essa é aquela macro que somente ficava legal na segunda vez que executava,Ja limpei e redefini muita coisa.
o codigo por ser de logica meio complicada,
eu executava, via o resultado, e ia mudando os valores,
e nos testes eu colocava -1 +1 para ver a variação do deslocamento.
Mudei muitas vezes "não tenho o raciocínio tão bom assim para fazer tudo de primeira.
mas nessas partes a maioria do +1 e -1 vai ser trocada por Lig e Lag que que tem seus valores entre -1 e +1 dependendo da direção da leitura e escrita.
então consequentemente tem que ser "="
repare nessa sequencia
If Cqd = Dcf Then
If Ldi = DLfc Or Ldi = DLic Then
Cqd = Dci: DLic = DLic - DcqL: DLfc = DLfc - DcqL: Lag = Lag * -1: Ldi = Ldi - DcqL + Lag:
End If
End If
Lag tem seu Valor "invertido" antes da próxima operação
If Ldi = DLic And Cqd = Dcf + Zag Then
Cqd = Dcf + Zag >>> "Cqd = Dcf + 1" "Cqd = Dcf + -1"
assim eu evito de fazer varias verificações seguidas
sobre os muitos if
If Cqd = Dcf Then
If Ldi = DLfc Or Ldi = DLic Then
só entra no segundo se a primeira for atendida
enquanto :
If Cqd = Dcf And Ldi = DLfc Or Cqd = Dcf And Ldi = DLic Then
esta além de ser mais complicada analisar,
Mesmo "Cqd = Dcf" sendo falso vai ser analisado 2 vezes fazendo portanto + 3 comparações desnecessárias." isso na minha teoria".
SE for correto meu ponto de vista, apesar do tempo adicional se pequeno num loop de verificação de mais de 6000 linhas X 40 colunas ou muito mais dependendo do caso, alguns milissegundos economizados vai se somar a outros na mesma perspectiva.
E Infelizmente não tenho a menor ideia de como fazer uma função, já li um monte de coisa a respeito mas não consegui aplicar.
mas nesse caso não sei se iria diminuir as linhas de comando, por estarem sem repetições e em cascata " só passa para a segunda se a primeira for aceita
Sobre a macro, ela le setor de origem que pode estar em outra planilha, le o setor de destino "pode ser o mesmo setor de origem", dependendo das escolha nas Combobox, textbox,e das caixas de seleções "é um conjunto, pode ser todas ou nenhuma" ,
copia da origem para o setor Auxa faz os ajustes necessários no setor de destino adicionando ou excluindo colunas,
verifica os parâmetros dos dois setores e define as variáveis
ela faz a leitura dos dados no setor auxa celula por celula
A sequencia de leitura é muito grande para especificar
e grava no setor auxB que tem as mesmas possibilidades
origem e destino podem ter tamanhos diferentes
dá para transformar um setor de "1000 linha X 40" colunas em "40 linhas X 1000 colunas" podendo escolher se os dados da direita vão estar em cima ou em baixo e os dados de cima vão estar na direita ou esquerda, ou fazer tudo em zig zag ,é apenas um dos exemplos.
alem das filtragens de valores e mais algumas coisas
depois copia tudo no setor de destino
lendo assim parece até que é uma rotina complicada mas é até bem simples.
Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.
"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"
Postado : 23/04/2014 4:04 pm