Essa discussão na verdade é pra saber pq as pessoas não usam ou evitam usar globais, e assim, mostrar pra vc Ed, que todo mundo segue as "minhas" regras, pq não são minhas, são padrões internacionais de desenvolvimento que funcionam e são aplicados em quase todas as linguagens. E de quebra, pararmos de sujar o tópico do outro menino, pois já foi respondido e ele nunca nem voltou pra ver a resposta. E qdo voltar vai levar um susto.
Eu falei no tópico para ser objetivo na resposta e vc fez algumas respostas enormes, Claro respeito vc e suas respostas, mas o foco deste tópico é entender pq evitar as globais (ou publicas)... E vc está explicando pq vc as usa. O que é coerente, mas sua opinião é oposta.
Mas eu acho que seu caso é diferento do caso do Gilmar, BEM diferente. Vc usa na maioria as variáveis globais. Vc tem mais globais do que locais, sempre. Vc não fica só em umas duas, no máximo 5.. Isso fica claro nos seus códigos.
Nós usamos publicas só em casos onde identificamos que a única alternativa é essa. E pode sim acontecer de ter várias, mas terá uma boa explicação, um bom motivo pra cada uma delas.
primeiro não sei como Não usar elas para oq eu quero fazer uso apenas como intercambio entre macros
Não saber é o primeiro passo para aprender. O reconhecimento de uma limitação é saber aonde vc pode melhorar. Usá-las para intercâmbio entre macros é também resolver um problema de conta de soma, por exemplo, abrindo o Excel. Digamos, vc quer fazer uma soma, e pode usar a calculadora que está ao seu lado, mas vc liga o computador, loga no windows, abre o Excel escreve nas células e faz a soma. Resolve? Claro que resolve, mas não precisa ir tão longe. Assim como as publicas resolvem seus problemas mas acabam atrapalhando seu raciocinio. Oras, se o objetivo é passar variaveis de uma macro pra outra, não custa nada aprender a parametrizar. Até pq vc não perderia 5 dias pensando nas variáveis, antes de perder mais 3 horas desenvolvendo algo que vc poderia fazer tudo em 1 hora se abrisse sua mente para outros meios de trabalhar.
A maioria das pessoas vai dizer que usa uma, duas, se o projeto for enorme, talvez 10... eu já fiz código com 50mil linhas e mesmo evitando publicas e globais, devo ter usado umas 15, talvez 20, no máximo, e a maioria nem eram variáveis, eram constantes.
Entendeu ?
Para passar variaveis como parametros é só aprender o seguinte:
- Opcionalidade da existêcia da variável
- ByVal e ByRef
- Nomenclatura adequada (e não, variaveis com duas letras...)
- Tipagem adequada sempre
- ParamArray (passar varias variáveis que serão vistas como uma matriz no código destino)
A assinatura das rotinas *(quando digo assunatura, me refiro à linha que diz Sub ou Function) diz se a rotina vai retornar valor ou não, diz todas as variáveis que serão usadas ali dentro (se vierem de fora), todas se tornam locais, podem manter ou perder valor ao término da rotina, o código fica mais limpo, etc... mas vc tb já disse q não se preocupa nem um pouco com o que vão pensar do seu código ou com o uso que vão dar, uma vez que vc esteja ausente.... Isso cria dependêcia do cliente, o que por um lado é bom, ele sempre vai ter que chamar vc, mas ao mesmo tempo ele pode desconsiderar tudo que vc tem, e fez pq ninguem consegue dar manutenção ou continuidade nas suas ferramentes, qdo vc está indisponível... Vc acaba fazendo algo que só você entende, só você usa.
E preciso admitir, com respeito a sua pessoa, claro, mas dps das nossas gigantescas discussões, da sua teimosia em aprender jeitos melhores e mais fáceis, e vc até já justificou que vc tem o seu jeito e eu respeitei e respeito. Mas vc deve ter percebido que eu passei a evitar tópicos seus. Vc raramente vê resposta minha em tópicos seus. Isso pq eu percebi que minhas tentativas de intervenção nas suas macros eram inúteis. Então resolvi parar de perder meu tempo.
E digo uma coisa positiva, só estou criando este tópico e assim, tentando ajudar a fazer vc enxergar, pq no outro tópico vc mencionou que se alguém conseguir te ajudar vc estará aberto a aprender. Daí vc conseguiu fazer nascer em mim o interesse em te ajudar.
Mas daí será outro tópico... "Como iniciar um desenvolvimento simples", ou sei lá, complexo... Ali vou ensinar como declarar variáveis, como fazer fluir o raciocínio para não haver perda pelo caminho, etc.
Aos poucos aprendemos, melhoramos e continuamos ensinando. Vc precisa de um pouco mais de trabalho, mas eu quero sim te ajudar. E espero que você esteja disposto a aprender.
o foco deste tópico é:
Pq evitar globais? E assim, quero que vc continue acompanhando, mas com objetivo principal de você LER o que a galera responde...
Abs,
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 10/04/2015 6:14 pm