Escolar Documentos
Profissional Documentos
Cultura Documentos
InterfaceComparaodeCurvasdeCrescimento:
AplicaoInformticaparaoauxlonacomparaodeCurvasde
Crescimentodepopulaesdepeixes
DepartamentodeMatemticaPura
FaculadedeCinciasdaUniversidadedoPorto
2008
AnaIsabelCoelhoBorges
InterfaceComparaodeCurvasdeCrescimento:
AplicaoInformticaparaoauxlonacomparaodeCurvasde
Crescimentodepopulaesdepeixes
DissertaosubmetidaFaculdadedeCinciasdaUniversidadedoPorto
paraobtenodograudeMestreemEnsinodaMatemtica,soba
orientaodaDoutoraMariaCarvalhoedoDoutorPauloSantos.
DepartamentodeMatemticaPura
FaculadedeCinciasdaUniversidadedoPorto
2008
1
NDICE
ndicedeFiguras
ndicedeTabelas
1.Introduo
2.EnquadramentoTerico
2.1ModelosMatemticosdeCurvasdeCrescimentoComprimentoIdadedePeixes
ePrincipaisDiferenas
2.1.1.ModelodeVonBertalanffy
2.1.2.ModeloLogstico
11
2.1.3.ModelodeGompertz
13
2.2. MtododosMnimosQuadradosNoLinearcomomtododeajustede
dadosidadecrescimentoaosmodelosdecrescimento
17
2.3. ComparaodecurvasdecrescimentoOTestedarazodeverosimilhana
deKimura(1980)
19
3.Metodologia
24
3.1.
PrimeiraparteAjusteaModelosdeCrescimento
28
3.2.
SegundaParteTestedaRazodeVerosimilhana
37
3.3.
TerceiraParteComparaoPontual
42
4.ResultadoseDiscusso
54
5.Concluso
62
6.RefernciasBibliogrficas
64
7.Anexos
65
7.1.Anexo1MacrosDesenvolvidasnaInterfaceComparaodeCurvasde
CrescimentonocampoModules.
65
7.2.Anexo2InterfaceComparaodeCurvasdeCrescimento.
116
NDICEDEFIGURAS
Figura2.1RepresentaogrficadeumacurvadecrescimentodeVonBetalanffy.
Figura2.2RepresentaogrficadeumacurvadecrescimentoLogstica.
12
Figura2.3RepresentaogrficadeumacurvadecrescimentodeGompertz.
14
Figura3.1CaixadeTextocomaIntroduodaInterface.
25
Figura3.2AspectoInicialdaInterface.
26
Figura3.1.1AspectodaprimeirapartedainterfaceAjusteaModelosdeCrescimento.
27
Figura3.1.2CaixadeTextorelativaaobotodeAjudadareaModeloaAjustar.
28
Figura3.1.3CaixadeTextorelativaaobotodeAjudadareaValoresIniciaisdos
Parmetros.
28
Figura3.1.4CaixadeTextorelativaaobotodeAjudadareaResultados.
32
Figura3.1.5Aspectodajanelacomogrficodacurvaajustadaerespectivosdados
introduzidospeloUtilizador.
33
Figura3.1.6readeTransfernciadeResultados.
34
Figura3.1.7CaixadeTextorelativaaobotodeAjudadareaTransfernciade
Resultados.
35
Figura3.2.1AspectodasegundapartedainterfaceTestedeVerosimilhana.
36
Figura3.2.2Aspectodajanelacomogrficodeduascurvasajustadaserespectivosdados. 37
Figura3.2.3readeresultadosdotestedaRazodeverosimilhana.
38
Figura3.2.4InformaoapresentadapelobotodeajudanareaTestedaRazode
Verosimilhana.
39
Figura3.3.1AspectodaterceirapartedainterfaceComparaoPontual.
41
Figura3.3.2PrimeirasderivadasdosmodelosdeCrescimento,emcomprimento,em
ordemat.
44
Figura3.3.3readecomparaodeTaxas.
46
Figura3.3.4readecomparaodeComprimentoemidadeteidadeemcomprimentoc.
46
Figura3.3.5AspectodaJanelacomoGrficodasDuasCurvasemComparao.
50
Figura3.3.6InformaoapresentadapelobotodeajudanareaComparao.
51
Figura3.3.7InformaoapresentadapelobotodeajudanareaComparaodeTaxas. 52
Figura4.1Resultadosdoajustedoconjuntodedadosrelativossfemeasaomodelode
VonBertalanffy.
55
Figura4.2Resultadosdoajustedoconjuntodedadosrelativosaosmachosaomodelode
VonBertalanffy.
56
Figura4.3RepresentaogrficadomodelodeVonBertalanffyajustadoaosdadosda
populaofmeaedorespectivoconjuntodedados.
56
Figura4.4RepresentaogrficadomodelodeVonBertalanffyajustadoaosdadosda
populaomachoedorespectivoconjuntodedados.
57
Figura4.5Representaogrficadasduascurvasdecrescimentoajustadasedos
respectivosconjuntosdedados.
58
Figura4.6Resultadosparaotestedarazodeverosimilhanadeambasascurvas.
59
Figura4.7Resultadosparaumacomparaopontualentreambasascurvas.
60
Figura4.8Resultadosparaumacomparaodetaxadevariaomdiaetaxaabsolutade
CrescimentoporIdadeentreambasascurvas.
61
NDICEDETABELAS
Tabela4.1Dadosestudadosrelativosaosdoisgnerosdeumaespciedepeixes.
54
1. RESUMO
2. INTRODUO
alternativas,massimnaescolhadevriosmodeloseposteriorinfernciaeestimao
dosparmetrosparacadamodelo.
AelaboraodaInterface,intituladaComparaodeCurvasdeCrescimento,
temcomobaseacrenaqueacomparaodecurvasdemodelosdecrescimentode
doisconjuntosdedadosdevepassarporduasfases:aescolhadomodeloquemelhor
se adequa a cada um dos conjuntos de dados em estudo de entre um conjunto de
modelos com parmetros diferentes, e, caso ambas as curvas de crescimento sigam
um mesmo modelo, a aplicao de um teste estatstico que permita estudar as
diferenasnosparmetroscasocontrriooestudodepontosbiolgicoscomotaxasde
crescimentoabsolutas,relativasoutaxasmdiasdecrescimento.
Ideia essa baseada em Quinn II e Deriso (1999) quando estes referem que
existem dois tipos de comparao quando se aplicam modelos de crescimento a
dados, um mtodo que permita escolher o melhor modelo para um determinado
conjunto de dados, de entre um conjunto de modelos que podem ter parmetros
diferentes, e um segundo mtodo, uma das maiores necessidades em investigao
populacional,queoestudodediferenasnocrescimentoentre,porexemplo,sexos
oureas.
Com o objectivo facilitar os Bilogos marinhos na comparao de curvas de
crescimento em comprimento para diferentes populaes, criouse uma Interface
Amigvelquepermiteverificaratquepontodiferemosmodelosdecrescimentode
duaspopulaes,atravsdarealizaodeumtesteestatstico,otestedarazode
verosimilhana proposto por kimura (1980) que testa as diferenas entre as
estimativas dos seus parmetros para populaes que sigam um mesmo modelo
matemtico,eaanlisedecaractersticasbiolgicascomoataxadevariaomdia,
taxasabsolutasetaxasrelativasparaduaspopulaesquesigamummesmomodelo
matemtico,oumodelosdistintos.
AInterfacepermite,tambm,queoutilizadorajusteprimeiramenteoconjunto
de dados idadecomprimento de uma populao ao modelo adequado (a adequao
do modelos tem de ser conhecida antes de se utilizar a Interface) de entre os trs
7
3. ENQUADRAMENTOTERICO
queopeixevaiatingindoocomprimentomximoassimptticoataxadecrescimento
tendeparazero)
ComoexplicamQuinnIIeDeriso(1999)omodelomaissimplesparadescreveresse
decrscimolineardataxadecrescimento(emcomprimento)comaidade,sendoL(t)o
comprimentoetaidade,umaequaodiferenciallinearnohomogneacomdois
parmetroswek econdioinicial L(t0) = L0:
(1)
Onde w a taxa de crescimento no instante inicial t0 e k um parmetro de
crescimento,comunidadet-1,relacionadocomoavelocidadeemqueacurvaatingea
assimptotavertical(ocomprimentomximoassimpttico).
Como foi referido, a taxa de crescimento decresce linearmente como funo do
tempotendendoparazeroatatingirocomprimentomximoassimpttico
Substituindoem(1)obtmse:
..(2)
Queresultanaseguintesoluo:
Fazendo L0 = 0 e interpretando
comprimento0,obtemosaequaodomodelomatemticodeVonBertallanfy:
...(3)
GraficamenteacurvadecrescimentodeVonBertalanffytemoseguinteaspecto:
11
Figura2.1RepresentaogrficadeumacurvadecrescimentodeVonBetalanffy.
atingir,representadoassimptotaverticaly =L.
k,consideradoumparmetrodecurvaturaumavezqueestdirectamente
ligadocomaamplitudedesta.
,tratasedaabcissadopontodeintercepodacurvacomoeixot.
dereferirqueacurvanopossuipontodeinflexo.
Notese que, uma vez que este estudo recai sobre o comprimento mdio os
parmetros dos modelos tm, tambm, que ser interpretados como valores mdios,
ou seja, L como o tamanho mdio mximo assimpttico, k como um parmetro de
crescimento mdio relacionado como a velocidade em que a curva atinge o
comprimento mdio mximo assimpttico e como a idade em que um peixe teria
comprimentomdio0.
12
Quinn II e Deriso (1999) atentam para o facto da utilizao deste modelo ser
geralmenterestritoaidadesavanadasumavezqueocrescimentonoinciodevida
no segue este processo de crescimento. Sendo assim, apesar de ter interpretao
biolgica,oparmetro meramenteterico.Talcomotambmooparmetro L
uma vez que a existncia de uma assimptota vertical sugere que o peixe continue a
crescerindefinidamentenuncaatingindoovalordeL.
AdiferenafundamentalentreosmodelosLogsticoedeGompertzeomodelode
Von Bertallanfy o facto dos dois primeiros serem graficamente representados por
curvas sigmoidais, ou seja, existe um ponto de inflexo, contrariamente ao que
acontecenomodelodeVonBertalanffy.
ComoexplicaDeSapio(1978)ateoriadacurvasigmoidedefendequeapopulao
cresce relativamente devagar no inicio aumentando a taxa de crescimento (ou seja,
aumentandoavelocidadedocrescimento)quandoatingeopontodeinflexo.
3.1.2. ModeloLogstico
SegundoQuinnIIeDeriso(1999),foiintroduzidaporVerhulstem1838,sendoque
Fletcher (1974) fez uma parametrizao do modelo em termos de tamanho inicial e
taxadecrescimentomxima.
ComoreferemPrageretal(1989)omodelologsticovastamenteutilizadopara
descreverotamanhodepopulaes.
No entanto, , tambm, usualmente utilizada para descrever o crescimento em
tamanhodepopulaes.
A caracterstica fundamental por detrs do modelo logstico de crescimento est
no facto de que a derivada logartmica, que pode ser interpretada biologicamente
comoataxadecrescimentorelativa,decrescelinearmentecomofunodotempoe
que, semelhana do que sucede no modelo de Von Bertalanffy existe um
crescimentomximoassimpttico(ocrescimentoestrestrito),quesepodetraduzir
naseguinteequaodiferencial:
13
..(4)
.(5)
Considerandoacondioinicial
temosque:
CalculandoasegundaderivadadomodeloLogstico
Umavezqueb>0temosqueomodelologsticotempontodeinflexoquando:
Ouseja,opontodeinflexodeumacurvadomodelologsticoser
14
unidadest1,efazendo
podeseobteraseguintereparametrizaoaequao
(5):
Figura2.2RepresentaogrficadeumacurvadecrescimentoLogstica.
3.1.3. ModelodeGompertz
Como foi referido a curva de crescimento do modelo de Gompertz uma curva
sigmoidal,semelhanadacurvadecrescimentodomodeloLogstico.Noentanto,o
quedistingueomodelodeGompertz,domodeloLogstico,ofactodedescreverum
crescimentocujataxarelativadecresceexponencialmentecomofunodotempo.
15
OmodelodecrescimentodeGompertzpodeserutilizadotantoparadescrevero
crescimento em comprimento como o crescimento em peso, apesar de no to
vastamentecomoomodelodeVonBertalanffy.
Como refere De Sapio (1990), o modelo de Gompertz pode ser descrito pela
seguinteequaodiferencial:
.(6)
Integrando(6)obtmse:
Denotando
ConsiderandoacondioinicialL(0) = L0 aconstantecdadapor:
Como
mximoassimptticodadopor
CalculandoasegundaderivadadomodelodeGompertz:
inflexoquando:
Substituindo
por
,temsequeopontodeinflexoocorrequando:
16
Oqueimplicaque,contrariamenteaoqueaconteciaparaomodeloLogstico,parao
modelodeGompertzacurvadecrescimentojnosimtricanopontodeinflexo.
AabcissadopontodeinflexodeumacurvadomodelodeGompertzserdada
por:
como o
),daseguinteforma:
17
Figura2.3RepresentaogrficadeumacurvadecrescimentodeGompertz.
18
No entanto, como foi referido no incio, para o caso da seleco do modelo que
melhorseajustaaosdados,prefervelescolhercasosespeciaisdomodelogeraluma
vezqueestespossuemumnmeroinferiordeparmetros.
Foi nesse sentido que se optou por seleccionar trs dos casos gerais do modelo
acima exposto mais referidos e estudados na bibliografia referente ao estudo do
crescimentodepeixes.
A opo por um dos casos especiais do modelo geral justificase, tambm, por
facilitar a interpretao e o entendimento do crescimento uma vez que condensa
inmerasinformaes(comoporexemplo,taxasdecrescimentooutamanhomximo
assimpttico) num pequeno conjunto de parmetros biologicamente interpretveis
quepermiteumacomparaoentrecurvasdecrescimentoquesigamestesmodelos.
3.2. MtododosMnimosQuadradosNoLinearcomomtododeajustededados
idadecrescimentoaosmodelosdecrescimento
Determinaraequaodomodelodecrescimentoquemelhorseajustaaosdados
comprimentoidade,ouseja,ajustaromodeloaosnossosdados,consisteemestimar
os parmetros do modelo a partir dos dados observados de modo a optimizar o
consenso entre os valores preditos pelo modelo e os valores observados. Por outras
palavras, de modo a minimizar o desvio entre os valores preditos e os valores
observados.
Ouseja,minimizarasomadequadradosresidual:
19
Onde ovectordosparmetrosaestimare
ovalorpreditopelomodelopara
ComoreferemPrageretal(1989),asemelhanaentreosdoismtodosreside
tanto no facto de serem baseadas na minimizao da funo da soma de quadrados
residual, como no facto de pressuporem as mesmas assumpes, ou seja, a
espcificao correcta do modelo, independncia de observaes, erros distribudos
normalmente com mdia zero e varincia comum, homoscedasticidade das variveis
independentes.
No entanto, perante a falha na homoscedasticidade das variveis
independentes possvel recorrerse ao mtodo dos mnimos quadrados no linear
pesado,ouseja,atribuiodepesoswinasvariveisindependentes.
Apesarde,nomtododosmnimosquadradoslinearserpossveldeterminara
soluoalgebricamente,nocasonolinearterdeserdeterminadaiteractivamentea
partirdevaloresiniciaisdosparmetrosaestimar.
1
Noteseque,particularizando,paraomodelodeVonBertalanffyvemque
modeloLogstico
eparaomodelodeGompertz
,parao
.
20
MarquardtquetemcomobaseomtododasdiferenasfinitasdeGaussNewton.
,deformaaencontrarosvaloresdosparmetros que
minimizamomaisrapidamentepossvelasomadequadradosresidual
encontradoiterando:
Admitiuse que os modelos possuem uma estrutura de erro aditiva cujos erros
seguemumadistribuionormaldemdia0evarinciaconstante.
Ouseja:
ParaomodelodeVonBertalanffy:
ParaomodeloLogstico:
ParaomodelodeGompertz:
Com
,ondenonmerodadosobservados.
21
estatsticaR2,umcoeficientederegressomltiplaquepodeserinterpretadocomoa
proporodavarinciaentreosvaloresobservadoseosvalorespreditospelomodelo.
Oreferidocoeficientepodeserdeterminadopelaseguintefrmula:
Ondenonmerodeobservaes,
ovalorpreditopelomodeloparaai-
Ocoeficientevariaentre0e1etemmximoquando
=0paratodas
asobservaes.
Umavezqueacomparaoentreaqualidadededoisajustespodeserinduzida
em erro, caso se estejam a comparar o ajuste entre dois modelos com um nmero
diferentedeparmetros,usualutilizarcomoestimativadaqualidadedoajusteoR2
ajustado(aosgrausdeliberdade)dadopor:
Ondekrepresentaonmerodeparmetrosestimados.
22
3.3. ComparaodecurvasdecrescimentoOTestedarazodeverosimilhana
deKimura(1980)
Cerrato (1990) no seu estudo onde compara vrios testes estatsticos que se
podem aplicar na comparao de curvas de crescimento que sigam um mesmo
modelo,concluiqueotestedarazodeverosimilhanapropostoporKimura(1980)
omaisconfivel,recomendandooparaestudosdecomparao.
23
Ainda que o estudo de Cerrato (1990) recaia somente sobre modelo de Von
Bertalanffy, o teste estatstico pode ser ampliado, como refere Haddon (2001), a
qualquer outro modelo nolinear desde que possua uma estrutura de erro aditiva
cujos erros seguem uma distribuio normal de mdia 0 e varincia
constante.
Dessaformaotestedesenvolvidonainterfacefoigeneralizadodemodoaabrangeros
modelosLogsticoedeGompertz.
Tendo por base o estudo de Kimura (1980) e a simplificao deste feita por
Haddon(2001)apresentasedeseguidaumasnteseexplanatriadotestederazode
verosimilhanaimplementadonainterface.
Considerando
comoosmodelosdecadaumadascurvasque
so os vectores
Afunodeverosimilhanaparaummodelodecrescimento
dadapor:
(9)
24
obtida
logaritmizandoambososmembrosdaigualdade(9),calculandoaderivadasparcialem
ordema eigualandoazeroobtendoseoseguinteresultado:
...(10)
Substituindooresultadoobtidoem(19)naequao(9)obtmseaseguinteequao
simplificadaparaafunodeverosimilhana:
Noteseque
tratasedasomaresidualdequadradosedessaforma,
para(9)e(10)estamosnocasoemquenoseconsideramospesoswi,noentanto,
como refere Kimura (1980) assumindo a normalidade e independncia podemse
considerar pesos na estimao simplesmente multiplicando estes pela expresso
quadrtica, ou seja, fazendo
. Assim, recorrendo notao
anteriormenteutilizadapodesesimplificaraigualdade(10)daseguinteforma:
(11)
Considerando
hiptese nula,
, e a hiptese contrria,
sob a
calculardefinidapor:
25
a estatstica teste
ter
assimptticamente
uma
distribuio
comgrausdeliberdade(GL)iguaisaonmerodeparmetrosfixos,ouseja,iguais
aonmerodeparmetrostomadoscomoiguais.
Kimura (1980) refere que a soma de quadrados residual conjunta pode ser
escritadaseguinteforma:
Onde,niotamanhodapopulaoi,wijLijetijsoopeso,ocomprimentoea
idade,respectivamente,paraajsimaobservaodainsimapopulao.
Dessaforma,aestatsticatesteacalcularserbaseadanaseguinteequao:
asomadequadradosresidualdocasodeseassumirascurvas
quadradosresidualobtidasnosajustesdecadaumadascurvasfeitosseparadamente,
a soma de quadrados residual obtido com o ajuste das curvas com uma das
restriesdashiptesesnulasacimareferidas.
Emmododeconcluso,otestedeverosimilhanapropostoporkimura(1980)para
acomparaodeparmetrosdeummodelomatemticodecrescimento,permiteque
se teste a hiptese das curvas das duas populaes serem semelhantes contra a
hiptese de serem independentes e, caso a hiptese nula seja rejeitada, permite
26
4. METODOLOGIA
ParaalmdepartirdeumobjectivoclaroqueauxiliarosBilogosMarinhos
extenso para saber lidar com a aplicao) e, ainda, que produsisse resultados
pernitentesnumestudocomparativodecurvasdecrescimento.
linguagemdeprogramaobaseadanoVisualBasicqueassociadaaoExcelpermiteum
controlototaldafolhadeclculo.Estalinguagemtemcomoobjectivoaautomatizao
detarefasqueenvolvamobjectos,sendoque,oExcelestorganizadonumacoleco
deobjectos(clulas,linhas,colunas,grficos,folhas,etc.).
AInterfaceComparaodeCurvasdeCrescimentotratasedeumaaplicao
emExcelconsttuidaportrsfolhasdeExcelvisveisaoutilizador,criadacomorecurso
aoMicrosoftExcelinterligadocomoVisualBasicApplications(VBA)sendoconstituda
portrspartes,umaemcadafolha:
UmaprimeiraparteintituladaAjusteaModelosdeCrescimento,que
permiterealizaroajustedequalquerconjuntodedadoscomprimento
idade a um dos trs modelos de crescimento em comprimento
comummente utilizados o modelo de Von Bertalanffy, o modelo
LogsticoeomodelodeGompertzsendoquedevolveosvaloresdas
estimativasdosparmetrosdomodelo,osrespectivosdesviospadroe
ovalordeR2ajustado.
Uma segunda parte intitulada Teste de Verosimilhana, que permite
ao utilizador comparar estatisticamente dois conjuntos de dados
comprimentoidadededuaspopulaesquesigamummesmomodelo
de crescimento mas cujos valores dos parmetros diferem, atravs de
28
umtestedarazodeverosimilhanaquegeneralizaotestedarazode
verosimilhanaapresentadoporKimura(1980);
Uma terceira parte intitulada Comparao Pontual, que permite ao
utilizador comparar dois conjuntos de dados comprimentoidade que
sigam modelos iguais ou distintos, sendo que permite que essa
comparao seja feita sobre caractersticas biolgicas tais como o
comprimento mdio numa determinada idade ou a idade para um
determinado comprimento mdio, a taxas de variao mdias em
determinados intervalos de tempo e as taxas absolutas e relativas de
crescimento num determinado intervalo entre os dois conjuntos de
dados.
Quandooutilizadoriniciaaaplicaosurgeaseguintecaixadetextocomuma
introduointerfacenomeadamenteasuautilidadeeimplicaesnasuautilizao:
29
Figura3.1CaixadeTextocomaIntroduodaInterface.
Aquandoainiciaodaaplicaopossvelobservarnosseparadoresosnomes
decadapartedaInterfacecomosepodeconstatarnaFigura3.2,relativaaoaspecto
inicialdaInterface.
30
Figura3.2AspectoInicialdaInterface.
utilizadorquantoaoprocedimentoquetemdetomar,aosignificadodasetiquetase
interpretaodosresultadosobtidos.
mencionarunidadesdemedidasendoqueestasestarodeacordocomasunidades
dosconjuntosdedadosintroduzidos.Ouseja,casoseestejaaestudarumconjuntode
dados idadecomprimento na unidade de tempo ano e na unidade de comprimento
centmetro,osresultadosserodevolvidosnessasmesmasunidades.
31
4.1. PrimeiraparteAjusteaModelosdeCrescimento
permiterealizaroajustedequalquerconjuntodedadoscomprimentoidade,aumdos
trs modelos de crescimento omodelo deVon Bertalanffy, o modelo Logstico e o
modelodeGompertzrecorrendoaregressonolinear,devolvendoosvaloresdas
estimativasdosparmetrosdomodelo,ovalordeR2ajustado,edosdesviospadro
decadaparmetroestimado.Nafigura3.1.1podeseobservaroaspectodaprimeira
partedaInterface.
Figura3.1.1AspectodaprimeirapartedainterfaceAjusteaModelosdeCrescimento.
Pararealizaroajuste,bastaqueoutilizador,numaprimeirainstncia,introduza
,queseencontranareaModeloaAjustar,devolveaindicao,como
sepodeobservarnaFigura3.1.2,queoutilizadornecessitadeseleccionaromodelo
que previamente constatou melhor descrever a curva de crescimento, tal como a
equaoquerepresentacadamodelodecrescimentoreferido.
32
Figura3.1.2CaixadeTextorelativaaobotodeAjudadareaModeloaAjustar.
Porsuavez,ainformaocontidanoboto
inseridonareaValoresIniciais
dosParmetros,quesepodeobservarnaFigura3.1.3,explicaosignificadodecada
uma das etiquetas dos parmetros e atenta para a necessidade de se introduzirem
valoresiniciaisdosparmetrosmuitoprximosdasestimativas.
Figura3.1.3CaixadeTextorelativaaobotodeAjudadareaValoresIniciaisdos
Parmetros.
33
implementouseomtododosmnimosquadradospermitindoqueestesejarealizado
comousempeso.Ouseja,sendoqueusualtrabalharsecomcomprimentosmdios
em classes de idades, como foi referido anteriormente, e como por vezes no
efectuadoomesmonmerodeobservaesemcadaclassedeidadesarotinapermite
associarumpeso
relativoi-nsimaobservao.
Para
isso
criaramse
trs
macros
denominadas
minimoquadrVBGC
Cadamacroestimaosvaloresdosparmetrosqueminimizamafuno:
Onde ovectordosparmetrosaestimare
ovalorpreditopelomodelopara
ai-nsimaobservaoparaovectordeparmetros .2
Oclculodosvalorespreditospelosmodelos,ouseja,decadaL(t), edafuno
,sorealizadosautomaticamentenumafolhainvisvelaoutilizador(folha1)que
recebeosdadosqueoutilizadorintroduzapartirdeumamacrointituladacolar1.
2
Noteseque,particularizando,paraomodelodeVonBertalanffyvemque
modeloLogstico
eparaomodelodeGompertz
,parao
.
34
ParaefectuaressaminimizaoamacrorecorreaoSolverdoExcel,quesetrata
Comoautilizaopressupequeoutilizadorjconheaqualdosmodelosde
crescimento se ajusta de melhor forma aos seus dados este j ter conhecimento
relativamenteaosparmetros.
Anicadvidapoderrecairsobreofactode,paraomodelodecrescimento
deGompertz,noserusualautilizaodeumaparametrizao,(recorrendonotao
utilizada no captulo anterior), em termos de L e t2, mas sim a seguinte
parametrizao termos de L e um parmetro t3, que se pode encontrar na obra de
QuinIIeDeriso(1999)ouatmesmonoestudodeKatsanevakis(2006):
35
Amacrodesviopadrao,umavezqueseadmitiuumaestruturadeerroaditiva
cujoserrosseguemumadistribuionormaldemdia0evarinciaconstante,uma
implementao do mtodo das matrizes para determinar o desvio padro dos
coeficientesdevolvidospeloSolver.
Amacrocomeapordeterminaraestimativadoerroquadrticomdioresidual
s2:
Ondekonmerodeparmetrosdomodelo(ouseja,iguala3paracadaum
dosmodelos).
calculandooselementos
dadiagonaldamatrizinversadamatrizhessiana,H,de
decada
parmetrodaseguinteforma:
36
Como j foi referido, esta primeira parte da Interface devolve, tambm, o valor do
2
realizadonafolha1,escondidaaoutilizador,recorrendoseguintefrmula:
Apscadaumadasmacroscorreremtodososresultadoscalculadosnafolha
Figura3.1.4CaixadeTextorelativaaobotodeAjudadareaResultados.
37
Figura3.1.5Aspectodajanelacomogrficodacurvaajustadaerespectivosdadosintroduzidos
peloUtilizador.
OusejaamacrograficoVBGCactivadacasooutilizadortenhaseleccionado
o modelo Von Bertalanffy, por sua vez a macro graficoL activada caso tenha
seleccionadoomodeloLogsticoe,porltimo,activaamacrograficoGcasotenha
sidoseleccionadoomodelodeGompertz.
38
Cadamacrocriaumasriedevaloresparaoeixodasabcissas,entrezeroeo
valor da idade quando se atinge o comprimento (L 1), numa coluna na folha
principal. Adjacente a essa coluna existe uma outra j preparada para calcular
automaticamente os valores preditos pelos modelos, sendo que cada macro cria,
tambm, uma outra srie, adjacente a esta ltima coluna, com os valores dos
comprimentosobservados,introduzidospeloutilizador.
Figura3.1.6readeTransfernciadeResultados.
Nestareaoutilizador,carregandosimplesmentenobotodecoramarela
iniciaisdetornaraInterfacenumaInterfaceAmigvel,pois,destaforma,outilizador
noterdecopiarecolarinmerasvezescadaumdosresultadosqueobteve.
39
TambmnareaTransfernciadeResultadosexisteumbotodeajudaque
esclarecequantofuncionalidadedaprpriarea,cujainformaosepodeobservar
naFigura3.1.7.
Figura3.1.7CaixadeTextorelativaaobotodeAjudadareaTransfernciadeResultados.
40
4.2. SegundaParteTestedaRazodeVerosimilhana
Figura3.2.1AspectodasegundapartedainterfaceTestedeVerosimilhana.
Noentanto,sendoquesedefendequeumprimeiropasso,quandosecomparam
duas curvas de crescimento, analisar a representao grfica de cada uma,
desenvolveuse, na Interface, um conjunto de macros que devolve, ao premirse o
botoGrficodareaInformaonecessria,umajanelaqueapresentaogrfico
comarepresentaoasduascurvasdecrescimentoajustadaseosrespectivosdados
observados,cujoaspectosemelhanteaoapresentadonaFigura3.2.2.
41
Figura3.2.2Aspectodajanelacomogrficodeduascurvasajustadaserespectivosdados.
(ondeseestaconsiderarahiptesequeascurvassosemelhantes)
(ondeseestaconsiderarahiptesequeosvaloresdeLsosemelhantes)
(ondeseestaconsiderarahiptesequeosvaloresdeK*sosemelhantes)
42
(ondeseestaconsiderarahiptesequeosvaloresdet*sosemelhantes)
Contraahiptese:
(ondeseestaconsiderarahiptesequeascurvassodistintas)
Tambm nesta segunda parte o utilizador pode recorrer aos botes de ajuda
queindicaro,nareaInformaonecessria,semelhanadoquesesucede
Figura3.2.3readeresultadosdotestedaRazodeverosimilhana.
43
Figura3.2.4InformaoapresentadapelobotodeajudanareaTestedaRazode
Verosimilhana.
Ainterfacefoidesenvolvidadeformaacomputartantoovalordaestatsticateste
Q2comodopvaluedoteste,ousejadaprobabilidadedesecometerumerrotipoI
rejeitarse a hiptese nula sendo esta verdadeira , para um nvel de significncia de
0,05,recorrendofunoDIST.CHI(Q2,GL)doExcel(sendoqueserejeitaahiptese
nulanocasodovalordopvalueserinferioraovalordasignificncia,ouseja,de0,05).
paracadaumadashiptesesnulasreferidas.
recorrendoaoSolverdo
Excel.
Como auxlio ao teste, em cada uma das quatro folhas de clculo referidas, so
realizados os clculos necessrios realizao do teste de verosimilhana para cada
uma das quatro hipteses nulas referidas, para os trs modelos de crescimento em
simultneo.
Ouseja,ainterfacetransfereosvaloresintroduzidospeloutilizadorparacadauma
das quatro folhas de clculo relativa a cada uma das hipteses nulas, recorrendo
macrocolar2,ecalculaautomaticamente:
asomadequadradosresidualparaahiptesecontrria,
,que,umavez
queoutilizadorintroduzosvaloresdasomaresidualdequadradosobtidos
no ajuste dos dois conjuntos de dados ao modelo adequado,
simplesmenteasomadestesdois;
ovalordaestatsticatesterecorrendoformula:
(onde
ovalordepvalue,(que,paraahiptesenula
de liberdade, e para as hipteses nulas
calculadocom3graus
e
com 1 grau de
liberdade).
45
4.3. TerceiraParteComparaoPontual
Umavezqueacomparaoestatsticapelotestedarazodeverosimilhana,
acimadescrita,obviamente,apenasaplicvelacurvasdecrescimentoquesigam
ummesmomodelo(poisseriaimpensvelcompararestatisticamenteparmetros
que no possuam ummesmo significado), a terceira parte da Interface intitulada
Comparao Pontual, cujo aspecto pode ser observado na figura 3.3.1, foi
elaborada com o objectivo de colmatar essa limitao, permitindo uma
comparaodecurvasdecrescimentoquenosigamummesmomodelo.
Figura3.3.1AspectodaterceirapartedainterfaceComparaoPontual.
Adecisodepermitirestaltima,estrelacionadacomaideiadefendidapor
normalmente,fortementecorrelacionados,sermaisapropriadocompararpontos
derefernciabiolgicacomoporexemploocomprimentoaumanodeidade.3
Francis(1996)referenoseuestudo,(oqualserviucomobaseparaoestudode
Wang e Milton (2000)), que existem pelo menos seis mtodos plausveis para
compararocrescimentoentrepopulaesquesigamomodelodecrescimentode
VonBertalanffy,sendoeles:
1. Compararocomprimentoemcadaidade;
2. Compararastaxasabsolutasdecrescimentoemcadaidade;
3. Compararastaxasabsolutasdecrescimentoemcadacomprimento;
4. Compararastaxasrelativasdecrescimentoemcadaidade;
5. Compararastaxasrelativasdecrescimentoemcadacomprimento;
6. Compararastaxassquaisotamanhoassimptticoaproximado;
Sendoqueosextomtodoseresumecomparaodoparmetrokdomodelo
de Von Bertalanffy que pode ser realizada na segunda parte da Interface, a terceira
partedaInterfaceapenasrecaisobreoscincoprimeirosmtodospermitindoquese
faa, tambm, duas outras comparaes: comparao da idade num certo
comprimentoecomparaodetaxasdevariaomdianumdeterminadointervalode
idades.
Noteseque,apartirdomomentoemquesepretendecompararduascurvas
decrescimentoqueseguemdoismodelosdecrescimentodiferentes,deentreostrs
modelosemestudo,cujasestimativasdosparmetrossoconhecidas,possvelfazer
umacomparaoemtermosdospressupostosbiolgicosdequederivam.
de referir que o estudo de Wang (2000) apenas recai sobre a curva de crescimento de Von
Bertalanffy,sendoqueaparametrizaodomodelofeitasomenteemtermosdeLek,sendot0=0.
47
inferirrelativamenteaotamanhomximoqueacadaespciepoderatingirnaidade
adulta.
Ainda,umavezqueomodelodeVonBertalanffydiferedosmodelosLogsticoe
Gompertzpornoserrepresentadoporumacurvasigmoidal,ouseja,nopossuirum
pontodeinflexo,biologicamenteinterpretadocomoomomentoemqueapopulao
representada pelo modelo atinge a velocidade mxima de crescimento (vindo
posteriormente a decrescer), possvel fazer uma comparao partindo dessa
caracterstica.
Ouseja,aocompararumapopulaocujocrescimentosigaomodelodeVon
Bertalanffycomumapopulaocujocrescimentosigaumdosdoismodelos,Logstico
ouGompertz,oinvestigadorpodedesdejconstatarqueexisteumadiferenaquando
formacomoosindivduos,decadaumadaspopulaes,crescem.
Sendoque,paraomodelodeVonBertalanffyataxadecrescimentoabsoluta
em comprimento,
dada
por
para
modelo
Logstico
por
Noteseque,pormotivosdesimplificaofezseL(t)=L.
48
Figura3.3.2PrimeirasderivadasdosmodelosdeCrescimento,emcomprimento,emordemat.
directamenteligadoaospressupostosbiolgicosqueosoriginaram,prendesecomas
taxasrelativas(derivadaslogartmicas)emcomprimentodecadamodelo:
ParaomodelodeVonBertalanffy:
49
ParaomodeloLogstico:
ParaomodelodeGompertz:
Ondesepodeconstatarque,paraomodelodeVonBertalanffyodecrscimo
Foipelofactodesepoderemreconhecertaisdiferenasqueaterceiraparteda
Interfacefoielaboradadeformaapermitirqueoutilizadorconstateessasdiferenas
devolvendo, como se pode observar na Figura 3.3.3, os valores das referidas taxas
tantoemidadecomoemcomprimento.
estudarataxadevariaomdianumdeterminadointervalodetempo,paraverificar
avelocidadedocrescimentonesseintervalo,aInterfacedevolve,tambm,areferida
taxanumintervalodetempoescolhidopeloutilizador,recorrendofrmula:
50
Figura3.3.3readecomparaodeTaxas.
Ainterfacepermite,ainda,calcularovalordocomprimentoparaumaidadet
tal como a idade para um certo comprimento c, como se pode observar na Figura
3.3.4.
51
Figura3.3.4readecomparaodeComprimentoemidadeteidadeemcomprimentoc.
Resumindo,aterceirapartedaInterfacepermitecompararentreduascurvas
paraomodelodeGompertz.
(paraumvalor,t,daidadeintroduzidopeloutilizador)
Aidadeemcomprimento,calculadasegundo:
, paraomodelodeVonBertalanffy
,paraomodeloLogstico
,paraomodelodeGompertz.
(paraumvalordocomprimento,c,introduzidopeloutilizador)
Taxasdevariaomdia,calculadasegundo:
(onde t1 et2representamosvaloresdasidadesintroduzidospeloutilizador)
Taxaabsolutadecrescimentoemidade,calculadasegundo:
52
paraomodelodeVonBertalanffy;
paraomodeloLogstico;
paraomodelodeGompertz.
(paraumvalor,t,daidadeintroduzidopeloutilizador)
Taxaabsolutadecrescimentoemcomprimento,calculadasegundo:
paraomodelodeVonBertalanffy;
paraomodeloLogstico;
paraomodelodeGompertz.
(paraumvalordocomprimentointroduzidopeloutilizadorc)
Taxarelativadecrescimentoemidade,calculadasegundo:
paraomodelodeVonBertalanffy
paraomodeloLogstico
paraomodelodeGompertz
(paraumvalor,t,daidadeintroduzidopeloutilizador)
Taxarelativadecrescimentoemcomprimento,calculadasegundo:
53
(paraumvalordocomprimentointroduzidopeloutilizadorc)
Osclculosreferidossotodosefectuadosemclulasinvisveisaoutilizadorna
folharelativaterceirapartedaInterface.Paratalnecessrioqueprimeiramenteo
utilizador, na rea Informao Necessria, seleccione o modelo que cada curva de
crescimento segue, introduza as estimativas para cada um dos parmetros
correspondentesaomodeloseleccionado.
Reforando a ideia que uma comparao de curvas de crescimento deve ser
conciliada com a representao grfica destas, tambm nesta terceira parte, a
Interface foi desenvolvida de forma a devolver uma janela onde apresentado um
grficocomasrepresentaesgrficasdecadaumadascurvasaseremcomparadas.
Assim, nessa mesma rea, permitido ao utilizador que verifique a
representaogrficadeambasascurvasdecrescimentoemcomparaoclicandono
botoGrfico,ondesurgeumacaixadognerodaapresentadanaFigura3.3.5.
54
Figura3.3.5AspectodaJanelacomoGrficodasDuasCurvasemComparao.
graficoVBGC1G2,
graficoL1VBGC2,
graficoL1L2,
graficoL1G2,
Oprocedimentolevadoacaboporcadaumadessasmacrossemelhanteao
descritoanteriormenteparaasmacrosrelativasrepresentaogrfica.Noentanto,a
diferenaresidenofactodenocriarasriecomoscomprimentosobservados,uma
vezqueoutilizadornonecessitadeosintroduzir.
necessriosparacadaumdosclculoseclicarnobotoCalculaparaqueainterface
osrealize.
A macro que corre de cada vez que cada boto, desta terceira parte da
55
Os botes de ajuda
devolvemumainformaoanlogacontidanosbotesdeajudadasegundaparteda
Interfaceinseridos,tambm,nareaInformaoNecessriarelativaaessaparte.J
osbotesdeajudadasreasComparaoeComparaodeTaxasapresentama
informaorelativaaoclculoquedesenvolvidoparaseobtercadaresultado,como
sepodeobservarnasFiguras3.3.6e3.3.7.
Figura3.3.6InformaoapresentadapelobotodeajudanareaComparao.
56
Figura3.3.7InformaoapresentadapelobotodeajudanareaComparaodeTaxas.
57
4.RESULTADOSEDISCUSSO
Oprincipalresultadodestetrabalhoconstitudoporumelementoimaterial,
Comoresultadoscomplementares,foinecessriodesenvolverlinhasdecdigos
na linguagem de programao Visual Basic Applications, denominadas macros, para
queainterfacepudesseserfuncionalecumprirosobjectivospropostos,asquaisso
apresentadasdemodointegrado.
Tabela4.1Dadosestudadosrelativosaosdoisgnerosdeumaespciedepeixes.
Gnero
Femea
Gnero
Idade
(anos)
1
2
3
4
5
6
7
8
9
Idade
Comprimento
mdio (cm)
20,0
33,0
39,7
45,4
48,3
50,1
52,5
52,8
53,0
Comprimento
Desvio
Padro
0,986005011
1,686053907
2,035915612
2,054335444
2,100216439
2,651359252
2,836840966
2,432924347
2,746192169
Desvio
58
Macho
(anos)
1
2
3
4
5
6
7
8
mdio (cm)
17,8
28,1
35,9
40,4
44,0
45,1
45,7
47,6
Padro
0
0,677562476
1,037468009
1,287351051
0,892212954
1,555777762
1,242797431
1,026482667
Designesedeagoraemdianteporconjuntodedados1asubpopulaode
peixes Fmeas da espcie e por conjunto de dados 2 a subpopulao de peixes
machosdaespcie.
Oobjectivoinferirrelativamentesemelhanadecurvasdecrescimentopara
os dois conjuntos de dados. Ou seja, at que ponto podemos afirmar que no h
diferenassignificativasentreocrescimentodosdoisconjuntosdedados.
Sendoassim,procedeuse,comparaodosparmetrosdeambasascurvas
atravsdotestedarazodeverosimilhana.
Paraisso,naprimeiraparteAjusteaModelosdeCrescimentoajustousecada
umadascuvasaosmodelosdeVonBertalanffy.Colaramseosconjuntosdedadosnas
matrizesdedados,introduzindo,emseguida,osvaloresprximosaosdasestimativas
dos parmetros na rea correspondente. Clicando no boto Calcula, obtevese os
resultadospretendidosquesepodemvisualizarnasFiguras4.1e4.2.
59
Figura4.1ResultadosdoajustedoconjuntodedadosrelativossfemeasaomodelodeVon
Bertalanffy.
Figura4.2Resultadosdoajustedoconjuntodedadosrelativosaosmachosaomodelode
VonBertalanffy.
60
Figura4.3RepresentaogrficadomodelodeVonBertalanffyajustadoaosdadosda
populaofmeaedorespectivoconjuntodedados.
Figura4.4RepresentaogrficadomodelodeVonBertalanffyajustadoaosdadosda
populaomachoedorespectivoconjuntodedados.
Posteriormente,recorrendoaosbotesdareaTransfernciadeResultados,
transferiramse os resultados obtidos, para cada um dos conjuntos de dados em
estudo, para as reas respectivas tanto na segunda parte Teste da Razo de
VerosimilhanacomonaterceiraparteComparaoPontual.
61
graficamenteasemelhanadasduascurvas(Figura4.5)intuindosequeexistiriauma
diferena relativamente ao tamanho mdio mximo assimpttico,
, mas uma
possvelsemelhanaemtermosdoparmetrot0,ouseja,naidadehipotticaemque
teriamcomprimentonulo.
Figura4.5Representaogrficadasduascurvasdecrescimentoajustadasedos
respectivosconjuntosdedados.
62
Figura4.6Resultadosparaotestedarazodeverosimilhanadeambasascurvas.
Deondesepodeconcluir,tendoporbaseacomparaodosvaloresdepvalue
com a significncia do teste (0,05), que as curvas que descrevem o crescimento de
cadaumdosgnerosdaespcienosocoincidentes,ouseja,nososemelhantes.
Sendoqueadiferenaentreambaspareceresidirnosvaloresdocomprimento
mdiomximoassimpttico(pois3,070861006significativamenteinferiora0,05),
umavezquenoserejeitaahiptesedacoincidencianosvaloresdosparmetrosk,
velocidadeaqueapopulaoatingeotamanhomximoassimpttico,et0.
63
comparativodeduaspopulaes,refereseaomomentoemcadaumadaspopulaes
atinge um certo comprimento mdio. Comprimento esse que poder significar, por
exemplo,ocomprimentoidealdecapturadosindivduos,casonosestejamosainserir
nocontextodepesca.
Supondo que esse comprimento mdio seria, para esta espcie, de 35 cm. E,
Figura4.7Resultadosparaumacomparaopontualentreambasascurvas.
O que nos leva a observar que a populao de femeas atinge mais cedo o
comprimento mdio de 35 cm, e na idade de 5 anos o comprimento mdio para as
fmeassuperioraocomprimentomdiodosmachos.Resultadosestesqueeramde
esperar tendo em conta o que se obteve no teste da razo de verosimilhana e na
anlisegrfica.
64
Exemplificado,casosedesejasseaveriguarqualdasduaspopulaesemestudo
cresceriamaisrpidonointervaloentreos2eos4anose,igualmente,qualdasduas
possuiuma taxadecrescimentoabsolutomais elevadono primeiroanodevida,(ou
seja, qual que teria uma velocidade instantnea mais rpida no primeiro ano de
vida),bastariaintroduzirosdados nareaComparaodeTaxas,daterceiraparte
daInterface,obtendoseosresultadosquesepodemobservarnaFigura4.8.
Figura4.8Resultadosparaumacomparaodetaxadevariaomdiaetaxaabsolutade
CrescimentoporIdadeentreambasascurvas.
65
Finalmente, possvel efectuar uma comparao necessariamente subjectiva,
entreestaInterfaceeoutrasconhecidas,comoajreferidaFISHPARM.Assim,refira
se o facto de a sua utilizao ser, contrariamente ao que sucede com o programa
FISHPARM,graficamenteapelativaeacessvel,umavezquepermite,porexemplo,que
o utilizador seja esclarecido das suas funcionalidades e formas de interpretao dos
resultadoscomosbotesdeajuda.
Os prprios grficos fornecidos pela Interface, uma vez que so guardados
como ficheiro temporrio no mesmo local da Interface, permitem o seu
armazenamentoeutilizao(desdequeseatribuaumnovonomeaoficheiro).
Existeaindaofactode,paraalmdepermitiroajustedosdadosacurvasde
crescimento, permitir, tambm, a comparao estatstica e pontual de curvas de
crescimento. Funcionalidade esta no includa em nenhum programa informtico de
investigaopesqueiraconhecidoatdata.
66
5.CONCLUSO
formaatornarasuautilizaoamigveleesclarecedoraemtodososseuspassos,
tilevantajosaquandoseobjectivacompararestatisticamenteosparmetrosde
duascurvasdecrescimentoquesigamummesmomodelomatemtico.
Noobstanteofactodeque,nocasodeduascurvasdecrescimentoseguirem
dois modelos matemticos distintos, dos trs modelos aqui estudados Von
Bertalanffy, Logstico e Gompertz , significar que o seu comportamento
relativamenteformacomoapopulaocrescenosemelhante,podersertil
aoinvestigadoracomparaodepontosbiolgicos.Pontosessesquepoderoser
67
taxasdecrescimentoouatmesmoocomprimentoemcertaidadeouaidadeem
certocomprimento.
produzirresultadosperanteumestudodecomparaodecurvasdecrescimento.
Tratandose, igualmente, de uma aplicao inovadora na medida em que os
procedimentosdecomparaoestatsticaepontualqueimplementasetratamde
funcionalidades inesxistentes, at data, nos programas usualmente utilizado
pelosinvestigadoresmarinhos.
Emmododeconcluso,oestudoapresentadosugereapontarnadirecoque
68
REFERNCIASBIBLIOGRFICAS
Cerrato,R.M.(1990).InterpretableStatisticalTestsforGrowthComparisonsUsing
Parameters in the Von Bertalanffy Equation. Canadian Journal of Fisheries and
AquaticSciences,Vol.47,14161426.
De Sapio, Rodolfo (1978). Calculus For The Life Sciences. W. H. Freeman and
Company.SanFrancisco.
Francis, R.I.C. Chris Francis. (1996). Do Herring grow faster than orange roughy?.
FisheryBulletin,Vol.94,783786.
Kimura, Daniel K. (1980). Likelihood Methods For The Von Bertalanffy Growth
Curve.
Fishery
Bulletin,
Vol.
77,
N.
4.
765776.
[online]
<http://allenlab.ifas.ufl.edu/courses/Kimura1979.pdf>.
Levie,Robertde(2001).HowtoUseExcelinAnalyticalChemestryandinGeneral
ScientificDataAnalysis.CambridgeUniversityPress.Cambridge.
Peres,Paula(2007).ExcelMacroseAplicaes.EdiesSlabo,Lda.Lisboa.
Quin II, T. J., Deriso, R. B. (1999). Quantitative Fish Dynamics. Oxford University
Press.NewYork.
69
Wang,YouGan,eMilton,DavidA.(2000).Oncomparisonofgrowthcurves:How
dowetestwhethergrowthratesdiffer?.FisheryBulletin,Vol.98,874880.
70
ANEXOS
OptionExplicit
PublicWorksheetAsString
Subcolar1()
Worksheets("AjusteaModelosdeCrescimento").Activate
DimnobsAsInteger
Range("$A$3:$A$203").Select
nobs=Selection.Rows.Count
Ifnobs=0ThenEnd
ReDim t(1 To nobs) As String, L(1 To nobs) As String, dv(1 To nobs) As String, tv1(1 To nobs) As
String,l1(1Tonobs)AsString,dv1(1Tonobs)AsString
ReDimtt(1Tonobs)AsString,LL(1Tonobs)AsString,dvv(1Tonobs)AsString,tv2(1Tonobs)As
String,l2(1Tonobs)AsString,dv2(1Tonobs)AsString
DimiAsInteger,jAsInteger
Application.ScreenUpdating=False
Fori=1Tonobs
Range("$A$3:$A$203").Select
t(i)=Selection.Item(i,1).Address
Range("$B$3:$B$203").Select
L(i)=Selection.Item(i,1).Address
Range("$C$3:$C$203").Select
dv(i)=Selection.Item(i,1).Address
Nexti
Fori=1Tonobs
Worksheets(1).Activate
Range("$A$3:$A$203").Select
tv1(i)=Selection.Item(i,1).Address
Range(tv1(i)).Value=Worksheets("AjusteaModelosdeCrescimento").Range(t(i))
Range("$B$3:$B$203").Select
l1(i)=Selection.Item(i,1).Address
Range(l1(i)).Value=Worksheets("AjusteaModelosdeCrescimento").Range(L(i))
Range("$C$3:$C$203").Select
71
dv1(i)=Selection.Item(i,1).Address
Range(dv1(i)).Value=Worksheets("AjusteaModelosdeCrescimento").Range(dv(i))
Range("$F$3").Value=Worksheets("AjusteaModelosdeCrescimento").Range("$F$3")
Range("$F$4").Value=Worksheets("AjusteaModelosdeCrescimento").Range("$F$4")
Range("$F$5").Value=Worksheets("AjusteaModelosdeCrescimento").Range("$F$5")
Nexti
Application.ScreenUpdating=True
EndSub
SubminimoquadrVBGC()
Worksheets(1).Activate
DimjAsInteger
'ProgramaroSolver
SolverOkSetCell:="$L$2",MaxMinVal:=2,ValueOf:="0",ByChange:=_
"$F$3,$F$4,$F$5"
SolverSolveTrue
CalldesviopadraoVBGC
'TranporosParametrosparaaareaderesultadosnafolhaprincipal
Worksheets("AjusteaModelosdeCrescimento").Activate
Range("$F$11").Value=Worksheets(1).Range("$F$3")
Range("$F$12").Value=Worksheets(1).Range("$F$4")
Range("$F$13").Value=Worksheets(1).Range("$F$5")
Range("$G$11").Value=Worksheets(1).Range("$G$3")
Range("$G$12").Value=Worksheets(1).Range("$G$4")
Range("$G$13").Value=Worksheets(1).Range("$G$5")
Range("$F$8").Value=Worksheets(1).Range("$F$8")
Range("$H$8").Value=Worksheets(1).Range("$H$8")
Range("$I$8").Value=Worksheets(1).Range("$L$2")
EndSub
SubminimoquadrL()
Worksheets(1).Activate
DimjAsInteger
'ProgramaroSolver
SolverOkSetCell:="$P$2",MaxMinVal:=2,ValueOf:="0",ByChange:=_
"$F$3,$F$4,$F$5"
SolverSolveTrue
CalldesviopadraoL
'TranporosParametrosparaaareaderesultadosnafolhaprincipal
72
Worksheets("AjusteaModelosdeCrescimento").Activate
Range("$F$11").Value=Worksheets(1).Range("$F$3")
Range("$F$12").Value=Worksheets(1).Range("$F$4")
Range("$F$13").Value=Worksheets(1).Range("$F$5")
Range("$G$11").Value=Worksheets(1).Range("$G$3")
Range("$G$12").Value=Worksheets(1).Range("$G$4")
Range("$G$13").Value=Worksheets(1).Range("$G$5")
Range("$F$8").Value=Worksheets(1).Range("$F$9")
Range("$H$8").Value=Worksheets(1).Range("$H$8")
Range("$I$8").Value=Worksheets(1).Range("$P$2")
EndSub
SubminimoquadrG()
Worksheets(1).Activate
DimjAsInteger
'ProgramaroSolver
SolverOkSetCell:="$T$2",MaxMinVal:=2,ValueOf:="0",ByChange:=_
"$F$3,$F$4,$F$5"
SolverSolveTrue
CalldesviopadraoG
'TranporosParametrosparaaareaderesultadosnafolhaprincipal
Worksheets("AjusteaModelosdeCrescimento").Activate
Range("$F$11").Value=Worksheets(1).Range("$F$3")
Range("$F$12").Value=Worksheets(1).Range("$F$4")
Range("$F$13").Value=Worksheets(1).Range("$F$5")
Range("$G$11").Value=Worksheets(1).Range("$G$3")
Range("$G$12").Value=Worksheets(1).Range("$G$4")
Range("$G$13").Value=Worksheets(1).Range("$G$5")
Range("$F$8").Value=Worksheets(1).Range("$F$10")
Range("$H$8").Value=Worksheets(1).Range("$H$8")
Range("$I$8").Value=Worksheets(1).Range("$T$2")
EndSub
SubdesviopadraoVBGC()
Worksheets(1).Activate
DimprangeAsRange
DimnpAsInteger,iAsInteger,iiAsInteger,jAsLong
'selecionarosparametrosobtidoscomosolver
Setprange=Range("$F$3:$F$5")
prange.Select
np=Selection.Rows.Count
Ifnp=0ThenEnd
DimpvalorAsVariant
pvalor=Selection.Value
'fazercomqueooutputdecadadesviopadraodosestimativassejaaoladodireitodestes
DimnAsInteger
73
n=0
Selection.Offset(0,1).Select
DimdpvalorAsVariant
DimdpAsVariant
dpvalor=Selection.Value
Fori=1Tonp
dp=dpvalor(i,1)
IfIsEmpty(dp)Then
n=n
Else
n=n+1
EndIf
Nexti
'seleccionarovalordaSQRobtidacomoSolver
DimsqrrangeAsRange
Setsqrrange=Range("$L$2")
sqrrange.Select
DimsqrvalorAsDouble
sqrvalor=Selection.Value
'seleccionarosvaloresdeL(t)obtidoscomoprimeirovectordosparametros
DimlcalcrangeAsRange
Setlcalcrange=Range("J2:J102")
lcalcrange.Select
DimnlAsInteger
nl=Selection.Rows.Count
DimlcvalueAsVariant
lcvalue=Selection.Value
Application.ScreenUpdating=False
'computarodesviopadrodoajustamento
DimdpajAsDouble
dpaj=Sqr(sqrvalor/(nlnp))
'computarasderivadasparciais
ReDimD(1Tonp,1Tonl)AsDouble
DimppvalueAsVariant
Fori=1Tonp
prange.Select
pvalor(i,1)=pvalor(i,1)*1.000001
Selection.Value=pvalor
lcalcrange.Select
DimllvalueAsVariant
llvalue=Selection.Value
Forj=1Tonl
D(i,j)=(llvalue(j,1)lcvalue(j,1))/(0.000001*pvalor(i,1))
Nextj
74
pvalor(i,1)=pvalor(i,1)/1.000001
Nexti
prange.Select
Selection.Value=pvalor
'matrizdesegundasderivadas(matrizhessiana)
ReDimDD(1Tonp,1Tonp,1Tonl)AsDouble
Fori=1Tonp
Forii=1Tonp
Forj=1Tonl
DD(i,ii,j)=D(i,j)*D(ii,j)
Nextj
Nextii
Nexti
'determinarovectorcomoselementosdadiagonaldamatrizhessianaeinvertiresta
ReDimSDD(1Tonp,1Tonp)AsDouble
ReDimSDDinv(1Tonp,1Tonp)AsDouble
Fori=1Tonp
Forii=1Tonp
SDD(i,ii)=0
Nextii
Nexti
Fori=1Tonp
Forii=1Tonp
Forj=1Tonl
SDD(i,ii)=SDD(i,ii)+DD(i,ii,j)
Nextj
Nextii
Nexti
CallInvert(SDD,np,SDDinv)
Fori=1Tonp
dpvalor(i,1)=dpaj*Sqr(SDDinv(i,i))
Nexti
DimrespostaAsString
prange.Select
Selection.Offset(0,1).Select
Selection.Font.Italic=True
Fori=1Tonp
Selection.Value=dpvalor
Nexti
EndSub
SubdesviopadraoL()
Worksheets(1).Activate
DimprangeAsRange
DimnpAsInteger,iAsInteger,iiAsInteger,jAsLong
'selecionarosparametrosobtidoscomosolver
Setprange=Range("$F$3:$F$5")
prange.Select
np=Selection.Rows.Count
75
Ifnp=0ThenEnd
DimpvalorAsVariant
pvalor=Selection.Value
'fazercomqueooutputdecadadesviopadraodosestimativassejaaoladodireitodestes
DimnAsInteger
n=0
Selection.Offset(0,1).Select
DimdpvalorAsVariant
DimdpAsVariant
dpvalor=Selection.Value
Fori=1Tonp
dp=dpvalor(i,1)
IfIsEmpty(dp)Then
n=n
Else
n=n+1
EndIf
Nexti
'seleccionarovalordaSQRobtidacomoSolver
DimsqrrangeAsRange
Setsqrrange=Range("$P$2")
sqrrange.Select
DimsqrvalorAsDouble
sqrvalor=Selection.Value
'seleccionarosvaloresdeL(t)obtidoscomoprimeirovectordosparametros
DimlcalcrangeAsRange
Setlcalcrange=Range("N2:N102")
lcalcrange.Select
DimnlAsInteger
nl=Selection.Rows.Count
DimlcvalueAsVariant
lcvalue=Selection.Value
Application.ScreenUpdating=False
'computarodesviopadrodoajustamento
DimdpajAsDouble
dpaj=Sqr(sqrvalor/(nlnp))
'computarasderivadasparciais
ReDimD(1Tonp,1Tonl)AsDouble
DimppvalueAsVariant
Fori=1Tonp
prange.Select
pvalor(i,1)=pvalor(i,1)*1.000001
Selection.Value=pvalor
76
lcalcrange.Select
DimllvalueAsVariant
llvalue=Selection.Value
Forj=1Tonl
D(i,j)=(llvalue(j,1)lcvalue(j,1))/(0.000001*pvalor(i,1))
Nextj
pvalor(i,1)=pvalor(i,1)/1.000001
Nexti
prange.Select
Selection.Value=pvalor
'matrizdesegundasderivadas(matrizhessiana)
ReDimDD(1Tonp,1Tonp,1Tonl)AsDouble
Fori=1Tonp
Forii=1Tonp
Forj=1Tonl
DD(i,ii,j)=D(i,j)*D(ii,j)
Nextj
Nextii
Nexti
'determinarovectorcomoselementosdadiagonaldamatrizhessianaeinvertiresta
ReDimSDD(1Tonp,1Tonp)AsDouble
ReDimSDDinv(1Tonp,1Tonp)AsDouble
Fori=1Tonp
Forii=1Tonp
SDD(i,ii)=0
Nextii
Nexti
Fori=1Tonp
Forii=1Tonp
Forj=1Tonl
SDD(i,ii)=SDD(i,ii)+DD(i,ii,j)
Nextj
Nextii
Nexti
CallInvert(SDD,np,SDDinv)
Fori=1Tonp
dpvalor(i,1)=dpaj*Sqr(SDDinv(i,i))
Nexti
DimrespostaAsString
prange.Select
Selection.Offset(0,1).Select
Selection.Font.Italic=True
Fori=1Tonp
Selection.Value=dpvalor
Nexti
EndSub
SubdesviopadraoG()
Worksheets(1).Activate
DimprangeAsRange
DimnpAsInteger,iAsInteger,iiAsInteger,jAsLong
77
'selecionarosparametrosobtidoscomosolver
Setprange=Range("$F$3:$F$5")
prange.Select
np=Selection.Rows.Count
Ifnp=0ThenEnd
DimpvalorAsVariant
pvalor=Selection.Value
'fazercomqueooutputdecadadesviopadraodosestimativassejaaoladodireitodestes
DimnAsInteger
n=0
Selection.Offset(0,1).Select
DimdpvalorAsVariant
DimdpAsVariant
dpvalor=Selection.Value
Fori=1Tonp
dp=dpvalor(i,1)
IfIsEmpty(dp)Then
n=n
Else
n=n+1
EndIf
Nexti
'seleccionarovalordaSQRobtidacomoSolver
DimsqrrangeAsRange
Setsqrrange=Range("$T$2")
sqrrange.Select
DimsqrvalorAsDouble
sqrvalor=Selection.Value
'seleccionarosvaloresdeL(t)obtidoscomoprimeirovectordosparametros
DimlcalcrangeAsRange
Setlcalcrange=Range("R2:R102")
lcalcrange.Select
DimnlAsInteger
nl=Selection.Rows.Count
DimlcvalueAsVariant
lcvalue=Selection.Value
Application.ScreenUpdating=False
'computarodesviopadrodoajustamento
DimdpajAsDouble
dpaj=Sqr(sqrvalor/(nlnp))
'computarasderivadasparciais
78
ReDimD(1Tonp,1Tonl)AsDouble
DimppvalueAsVariant
Fori=1Tonp
prange.Select
pvalor(i,1)=pvalor(i,1)*1.000001
Selection.Value=pvalor
lcalcrange.Select
DimllvalueAsVariant
llvalue=Selection.Value
Forj=1Tonl
D(i,j)=(llvalue(j,1)lcvalue(j,1))/(0.000001*pvalor(i,1))
Nextj
pvalor(i,1)=pvalor(i,1)/1.000001
Nexti
prange.Select
Selection.Value=pvalor
'matrizdesegundasderivadas(matrizhessiana)
ReDimDD(1Tonp,1Tonp,1Tonl)AsDouble
Fori=1Tonp
Forii=1Tonp
Forj=1Tonl
DD(i,ii,j)=D(i,j)*D(ii,j)
Nextj
Nextii
Nexti
'determinarovectorcomoselementosdadiagonaldamatrizhessianaeinvertiresta
ReDimSDD(1Tonp,1Tonp)AsDouble
ReDimSDDinv(1Tonp,1Tonp)AsDouble
Fori=1Tonp
Forii=1Tonp
SDD(i,ii)=0
Nextii
Nexti
Fori=1Tonp
Forii=1Tonp
Forj=1Tonl
SDD(i,ii)=SDD(i,ii)+DD(i,ii,j)
Nextj
Nextii
Nexti
CallInvert(SDD,np,SDDinv)
Fori=1Tonp
dpvalor(i,1)=dpaj*Sqr(SDDinv(i,i))
Nexti
DimrespostaAsString
prange.Select
Selection.Offset(0,1).Select
Selection.Font.Italic=True
Fori=1Tonp
Selection.Value=dpvalor
Nexti
EndSub
79
SubInvert(M1,r1,Mout)
'MacroparadeterminaramatrizinversaLevie(2001)
'AMatrizdeentradaM1,eamatrizdesada(output)Mout
'r1onmerodelinhasemM1
'tantoM1comoMoutsomatrizesquadradasr1xr1
DimbigAsDouble,dummyAsDouble,pivinvAsDouble
DimirowAsInteger,icolAsInteger
DimiAsInteger,jAsInteger
DimkAsInteger,LAsInteger,LLAsInteger
DimBB(1To4,1To4)AsDouble
Dimipivot(1To4)AsDouble
DimIndex(1To4)AsDouble
Dimindexr(1To4)AsDouble
Dimindexc(1To4)AsDouble
DimuAsDouble
u=1
DimzAsDouble
z=0
'copiaramatrizdeentradadeformaaretela
Fori=1Tor1
Forj=1Tor1
Mout(i,j)=M1(i,j)
Nextj
Nexti
'rotinadeGaussJordan
Forj=1Tor1
ipivot(j)=z
Nextj
Fori=1Tor1
big=z
Forj=1Tor1
Ifipivot(j)<>uThen
Fork=1Tor1
Ifipivot(k)=zThen
IfAbs(Mout(j,k))>=bigThen
big=Abs(Mout(j,k))
irow=j
icol=k
EndIf
ElseIfipivot(k)>1ThenExitSub
EndIf
Nextk
EndIf
Nextj
ipivot(icol)=ipivot(icol)+1
Ifirow<>icolThen
ForL=1Tor1
dummy=Mout(irow,L)
Mout(irow,L)=Mout(icol,L)
Mout(icol,L)=dummy
NextL
ForL=1Tor1
80
dummy=BB(irow,L)
BB(irow,L)=BB(icol,L)
BB(icol,L)=dummy
NextL
EndIf
indexr(i)=irow
indexc(i)=icol
IfMout(icol,icol)=zThenExitSub
pivinv=u/Mout(icol,icol)
Mout(icol,icol)=u
ForL=1Tor1
Mout(icol,L)=Mout(icol,L)*pivinv
NextL
ForL=1Tor1
BB(icol,L)=BB(icol,L)*pivinv
NextL
ForLL=1Tor1
IfLL<>icolThen
dummy=Mout(LL,icol)
Mout(LL,icol)=z
ForL=1Tor1
Mout(LL,L)=Mout(LL,L)Mout(icol,L)*dummy
NextL
ForL=1Tor1
BB(LL,L)=BB(LL,L)BB(icol,L)*dummy
NextL
EndIf
NextLL
Nexti
ForL=r1To1Step1
Ifindexr(L)<>indexc(L)Then
Fork=1Tor1
dummy=Mout(k,indexr(L))
Mout(k,indexr(L))=Mout(k,indexc(L))
Mout(k,indexc(L))=dummy
Nextk
EndIf
NextL
Eraseindexc,indexr,ipivot
Fori=1Tor1
Forj=1Tor1
Nextj
Nexti
EndSub
Subcolar2()
Worksheets("TestedeVerosimilhana").Activate
DimnobsAsInteger
Range("$A$4:$A$204").Select
nobs=Selection.Rows.Count
Ifnobs=0ThenEnd
ReDim t(1 To nobs) As String, L(1 To nobs) As String, dv(1 To nobs) As String, tv1(1 To nobs) As
String,l1(1Tonobs)AsString,dv1(1Tonobs)AsString
81
ReDimtt(1Tonobs)AsString,LL(1Tonobs)AsString,dvv(1Tonobs)AsString,tv2(1Tonobs)As
String,l2(1Tonobs)AsString,dv2(1Tonobs)AsString
DimiAsInteger,jAsInteger
Application.ScreenUpdating=False
Fori=1Tonobs
Range("$A$4:$A$204").Select
t(i)=Selection.Item(i,1).Address
Range("$B$4:$B$204").Select
L(i)=Selection.Item(i,1).Address
Range("$C$4:$C$204").Select
dv(i)=Selection.Item(i,1).Address
Range("$D$4:$D$204").Select
tt(i)=Selection.Item(i,1).Address
Range("$E$4:$E$204").Select
LL(i)=Selection.Item(i,1).Address
Range("$F$4:$F$204").Select
dvv(i)=Selection.Item(i,1).Address
Nexti
Fori=1Tonobs
Forj=3To6
Worksheets(j).Activate
Range("$A$3:$A$203").Select
tv1(i)=Selection.Item(i,1).Address
Range(tv1(i)).Value=Worksheets("TestedeVerosimilhana").Range(t(i))
Range("$B$3:$B$203").Select
l1(i)=Selection.Item(i,1).Address
Range(l1(i)).Value=Worksheets("TestedeVerosimilhana").Range(L(i))
Range("$C$3:$C$203").Select
dv1(i)=Selection.Item(i,1).Address
Range(dv1(i)).Value=Worksheets("TestedeVerosimilhana").Range(dv(i))
Range("$D$3:$D$203").Select
tv2(i)=Selection.Item(i,1).Address
Range(tv2(i)).Value=Worksheets("TestedeVerosimilhana").Range(tt(i))
Range("$E$3:$E$203").Select
l2(i)=Selection.Item(i,1).Address
Range(l2(i)).Value=Worksheets("TestedeVerosimilhana").Range(LL(i))
Range("$F$3:$F$203").Select
dv2(i)=Selection.Item(i,1).Address
Range(dv2(i)).Value=Worksheets("TestedeVerosimilhana").Range(dvv(i))
82
Range("I11").Value=Worksheets("TestedeVerosimilhana").Range("I6")
Range("I12").Value=Worksheets("TestedeVerosimilhana").Range("I11")
Nextj
Nexti
Application.ScreenUpdating=True
EndSub
SubKimuratestVBGC()
'testaraigualdadedascurvas
Application.ScreenUpdating=False
Worksheets(3).Activate
Range("I3").Value=Worksheets("TestedeVerosimilhana").Range("I3")
Range("I4").Value=Worksheets("TestedeVerosimilhana").Range("I4")
Range("I5").Value=Worksheets("TestedeVerosimilhana").Range("I5")
'ProgramaroSolver
SolverOkSetCell:="$O$3",MaxMinVal:=2,ValueOf:="0",ByChange:=_
"$I$3,$I$4,$I$5"
SolverSolveTrue
'testaraigualdadenolinf
Worksheets(4).Activate
Range("I3").Value=Worksheets("TestedeVerosimilhana").Range("I3")
Range("I4").Value=Worksheets("TestedeVerosimilhana").Range("I4")
Range("I5").Value=Worksheets("TestedeVerosimilhana").Range("I5")
Range("I8").Value=Worksheets("TestedeVerosimilhana").Range("I9")
Range("I9").Value=Worksheets("TestedeVerosimilhana").Range("I10")
'ProgramaroSolver
SolverOkSetCell:="$O$3",MaxMinVal:=2,ValueOf:="0",ByChange:=_
"$I$3,$I$4,$I$5,$I$8,$I$9"
SolverSolveTrue
'testaraigualdadenok
Worksheets(5).Activate
Range("I3").Value=Worksheets("TestedeVerosimilhana").Range("I3")
Range("I4").Value=Worksheets("TestedeVerosimilhana").Range("I4")
Range("I5").Value=Worksheets("TestedeVerosimilhana").Range("I5")
Range("I7").Value=Worksheets("TestedeVerosimilhana").Range("I8")
Range("I9").Value=Worksheets("TestedeVerosimilhana").Range("I10")
'ProgramaroSolver
SolverOkSetCell:="$O$3",MaxMinVal:=2,ValueOf:="0",ByChange:=_
"$I$3,$I$4,$I$5,$I$7,$I$9"
SolverSolveTrue
'testaraigualdadenot0
83
Worksheets(6).Activate
Range("I3").Value=Worksheets("TestedeVerosimilhana").Range("I3")
Range("I4").Value=Worksheets("TestedeVerosimilhana").Range("I4")
Range("I5").Value=Worksheets("TestedeVerosimilhana").Range("I5")
Range("I7").Value=Worksheets("TestedeVerosimilhana").Range("I8")
Range("I8").Value=Worksheets("TestedeVerosimilhana").Range("I9")
'ProgramaroSolver
SolverOkSetCell:="$O$3",MaxMinVal:=2,ValueOf:="0",ByChange:=_
"$I$3,$I$4,$I$5,$I$7,$I$8"
SolverSolveTrue
Application.ScreenUpdating=True
EndSub
SubKimuratestL()
Application.ScreenUpdating=False
'testaraigualdadedascurvas
Worksheets(3).Activate
Range("I3").Value=Worksheets("TestedeVerosimilhana").Range("I3")
Range("I4").Value=Worksheets("TestedeVerosimilhana").Range("I4")
Range("I5").Value=Worksheets("TestedeVerosimilhana").Range("I5")
'ProgramaroSolver
SolverOkSetCell:="$X$3",MaxMinVal:=2,ValueOf:="0",ByChange:=_
"$I$3,$I$4,$I$5"
SolverSolveTrue
'testaraigualdadenolinf
Worksheets(4).Activate
Range("I3").Value=Worksheets("TestedeVerosimilhana").Range("I3")
Range("I4").Value=Worksheets("TestedeVerosimilhana").Range("I4")
Range("I5").Value=Worksheets("TestedeVerosimilhana").Range("I5")
Range("I8").Value=Worksheets("TestedeVerosimilhana").Range("I9")
Range("I9").Value=Worksheets("TestedeVerosimilhana").Range("I10")
'ProgramaroSolver
SolverOkSetCell:="$X$3",MaxMinVal:=2,ValueOf:="0",ByChange:=_
"$I$3,$I$4,$I$5,$I$8,$I$9"
SolverSolveTrue
'testaraigualdadenok
Worksheets(5).Activate
Range("I3").Value=Worksheets("TestedeVerosimilhana").Range("I3")
Range("I4").Value=Worksheets("TestedeVerosimilhana").Range("I4")
Range("I5").Value=Worksheets("TestedeVerosimilhana").Range("I5")
Range("I7").Value=Worksheets("TestedeVerosimilhana").Range("I8")
Range("I9").Value=Worksheets("TestedeVerosimilhana").Range("I10")
84
'ProgramaroSolver
SolverOkSetCell:="$X$3",MaxMinVal:=2,ValueOf:="0",ByChange:=_
"$I$3,$I$4,$I$5,$I$7,$I$9"
SolverSolveTrue
'testaraigualdadenot0
Worksheets(6).Activate
Range("I3").Value=Worksheets("TestedeVerosimilhana").Range("I3")
Range("I4").Value=Worksheets("TestedeVerosimilhana").Range("I4")
Range("I5").Value=Worksheets("TestedeVerosimilhana").Range("I5")
Range("I7").Value=Worksheets("TestedeVerosimilhana").Range("I8")
Range("I8").Value=Worksheets("TestedeVerosimilhana").Range("I9")
'ProgramaroSolver
SolverOkSetCell:="$X$3",MaxMinVal:=2,ValueOf:="0",ByChange:=_
"$I$3,$I$4,$I$5,$I$7,$I$8"
SolverSolveTrue
Application.ScreenUpdating=True
EndSub
SubKimuratestG()
Application.ScreenUpdating=False
'testaraigualdadedascurvas
Worksheets(3).Activate
Range("I3").Value=Worksheets("TestedeVerosimilhana").Range("I3")
Range("I4").Value=Worksheets("TestedeVerosimilhana").Range("I4")
Range("I5").Value=Worksheets("TestedeVerosimilhana").Range("I5")
'ProgramaroSolver
SolverOkSetCell:="$AG$3",MaxMinVal:=2,ValueOf:="0",ByChange:=_
"$I$3,$I$4,$I$5"
SolverSolveTrue
'testaraigualdadenolinf
Worksheets(4).Activate
Range("I3").Value=Worksheets("TestedeVerosimilhana").Range("I3")
Range("I4").Value=Worksheets("TestedeVerosimilhana").Range("I4")
Range("I5").Value=Worksheets("TestedeVerosimilhana").Range("I5")
Range("I8").Value=Worksheets("TestedeVerosimilhana").Range("I9")
Range("I9").Value=Worksheets("TestedeVerosimilhana").Range("I10")
'ProgramaroSolver
SolverOkSetCell:="$AG$3",MaxMinVal:=2,ValueOf:="0",ByChange:=_
"$I$3,$I$4,$I$5,$I$8,$I$9"
SolverSolveTrue
'testaraigualdadenok
85
Worksheets(5).Activate
Range("I3").Value=Worksheets("TestedeVerosimilhana").Range("I3")
Range("I4").Value=Worksheets("TestedeVerosimilhana").Range("I4")
Range("I5").Value=Worksheets("TestedeVerosimilhana").Range("I5")
Range("I7").Value=Worksheets("TestedeVerosimilhana").Range("I8")
Range("I9").Value=Worksheets("TestedeVerosimilhana").Range("I10")
'ProgramaroSolver
SolverOkSetCell:="$AG$3",MaxMinVal:=2,ValueOf:="0",ByChange:=_
"$I$3,$I$4,$I$5,$I$7,$I$9"
SolverSolveTrue
'testaraigualdadenot0
Worksheets(6).Activate
Range("I3").Value=Worksheets("TestedeVerosimilhana").Range("I3")
Range("I4").Value=Worksheets("TestedeVerosimilhana").Range("I4")
Range("I5").Value=Worksheets("TestedeVerosimilhana").Range("I5")
Range("I7").Value=Worksheets("TestedeVerosimilhana").Range("I8")
Range("I8").Value=Worksheets("TestedeVerosimilhana").Range("I9")
'ProgramaroSolver
SolverOkSetCell:="$AG$3",MaxMinVal:=2,ValueOf:="0",ByChange:=_
"$I$3,$I$4,$I$5,$I$7,$I$8"
SolverSolveTrue
Application.ScreenUpdating=True
EndSub
SubgraficoVBGC()
Worksheets("AjusteaModelosdeCrescimento").Activate
Dimt1AsRange
DimntAsDouble
Dimi,jAsInteger
nt=Range("F11").Value
Range("R2").Value=0
Sett1=Range("R2")
'colardadosintroduzidosparacriarografico
DimvAsVariant
DimbAsVariant
Dimidd(1To200)AsString
Application.ScreenUpdating=False
Fori=1To200
Range("A3:A200").Select
idd(i)=Selection.Item(i,1).Address
86
Nexti
Fori=1To200
v=Range(idd(i)).Value
b=Round(v,1)*10+1
Range("T2:T1000").Select
Selection.Item(b,1).Value=Range("B2").Offset(i,0).Value
Nexti
IfRange(idd(1)).Value=0Then
Range("T2:T1000").Select
Selection.Item(1,1).Value=Range("B3").Value
ElseIfRange(idd(1)).Value<>0Then
Range("T2:T1000").Select
Selection.Item(1,1).Value=""
EndIf
'criarumaseriedenmerosnacolunaaoladodoscomprimentosparacadamodelos
DimiddmaxAsDouble
iddmax=Range("$P$11").Value*10
Forj=1Toiddmax
t1.Offset(j)=t1.Offset(j1).Value+0.1
Nextj
Application.ScreenUpdating=True
'procuraasclulasquenoestovazias
Dimcol1AsRange,col2AsRange,col3AsRange
DimTempChartAsChart
DimDadosAsRange
Setcol1=Cells(Rows.Count,"R").End(xlUp)
SetDados=Union(Range("R1",col1),Range("S1",col1),Range("T1",col1))
'Adicionarogrfico
Application.ScreenUpdating=False
SetTempChart=ActiveSheet.Shapes.AddChart.Chart
87
TempChart.SetSourceDataSource:=Dados
'Formatarogrfico
WithTempChart
.ChartType=xlLineMarkers
.SetSourceDataSource:=Dados
.HasLegend=True
.SeriesCollection(1).ChartType=xlLine
'.PlotArea.Interior.ColorIndex=xlNone
.Axes(xlValue).MajorGridlines.Delete
'.ApplyDataLabelsType:=xlDataLabelsShowValue,LegendKey:=False
.Axes(xlValue).MaximumScale=nt
.Axes(xlValue).MinimumScale=0
'.Axes(xlCategory).MaximumScale=1
.ChartArea.Format.Line.Visible=False
.HasTitle=False
.Axes(xlCategory,xlPrimary).HasTitle=True
.Axes(xlCategory,xlPrimary).AxisTitle.Characters.Text="Idade"
.Axes(xlValue,xlPrimary).HasTitle=True
.Axes(xlValue,xlPrimary).AxisTitle.Characters.Text="Comprimento"
.SeriesCollection(2).Select
WithSelection
.MarkerStyle=1
.MarkerSize=3
EndWith
EndWith
WithTempChart.ChartArea.Format.Shadow
.Visible=msoTrue
.Blur=3
.Transparency=0.6
.OffsetX=6
.OffsetY=6
EndWith
'AjustarotamanhodoChartObject
WithActiveSheet.ChartObjects(1)
.Width=600
.Height=400
EndWith
'salvargrficocomoGIF
DimFNameAsString
FName=ThisWorkbook.Path&Application.PathSeparator&"temp.gif"
TempChart.ExportFilename:=FName,filterName:="GIF"
ActiveSheet.ChartObjects(1).Delete
Application.ScreenUpdating=True
EndSub
SubgraficoL()
Worksheets("AjusteaModelosdeCrescimento").Activate
Dimt1AsRange
88
DimntAsDouble
Dimi,jAsInteger
nt=Range("F11").Value
Range("V2").Value=0
Sett1=Range("V2")
'colardadosintroduzidosparacriarografico
DimvAsVariant
DimbAsVariant
Dimidd(1To200)AsString
Application.ScreenUpdating=False
Fori=1To200
Range("A3:A200").Select
idd(i)=Selection.Item(i,1).Address
Nexti
Fori=1To200
v=Range(idd(i)).Value
b=Round(v,1)*10+1
Range("X2:X1000").Select
Selection.Item(b,1).Value=Range("B2").Offset(i,0).Value
Nexti
IfRange(idd(1)).Value=0Then
Range("X2:X1000").Select
Selection.Item(1,1).Value=Range("B3").Value
Else
Range("X2:X1000").Select
Selection.Item(1,1).Value=""
EndIf
'criarumaseriedenmerosnacolunaaoladodoscomprimentosparacadamodelos
DimiddmaxAsDouble
iddmax=Range("$P$12").Value*10
Forj=1Toiddmax
t1.Offset(j)=t1.Offset(j1).Value+0.1
89
Nextj
Application.ScreenUpdating=True
'procuraasclulasquenoestovazias
Dimcol1AsRange,col2AsRange,col3AsRange
DimTempChartAsChart
DimDadosAsRange
Setcol1=Cells(Rows.Count,"V").End(xlUp)
SetDados=Union(Range("V1",col1),Range("W1",col1),Range("X1",col1))
'Adicionarogrfico
Application.ScreenUpdating=False
SetTempChart=ActiveSheet.Shapes.AddChart.Chart
TempChart.SetSourceDataSource:=Dados
'Formatarogrfico
WithTempChart
.ChartType=xlLineMarkers
.SetSourceDataSource:=Dados
.HasLegend=True
.SeriesCollection(1).ChartType=xlLine
'.PlotArea.Interior.ColorIndex=xlNone
.Axes(xlValue).MajorGridlines.Delete
'.ApplyDataLabelsType:=xlDataLabelsShowValue,LegendKey:=False
.Axes(xlValue).MaximumScale=nt
.Axes(xlValue).MinimumScale=0
'.Axes(xlCategory).MaximumScale=1
.ChartArea.Format.Line.Visible=False
.HasTitle=False
.Axes(xlCategory,xlPrimary).HasTitle=True
.Axes(xlCategory,xlPrimary).AxisTitle.Characters.Text="Idade"
.Axes(xlValue,xlPrimary).HasTitle=True
.Axes(xlValue,xlPrimary).AxisTitle.Characters.Text="Comprimento"
.SeriesCollection(2).Select
WithSelection
.MarkerStyle=1
.MarkerSize=3
EndWith
EndWith
WithTempChart.ChartArea.Format.Shadow
.Visible=msoTrue
.Blur=3
.Transparency=0.6
.OffsetX=6
.OffsetY=6
EndWith
90
'AjustarotamanhodoChartObject
WithActiveSheet.ChartObjects(1)
.Width=600
.Height=400
EndWith
'salvargrficocomoGIF
DimFNameAsString
FName=ThisWorkbook.Path&Application.PathSeparator&"temp.gif"
TempChart.ExportFilename:=FName,filterName:="GIF"
ActiveSheet.ChartObjects(1).Delete
Application.ScreenUpdating=True
EndSub
SubgraficoG()
Worksheets("AjusteaModelosdeCrescimento").Activate
Dimt1AsRange
DimntAsDouble
Dimi,jAsInteger
nt=Range("F11").Value
Range("Z2").Value=0
Sett1=Range("Z2")
'colardadosintroduzidosparacriaroeixodasabcissasdogrfico
DimvAsVariant
DimbAsVariant
Dimidd(1To200)AsString
Application.ScreenUpdating=False
Fori=1To200
Range("A3:A200").Select
idd(i)=Selection.Item(i,1).Address
Nexti
Fori=1To200
v=Range(idd(i)).Value
b=Round(v,1)*10+1
Range("AB2:AB2000").Select
Selection.Item(b,1).Value=Range("B2").Offset(i,0).Value
Nexti
IfRange(idd(1)).Value=0Then
91
Range("AB2:AB2000").Select
Selection.Item(1,1).Value=Range("B3").Value
Else
Range("AB2:AB2000").Select
Selection.Item(1,1).Value=""
EndIf
'criarumaseriedenmerosnacolunaaoladodoscomprimentosparacadamodelos
DimiddmaxAsDouble
iddmax=Range("$P$13").Value*10
Forj=1Toiddmax
t1.Offset(j)=t1.Offset(j1).Value+0.1
Nextj
Application.ScreenUpdating=True
'procuraasclulasquenoestovazias
Dimcol1AsRange,col2AsRange,col3AsRange
DimTempChartAsChart
DimDadosAsRange
Setcol1=Cells(Rows.Count,"Z").End(xlUp)
SetDados=Union(Range("Z1",col1),Range("AA1",col1),Range("AB1",col1))
'Adicionarogrfico
Application.ScreenUpdating=False
SetTempChart=ActiveSheet.Shapes.AddChart.Chart
TempChart.SetSourceDataSource:=Dados
'Formatarogrfico
WithTempChart
.ChartType=xlLineMarkers
.SetSourceDataSource:=Dados
.HasLegend=True
.SeriesCollection(1).ChartType=xlLine
'.PlotArea.Interior.ColorIndex=xlNone
.Axes(xlValue).MajorGridlines.Delete
'.ApplyDataLabelsType:=xlDataLabelsShowValue,LegendKey:=False
.Axes(xlValue).MaximumScale=nt
.Axes(xlValue).MinimumScale=0
'.Axes(xlCategory).MaximumScale=1
92
.ChartArea.Format.Line.Visible=False
.HasTitle=False
.Axes(xlCategory,xlPrimary).HasTitle=True
.Axes(xlCategory,xlPrimary).AxisTitle.Characters.Text="Idade"
.Axes(xlValue,xlPrimary).HasTitle=True
.Axes(xlValue,xlPrimary).AxisTitle.Characters.Text="Comprimento"
.SeriesCollection(2).Select
WithSelection
.MarkerStyle=1
.MarkerSize=3
EndWith
EndWith
WithTempChart.ChartArea.Format.Shadow
.Visible=msoTrue
.Blur=3
.Transparency=0.6
.OffsetX=6
.OffsetY=6
EndWith
'AjustarotamanhodoChartObject
WithActiveSheet.ChartObjects(1)
.Width=600
.Height=400
EndWith
'salvargrficocomoGIF
DimFNameAsString
FName=ThisWorkbook.Path&Application.PathSeparator&"temp.gif"
TempChart.ExportFilename:=FName,filterName:="GIF"
ActiveSheet.ChartObjects(1).Delete
Application.ScreenUpdating=True
EndSub
SubgraficoVBGCduas()
Worksheets("TestedeVerosimilhana").Activate
Dimt1AsRange
DimntAsDouble
Dimi,jAsInteger
IfRange("I3").Value>=Range("I8").ValueThen
nt=Range("I3").Value
Else
nt=Range("I8").Value
EndIf
'colardadosintroduzidosrelativosprimeiraamostra
93
DimvAsVariant
DimbAsVariant
Dimidd(1To204)AsString
Application.ScreenUpdating=False
Fori=1To204
Range("A4:A204").Select
idd(i)=Selection.Item(i,1).Address
Nexti
Fori=1To200
v=Range(idd(i)).Value
b=Round(v,1)*10+1
Range("U2:U1000").Select
Selection.Item(b,1).Value=Range("B3").Offset(i,0).Value
Nexti
IfRange(idd(1)).Value=0Then
Range("U2:U1000").Select
Selection.Item(1,1).Value=Range("B4").Value
Else
Range("U2:U1000").Select
Selection.Item(1,1).Value=""
EndIf
'colardadosintroduzidosrelativossegundaamostra
Dimv2AsVariant
Dimb2AsVariant
Dimidd2(1To204)AsString
Application.ScreenUpdating=False
Fori=1To204
Range("D4:D204").Select
idd2(i)=Selection.Item(i,1).Address
Nexti
Fori=1To200
94
v2=Range(idd2(i)).Value
b2=Round(v2,1)*10+1
Range("V2:V1000").Select
Selection.Item(b2,1).Value=Range("E3").Offset(i,0).Value
Nexti
IfRange(idd2(1)).Value=0Then
Range("V2:V1000").Select
Selection.Item(1,1).Value=Range("E4").Value
ElseIfRange(idd2(1)).Value<>0Then
Range("V2:V1000").Select
Selection.Item(1,1).Value=""
EndIf
'criarumaseriedenmerosnacolunaaoladodoscomprimentosparacadaomodelo
Range("R2").Value=0
Sett1=Range("R2")
DimiddmaxAsDouble
IfRange("$P$11").Value>=Range("$P$14").ValueThen
iddmax=Range("$P$11").Value*10
Else
iddmax=Range("$P$14").Value*10
EndIf
Forj=1Toiddmax
t1.Offset(j)=t1.Offset(j1).Value+0.1
Nextj
Application.ScreenUpdating=True
'procuraasclulasquenoestovazias
Dimcol1AsRange,col2AsRange,col3AsRange
DimTempChartAsChart
DimDadosAsRange
95
Setcol1=Cells(Rows.Count,"R").End(xlUp)
Set Dados = Union(Range("R1", col1), Range("S1", col1), Range("T1", col1), Range("U1", col1),
Range("V1",col1))
'Adicionarogrfico
Application.ScreenUpdating=False
SetTempChart=ActiveSheet.Shapes.AddChart.Chart
TempChart.SetSourceDataSource:=Dados
'Formatarogrfico
WithTempChart
.ChartType=xlLineMarkers
.SetSourceDataSource:=Dados
.HasLegend=True
.SeriesCollection(1).ChartType=xlLine
.SeriesCollection(2).ChartType=xlLine
'.PlotArea.Interior.ColorIndex=xlNone
.Axes(xlValue).MajorGridlines.Delete
'.ApplyDataLabelsType:=xlDataLabelsShowValue,LegendKey:=False
.Axes(xlValue).MaximumScale=nt
.Axes(xlValue).MinimumScale=0
'.Axes(xlCategory).MaximumScale=1
.ChartArea.Format.Line.Visible=False
.HasTitle=False
.Axes(xlCategory,xlPrimary).HasTitle=True
.Axes(xlCategory,xlPrimary).AxisTitle.Characters.Text="Idade"
.Axes(xlValue,xlPrimary).HasTitle=True
.Axes(xlValue,xlPrimary).AxisTitle.Characters.Text="Comprimento"
.SeriesCollection(3).Select
WithSelection
.MarkerStyle=1
.MarkerSize=3
EndWith
.SeriesCollection(4).Select
WithSelection
.MarkerStyle=2
.MarkerSize=5
EndWith
EndWith
WithTempChart.ChartArea.Format.Shadow
.Visible=msoTrue
.Blur=3
.Transparency=0.6
.OffsetX=6
.OffsetY=6
EndWith
'AjustarotamanhodoChartObject
WithActiveSheet.ChartObjects(1)
.Width=600
.Height=400
EndWith
96
'salvargrficocomoGIF
DimFNameAsString
FName=ThisWorkbook.Path&Application.PathSeparator&"temp.gif"
TempChart.ExportFilename:=FName,filterName:="GIF"
ActiveSheet.ChartObjects(1).Delete
Application.ScreenUpdating=True
EndSub
SubgraficoLduas()
Worksheets("TestedeVerosimilhana").Activate
Dimt1AsRange
DimntAsDouble
Dimi,jAsInteger
IfRange("I3").Value>=Range("I8").ValueThen
nt=Range("I3").Value
Else
nt=Range("I8").Value
EndIf
'colardadosintroduzidosrelativosprimeiraamostra
DimvAsVariant
DimbAsVariant
Dimidd(1To204)AsString
Application.ScreenUpdating=False
Fori=1To204
Range("A4:A204").Select
idd(i)=Selection.Item(i,1).Address
Fori=1To200
v=Range(idd(i)).Value
b=Round(v,1)*10+1
Range("AA2:AA1000").Select
Selection.Item(b,1).Value=Range("B3").Offset(i,0).Value
Nexti
Nexti
IfRange(idd(i)).Value=0Then
97
Range("AA2:AA1000").Select
Selection.Item(1,1).Value=Range("B4").Value
Else
Selection.Item(1,1).Value=""
EndIf
'colardadosintroduzidosrelativossegundaamostra
Dimv2AsVariant
Dimb2AsVariant
Dimidd2(1To204)AsString
Application.ScreenUpdating=False
Fori=1To204
Range("D4:D204").Select
idd2(i)=Selection.Item(i,1).Address
Nexti
IfRange(idd2(i)).Value=0Then
Range("AB2:AB1000").Select
Selection.Item(1,1).Value=Range("E4").Value
Else
Selection.Item(1,1).Value=Range("E4").Value
EndIf
Fori=1To204
v2=Range(idd2(i)).Value
b2=Round(v2,1)*10+1
Range("AB2:AB1000").Select
Selection.Item(b2,1).Value=Range("E3").Offset(i,0).Value
Nexti
'criarumaseriedenmerosnacolunaaoladodoscomprimentosparacadaomodelo
Range("X2").Value=0
Sett1=Range("X2")
DimiddmaxAsDouble
98
IfRange("$P$11").Value>=Range("$P$14").ValueThen
iddmax=Range("$P$11").Value*10
Else
iddmax=Range("$P$14").Value*10
EndIf
Forj=1Toiddmax
t1.Offset(j)=t1.Offset(j1).Value+0.1
Nextj
Application.ScreenUpdating=True
'procuraasclulasquenoestovazias
Dimcol1AsRange,col2AsRange,col3AsRange
DimTempChartAsChart
DimDadosAsRange
Setcol1=Cells(Rows.Count,"X").End(xlUp)
Set Dados = Union(Range("X1", col1), Range("Y1", col1), Range("Z1", col1), Range("AA1", col1),
Range("AB1",col1))
'Adicionarogrfico
Application.ScreenUpdating=False
SetTempChart=ActiveSheet.Shapes.AddChart.Chart
TempChart.SetSourceDataSource:=Dados
'Formatarogrfico
WithTempChart
.ChartType=xlLineMarkers
.SetSourceDataSource:=Dados
.HasLegend=True
.SeriesCollection(1).ChartType=xlLine
.SeriesCollection(2).ChartType=xlLine
'.PlotArea.Interior.ColorIndex=xlNone
.Axes(xlValue).MajorGridlines.Delete
'.ApplyDataLabelsType:=xlDataLabelsShowValue,LegendKey:=False
.Axes(xlValue).MaximumScale=nt
.Axes(xlValue).MinimumScale=0
'.Axes(xlCategory).MaximumScale=1
.ChartArea.Format.Line.Visible=False
.HasTitle=False
.Axes(xlCategory,xlPrimary).HasTitle=True
.Axes(xlCategory,xlPrimary).AxisTitle.Characters.Text="Idade"
.Axes(xlValue,xlPrimary).HasTitle=True
.Axes(xlValue,xlPrimary).AxisTitle.Characters.Text="Comprimento"
.SeriesCollection(3).Select
99
WithSelection
.MarkerStyle=1
.MarkerSize=3
EndWith
.SeriesCollection(4).Select
WithSelection
.MarkerStyle=2
.MarkerSize=5
EndWith
EndWith
WithTempChart.ChartArea.Format.Shadow
.Visible=msoTrue
.Blur=3
.Transparency=0.6
.OffsetX=6
.OffsetY=6
EndWith
'AjustarotamanhodoChartObject
WithActiveSheet.ChartObjects(1)
.Width=600
.Height=400
EndWith
'salvargrficocomoGIF
DimFNameAsString
FName=ThisWorkbook.Path&Application.PathSeparator&"temp.gif"
TempChart.ExportFilename:=FName,filterName:="GIF"
ActiveSheet.ChartObjects(1).Delete
Application.ScreenUpdating=True
EndSub
SubgraficoGduas()
Worksheets("TestedeVerosimilhana").Activate
Dimt1AsRange
DimntAsDouble
Dimi,jAsInteger
IfRange("I3").Value>=Range("I8").ValueThen
nt=Range("I3").Value
Else
nt=Range("I8").Value
EndIf
'colardadosintroduzidosrelativosprimeiraamostra
100
DimvAsVariant
DimbAsVariant
Dimidd(1To204)AsString
Application.ScreenUpdating=False
Fori=1To204
Range("A4:A204").Select
idd(i)=Selection.Item(i,1).Address
Nexti
Fori=1To204
v=Range(idd(i)).Value
b=Round(v,1)*10+1
Range("AG2:AG1000").Select
Selection.Item(b,1).Value=Range("B3").Offset(i,0).Value
Nexti
IfRange(idd(i)).Value=0Then
Range("AG2:AG1000").Select
Selection.Item(1,1).Value=Range("B4").Value
Else
Selection.Item(1,1).Value=""
EndIf
'colardadosintroduzidosrelativossegundaamostra
Dimv2AsVariant
Dimb2AsVariant
Dimidd2(1To204)AsString
Application.ScreenUpdating=False
Fori=1To204
Range("D4:D204").Select
idd2(i)=Selection.Item(i,1).Address
IfRange(idd2(i)).Value=0Then
Range("AH2:AH1000").Select
Selection.Item(1,1).Value=Range("E4").Value
101
Else
v2=Range(idd2(i)).Value
b2=Round(v2,1)*10+1
Range("AH2:AH1000").Select
Selection.Item(b2,1).Value=Range("E3").Offset(i,0).Value
EndIf
Nexti
'criarumaseriedenmerosnacolunaaoladodoscomprimentosparacadaomodelo
Range("AD2").Value=0
Sett1=Range("AD2")
DimiddmaxAsDouble
IfRange("$P$11").Value>=Range("$P$14").ValueThen
iddmax=Range("$P$11").Value*10
Else
iddmax=Range("$P$14").Value*10
EndIf
Forj=1Toiddmax
t1.Offset(j)=t1.Offset(j1).Value+0.1
Nextj
Application.ScreenUpdating=True
'procuraasclulasquenoestovazias
Dimcol1AsRange,col2AsRange,col3AsRange
DimTempChartAsChart
DimDadosAsRange
Setcol1=Cells(Rows.Count,"AD").End(xlUp)
SetDados=Union(Range("AD1",col1),Range("AE1",col1),Range("AF1",col1),Range("AG1",col1),
Range("AH1",col1))
'Adicionarogrfico
Application.ScreenUpdating=False
SetTempChart=ActiveSheet.Shapes.AddChart.Chart
TempChart.SetSourceDataSource:=Dados
102
'Formatarogrfico
WithTempChart
.ChartType=xlLineMarkers
.SetSourceDataSource:=Dados
.HasLegend=True
.SeriesCollection(1).ChartType=xlLine
.SeriesCollection(2).ChartType=xlLine
'.PlotArea.Interior.ColorIndex=xlNone
.Axes(xlValue).MajorGridlines.Delete
'.ApplyDataLabelsType:=xlDataLabelsShowValue,LegendKey:=False
.Axes(xlValue).MaximumScale=nt
.Axes(xlValue).MinimumScale=0
'.Axes(xlCategory).MaximumScale=1
.ChartArea.Format.Line.Visible=False
.HasTitle=False
.Axes(xlCategory,xlPrimary).HasTitle=True
.Axes(xlCategory,xlPrimary).AxisTitle.Characters.Text="Idade"
.Axes(xlValue,xlPrimary).HasTitle=True
.Axes(xlValue,xlPrimary).AxisTitle.Characters.Text="Comprimento"
.SeriesCollection(3).Select
WithSelection
.MarkerStyle=1
.MarkerSize=3
EndWith
.SeriesCollection(4).Select
WithSelection
.MarkerStyle=2
.MarkerSize=5
EndWith
EndWith
WithTempChart.ChartArea.Format.Shadow
.Visible=msoTrue
.Blur=3
.Transparency=0.6
.OffsetX=6
.OffsetY=6
EndWith
'AjustarotamanhodoChartObject
WithActiveSheet.ChartObjects(1)
.Width=600
.Height=400
EndWith
'salvargrficocomoGIF
DimFNameAsString
FName=ThisWorkbook.Path&Application.PathSeparator&"temp.gif"
TempChart.ExportFilename:=FName,filterName:="GIF"
ActiveSheet.ChartObjects(1).Delete
Application.ScreenUpdating=True
EndSub
103
SubgraficoVBGC1VBGC2()
Worksheets("ComparaoPontual").Activate
Dimt1AsRange
DimntAsDouble
Dimi,jAsInteger
IfRange("I3").Value>=Range("I8").ValueThen
nt=Range("I3").Value
Else
nt=Range("I8").Value
EndIf
'criarumaseriedenmerosnacolunaaoladodoscomprimentosparacadaomodelo
Range("AC2").Value=0
Sett1=Range("AC2")
DimiddmaxAsDouble
IfRange("$P$40").Value>=Range("$P$43").ValueThen
iddmax=Range("$P$40").Value*10
Else
iddmax=Range("$P$43").Value*10
EndIf
Forj=1Toiddmax
t1.Offset(j)=t1.Offset(j1).Value+0.1
Nextj
Application.ScreenUpdating=True
'procuraasclulasquenoestovazias
Dimcol1AsRange,col2AsRange,col3AsRange
DimTempChartAsChart
DimDadosAsRange
Setcol1=Cells(Rows.Count,"AC").End(xlUp)
'Setcol2=Cells(Rows.Count,"AD").End(xlUp)
104
'Setcol3=Cells(Rows.Count,"AG").End(xlUp)
SetDados=Union(Range("AC1",col1),Range("AD1",col1.Offset(0,1)),Range("AG1",col1.Offset(0,
4)))
'Adicionarogrfico
Application.ScreenUpdating=False
SetTempChart=ActiveSheet.Shapes.AddChart.Chart
TempChart.SetSourceDataSource:=Dados
'Formatarogrfico
WithTempChart
.ChartType=xlLine
.SetSourceDataSource:=Dados
.HasLegend=True
'.PlotArea.Interior.ColorIndex=xlNone
.Axes(xlValue).MajorGridlines.Delete
'.ApplyDataLabelsType:=xlDataLabelsShowValue,LegendKey:=False
.Axes(xlValue).MaximumScale=nt
.Axes(xlValue).MinimumScale=0
'.Axes(xlCategory).MaximumScale=1
.ChartArea.Format.Line.Visible=False
.HasTitle=False
.Axes(xlCategory,xlPrimary).HasTitle=True
.Axes(xlCategory,xlPrimary).AxisTitle.Characters.Text="Idade"
.Axes(xlValue,xlPrimary).HasTitle=True
.Axes(xlValue,xlPrimary).AxisTitle.Characters.Text="Comprimento"
EndWith
WithTempChart.ChartArea.Format.Shadow
.Visible=msoTrue
.Blur=3
.Transparency=0.6
.OffsetX=6
.OffsetY=6
EndWith
'AjustarotamanhodoChartObject
WithActiveSheet.ChartObjects(1)
.Width=600
.Height=400
EndWith
'salvargrficocomoGIF
DimFNameAsString
FName=ThisWorkbook.Path&Application.PathSeparator&"temp.gif"
TempChart.ExportFilename:=FName,filterName:="GIF"
ActiveSheet.ChartObjects(1).Delete
Application.ScreenUpdating=True
EndSub
105
SubgraficoVBGC1L2()
Worksheets("ComparaoPontual").Activate
Dimt1AsRange
DimntAsDouble
Dimi,jAsInteger
IfRange("I3").Value>=Range("I8").ValueThen
nt=Range("I3").Value
Else
nt=Range("I8").Value
EndIf
'criarumaseriedenmerosnacolunaaoladodoscomprimentosparacadaomodelo
Range("AC2").Value=0
Sett1=Range("AC2")
DimiddmaxAsDouble
IfRange("$P$40").Value>=Range("$P$44").ValueThen
iddmax=Range("$P$40").Value*10
Else
iddmax=Range("$P$44").Value*10
EndIf
Forj=1Toiddmax
t1.Offset(j)=t1.Offset(j1).Value+0.1
Nextj
Application.ScreenUpdating=True
'procuraasclulasquenoestovazias
Dimcol1AsRange,col2AsRange,col3AsRange
DimTempChartAsChart
DimDadosAsRange
Setcol1=Cells(Rows.Count,"AC").End(xlUp)
'Setcol2=Cells(Rows.Count,"AD").End(xlUp)
'Setcol3=Cells(Rows.Count,"AH").End(xlUp)
106
SetDados=Union(Range("AC1",col1),Range("AD1",col1.Offset(0,1)),Range("AH1",col1.Offset(0,
5)))
'Adicionarogrfico
Application.ScreenUpdating=False
SetTempChart=ActiveSheet.Shapes.AddChart.Chart
TempChart.SetSourceDataSource:=Dados
'Formatarogrfico
WithTempChart
.ChartType=xlLine
.SetSourceDataSource:=Dados
.HasLegend=True
'.PlotArea.Interior.ColorIndex=xlNone
.Axes(xlValue).MajorGridlines.Delete
'.ApplyDataLabelsType:=xlDataLabelsShowValue,LegendKey:=False
.Axes(xlValue).MaximumScale=nt
.Axes(xlValue).MinimumScale=0
'.Axes(xlCategory).MaximumScale=1
.ChartArea.Format.Line.Visible=False
.HasTitle=False
.Axes(xlCategory,xlPrimary).HasTitle=True
.Axes(xlCategory,xlPrimary).AxisTitle.Characters.Text="Idade"
.Axes(xlValue,xlPrimary).HasTitle=True
.Axes(xlValue,xlPrimary).AxisTitle.Characters.Text="Comprimento"
EndWith
WithTempChart.ChartArea.Format.Shadow
.Visible=msoTrue
.Blur=3
.Transparency=0.6
.OffsetX=6
.OffsetY=6
EndWith
'AjustarotamanhodoChartObject
WithActiveSheet.ChartObjects(1)
.Width=600
.Height=400
EndWith
'salvargrficocomoGIF
DimFNameAsString
FName=ThisWorkbook.Path&Application.PathSeparator&"temp.gif"
TempChart.ExportFilename:=FName,filterName:="GIF"
ActiveSheet.ChartObjects(1).Delete
Application.ScreenUpdating=True
EndSub
SubgraficoVBGC1G2()
107
Worksheets("ComparaoPontual").Activate
Dimt1AsRange
DimntAsDouble
Dimi,jAsInteger
IfRange("I3").Value>=Range("I8").ValueThen
nt=Range("I3").Value
Else
nt=Range("I8").Value
EndIf
'criarumaseriedenmerosnacolunaaoladodoscomprimentosparacadaomodelo
Range("AC2").Value=0
Sett1=Range("AC2")
DimiddmaxAsDouble
IfRange("$P$40").Value>=Range("$P$45").ValueThen
iddmax=Range("$P$40").Value*10
Else
iddmax=Range("$P$45").Value*10
EndIf
Forj=1Toiddmax
t1.Offset(j)=t1.Offset(j1).Value+0.1
Nextj
Application.ScreenUpdating=True
'procuraasclulasquenoestovazias
Dimcol1AsRange
DimTempChartAsChart
DimDadosAsRange
Setcol1=Cells(Rows.Count,"AC").End(xlUp)
'defineoconjuntodedados
SetDados=Union(Range("AC1",col1),Range("AD1",col1.Offset(0,1)),Range("AI1",col1.Offset(0,
6)))
'Adicionarogrfico
108
Application.ScreenUpdating=False
SetTempChart=ActiveSheet.Shapes.AddChart.Chart
TempChart.SetSourceDataSource:=Dados
'Formatarogrfico
WithTempChart
.ChartType=xlLine
.SetSourceDataSource:=Dados
.HasLegend=True
'.PlotArea.Interior.ColorIndex=xlNone
.Axes(xlValue).MajorGridlines.Delete
'.ApplyDataLabelsType:=xlDataLabelsShowValue,LegendKey:=False
.Axes(xlValue).MaximumScale=nt
.Axes(xlValue).MinimumScale=0
'.Axes(xlCategory).MaximumScale=1
.ChartArea.Format.Line.Visible=False
.HasTitle=False
.Axes(xlCategory,xlPrimary).HasTitle=True
.Axes(xlCategory,xlPrimary).AxisTitle.Characters.Text="Idade"
.Axes(xlValue,xlPrimary).HasTitle=True
.Axes(xlValue,xlPrimary).AxisTitle.Characters.Text="Comprimento"
EndWith
WithTempChart.ChartArea.Format.Shadow
.Visible=msoTrue
.Blur=3
.Transparency=0.6
.OffsetX=6
.OffsetY=6
EndWith
'AjustarotamanhodoChartObject
WithActiveSheet.ChartObjects(1)
.Width=600
.Height=400
EndWith
'salvargrficocomoGIF
DimFNameAsString
FName=ThisWorkbook.Path&Application.PathSeparator&"temp.gif"
TempChart.ExportFilename:=FName,filterName:="GIF"
ActiveSheet.ChartObjects(1).Delete
Application.ScreenUpdating=True
EndSub
SubgraficoL1VBGC2()
Worksheets("ComparaoPontual").Activate
Dimt1AsRange
DimntAsDouble
109
Dimi,jAsInteger
IfRange("I3").Value>=Range("I8").ValueThen
nt=Range("I3").Value
Else
nt=Range("I8").Value
EndIf
'criarumaseriedenmerosnacolunaaoladodoscomprimentosparacadaomodelo
Range("AC2").Value=0
Sett1=Range("AC2")
DimiddmaxAsDouble
IfRange("$P$41").Value>=Range("$P$43").ValueThen
iddmax=Range("$P$41").Value*10
Else
iddmax=Range("$P$43").Value*10
EndIf
Forj=1Toiddmax
t1.Offset(j)=t1.Offset(j1).Value+0.1
Nextj
Application.ScreenUpdating=True
'procuraasclulasquenoestovazias
Dimcol1AsRange
DimTempChartAsChart
DimDadosAsRange
Setcol1=Cells(Rows.Count,"AC").End(xlUp)
SetDados=Union(Range("AC1",col1),Range("AE1",col1.Offset(0,2)),Range("AG1",col1.Offset(0,
4)))
'Adicionarogrfico
Application.ScreenUpdating=False
SetTempChart=ActiveSheet.Shapes.AddChart.Chart
TempChart.SetSourceDataSource:=Dados
'Formatarogrfico
110
WithTempChart
.ChartType=xlLine
.SetSourceDataSource:=Dados
.HasLegend=True
'.PlotArea.Interior.ColorIndex=xlNone
.Axes(xlValue).MajorGridlines.Delete
'.ApplyDataLabelsType:=xlDataLabelsShowValue,LegendKey:=False
.Axes(xlValue).MaximumScale=nt
.Axes(xlValue).MinimumScale=0
'.Axes(xlCategory).MaximumScale=1
.ChartArea.Format.Line.Visible=False
.HasTitle=False
.Axes(xlCategory,xlPrimary).HasTitle=True
.Axes(xlCategory,xlPrimary).AxisTitle.Characters.Text="Idade"
.Axes(xlValue,xlPrimary).HasTitle=True
.Axes(xlValue,xlPrimary).AxisTitle.Characters.Text="Comprimento"
EndWith
WithTempChart.ChartArea.Format.Shadow
.Visible=msoTrue
.Blur=3
.Transparency=0.6
.OffsetX=6
.OffsetY=6
EndWith
'AjustarotamanhodoChartObject
WithActiveSheet.ChartObjects(1)
.Width=600
.Height=400
EndWith
'salvargrficocomoGIF
DimFNameAsString
FName=ThisWorkbook.Path&Application.PathSeparator&"temp.gif"
TempChart.ExportFilename:=FName,filterName:="GIF"
ActiveSheet.ChartObjects(1).Delete
Application.ScreenUpdating=True
EndSub
SubgraficoL1L2()
Worksheets("ComparaoPontual").Activate
Dimt1AsRange
DimntAsDouble
Dimi,jAsInteger
IfRange("I3").Value>=Range("I8").ValueThen
nt=Range("I3").Value
111
Else
nt=Range("I8").Value
EndIf
'criarumaseriedenmerosnacolunaaoladodoscomprimentosparacadaomodelo
Range("AC2").Value=0
Sett1=Range("AC2")
DimiddmaxAsDouble
IfRange("$P$41").Value>=Range("$P$44").ValueThen
iddmax=Range("$P$41").Value*10
Else
iddmax=Range("$P$44").Value*10
EndIf
Forj=1Toiddmax
t1.Offset(j)=t1.Offset(j1).Value+0.1
Nextj
Application.ScreenUpdating=True
'procuraasclulasquenoestovazias
Dimcol1AsRange
DimTempChartAsChart
DimDadosAsRange
Setcol1=Cells(Rows.Count,"AC").End(xlUp)
SetDados=Union(Range("AC1",col1),Range("AE1",col1.Offset(0,2)),Range("AH1",col1.Offset(0,
5)))
'Adicionarogrfico
Application.ScreenUpdating=False
SetTempChart=ActiveSheet.Shapes.AddChart.Chart
TempChart.SetSourceDataSource:=Dados
'Formatarogrfico
WithTempChart
.ChartType=xlLine
.SetSourceDataSource:=Dados
.HasLegend=True
'.PlotArea.Interior.ColorIndex=xlNone
112
.Axes(xlValue).MajorGridlines.Delete
'.ApplyDataLabelsType:=xlDataLabelsShowValue,LegendKey:=False
.Axes(xlValue).MaximumScale=nt
.Axes(xlValue).MinimumScale=0
'.Axes(xlCategory).MaximumScale=1
.ChartArea.Format.Line.Visible=False
.HasTitle=False
.Axes(xlCategory,xlPrimary).HasTitle=True
.Axes(xlCategory,xlPrimary).AxisTitle.Characters.Text="Idade"
.Axes(xlValue,xlPrimary).HasTitle=True
.Axes(xlValue,xlPrimary).AxisTitle.Characters.Text="Comprimento"
EndWith
WithTempChart.ChartArea.Format.Shadow
.Visible=msoTrue
.Blur=3
.Transparency=0.6
.OffsetX=6
.OffsetY=6
EndWith
'AjustarotamanhodoChartObject
WithActiveSheet.ChartObjects(1)
.Width=600
.Height=400
EndWith
'salvargrficocomoGIF
DimFNameAsString
FName=ThisWorkbook.Path&Application.PathSeparator&"temp.gif"
TempChart.ExportFilename:=FName,filterName:="GIF"
ActiveSheet.ChartObjects(1).Delete
Application.ScreenUpdating=True
EndSub
SubgraficoL1G2()
Worksheets("ComparaoPontual").Activate
Dimt1AsRange
DimntAsDouble
Dimi,jAsInteger
IfRange("I3").Value>=Range("I8").ValueThen
nt=Range("I3").Value
Else
nt=Range("I8").Value
EndIf
'criarumaseriedenmerosnacolunaaoladodoscomprimentosparacadaomodelo
113
Range("AC2").Value=0
Sett1=Range("AC2")
DimiddmaxAsDouble
IfRange("$P$41").Value>=Range("$P$45").ValueThen
iddmax=Range("$P$41").Value*10
Else
iddmax=Range("$P$45").Value*10
EndIf
Forj=1Toiddmax
t1.Offset(j)=t1.Offset(j1).Value+0.1
Nextj
Application.ScreenUpdating=True
'procuraasclulasquenoestovazias
Dimcol1AsRange
DimTempChartAsChart
DimDadosAsRange
Setcol1=Cells(Rows.Count,"AC").End(xlUp)
SetDados=Union(Range("AC1",col1),Range("AE1",col1.Offset(0,2)),Range("AI1",col1.Offset(0,
6)))
'Adicionarogrfico
Application.ScreenUpdating=False
SetTempChart=ActiveSheet.Shapes.AddChart.Chart
TempChart.SetSourceDataSource:=Dados
'Formatarogrfico
WithTempChart
.ChartType=xlLine
.SetSourceDataSource:=Dados
.HasLegend=True
'.PlotArea.Interior.ColorIndex=xlNone
.Axes(xlValue).MajorGridlines.Delete
'.ApplyDataLabelsType:=xlDataLabelsShowValue,LegendKey:=False
.Axes(xlValue).MaximumScale=nt
.Axes(xlValue).MinimumScale=0
'.Axes(xlCategory).MaximumScale=1
.ChartArea.Format.Line.Visible=False
.HasTitle=False
114
.Axes(xlCategory,xlPrimary).HasTitle=True
.Axes(xlCategory,xlPrimary).AxisTitle.Characters.Text="Idade"
.Axes(xlValue,xlPrimary).HasTitle=True
.Axes(xlValue,xlPrimary).AxisTitle.Characters.Text="Comprimento"
EndWith
WithTempChart.ChartArea.Format.Shadow
.Visible=msoTrue
.Blur=3
.Transparency=0.6
.OffsetX=6
.OffsetY=6
EndWith
'AjustarotamanhodoChartObject
WithActiveSheet.ChartObjects(1)
.Width=600
.Height=400
EndWith
'salvargrficocomoGIF
DimFNameAsString
FName=ThisWorkbook.Path&Application.PathSeparator&"temp.gif"
TempChart.ExportFilename:=FName,filterName:="GIF"
ActiveSheet.ChartObjects(1).Delete
Application.ScreenUpdating=True
EndSub
SubgraficoG1VBGC2()
Worksheets("ComparaoPontual").Activate
Dimt1AsRange
DimntAsDouble
Dimi,jAsInteger
IfRange("I3").Value>=Range("I8").ValueThen
nt=Range("I3").Value
Else
nt=Range("I8").Value
EndIf
'criarumaseriedenmerosnacolunaaoladodoscomprimentosparacadaomodelo
Range("AC2").Value=0
Sett1=Range("AC2")
DimiddmaxAsDouble
115
IfRange("$P$42").Value>=Range("$P$43").ValueThen
iddmax=Range("$P$42").Value*10
Else
iddmax=Range("$P$43").Value*10
EndIf
Forj=1Toiddmax
t1.Offset(j)=t1.Offset(j1).Value+0.1
Nextj
Application.ScreenUpdating=True
'procuraasclulasquenoestovazias
Dimcol1AsRange
DimTempChartAsChart
DimDadosAsRange
Setcol1=Cells(Rows.Count,"AC").End(xlUp)
SetDados=Union(Range("AC1",col1),Range("AF1",col1.Offset(0,3)),Range("AG1",col1.Offset(0,
4)))
'Adicionarogrfico
Application.ScreenUpdating=False
SetTempChart=ActiveSheet.Shapes.AddChart.Chart
TempChart.SetSourceDataSource:=Dados
'Formatarogrfico
WithTempChart
.ChartType=xlLine
.SetSourceDataSource:=Dados
.HasLegend=True
'.PlotArea.Interior.ColorIndex=xlNone
.Axes(xlValue).MajorGridlines.Delete
'.ApplyDataLabelsType:=xlDataLabelsShowValue,LegendKey:=False
.Axes(xlValue).MaximumScale=nt
.Axes(xlValue).MinimumScale=0
'.Axes(xlCategory).MaximumScale=1
.ChartArea.Format.Line.Visible=False
.HasTitle=False
.Axes(xlCategory,xlPrimary).HasTitle=True
.Axes(xlCategory,xlPrimary).AxisTitle.Characters.Text="Idade"
.Axes(xlValue,xlPrimary).HasTitle=True
.Axes(xlValue,xlPrimary).AxisTitle.Characters.Text="Comprimento"
EndWith
116
WithTempChart.ChartArea.Format.Shadow
.Visible=msoTrue
.Blur=3
.Transparency=0.6
.OffsetX=6
.OffsetY=6
EndWith
'AjustarotamanhodoChartObject
WithActiveSheet.ChartObjects(1)
.Width=600
.Height=400
EndWith
'salvargrficocomoGIF
DimFNameAsString
FName=ThisWorkbook.Path&Application.PathSeparator&"temp.gif"
TempChart.ExportFilename:=FName,filterName:="GIF"
ActiveSheet.ChartObjects(1).Delete
Application.ScreenUpdating=True
EndSub
SubgraficoG1L2()
Worksheets("ComparaoPontual").Activate
Dimt1AsRange
DimntAsDouble
Dimi,jAsInteger
IfRange("I3").Value>=Range("I8").ValueThen
nt=Range("I3").Value
Else
nt=Range("I8").Value
EndIf
'criarumaseriedenmerosnacolunaaoladodoscomprimentosparacadaomodelo
Range("AC2").Value=0
Sett1=Range("AC2")
DimiddmaxAsDouble
IfRange("$P$42").Value>=Range("$P$44").ValueThen
iddmax=Range("$P$42").Value*10
Else
117
iddmax=Range("$P$43").Value*10
EndIf
Forj=1Toiddmax
t1.Offset(j)=t1.Offset(j1).Value+0.1
Nextj
Application.ScreenUpdating=True
'procuraasclulasquenoestovazias
Dimcol1AsRange
DimTempChartAsChart
DimDadosAsRange
Setcol1=Cells(Rows.Count,"AC").End(xlUp)
SetDados=Union(Range("AC1",col1),Range("AF1",col1.Offset(0,3)),Range("AH1",col1.Offset(0,
5)))
'Adicionarogrfico
Application.ScreenUpdating=False
SetTempChart=ActiveSheet.Shapes.AddChart.Chart
TempChart.SetSourceDataSource:=Dados
'Formatarogrfico
WithTempChart
.ChartType=xlLine
.SetSourceDataSource:=Dados
.HasLegend=True
'.PlotArea.Interior.ColorIndex=xlNone
.Axes(xlValue).MajorGridlines.Delete
'.ApplyDataLabelsType:=xlDataLabelsShowValue,LegendKey:=False
.Axes(xlValue).MaximumScale=nt
.Axes(xlValue).MinimumScale=0
'.Axes(xlCategory).MaximumScale=1
.ChartArea.Format.Line.Visible=False
.HasTitle=False
.Axes(xlCategory,xlPrimary).HasTitle=True
.Axes(xlCategory,xlPrimary).AxisTitle.Characters.Text="Idade"
.Axes(xlValue,xlPrimary).HasTitle=True
.Axes(xlValue,xlPrimary).AxisTitle.Characters.Text="Comprimento"
EndWith
WithTempChart.ChartArea.Format.Shadow
.Visible=msoTrue
.Blur=3
.Transparency=0.6
.OffsetX=6
.OffsetY=6
118
EndWith
'AjustarotamanhodoChartObject
WithActiveSheet.ChartObjects(1)
.Width=600
.Height=400
EndWith
'salvargrficocomoGIF
DimFNameAsString
FName=ThisWorkbook.Path&Application.PathSeparator&"temp.gif"
TempChart.ExportFilename:=FName,filterName:="GIF"
ActiveSheet.ChartObjects(1).Delete
Application.ScreenUpdating=True
EndSub
SubgraficoG1G2()
Worksheets("ComparaoPontual").Activate
Dimt1AsRange
DimntAsDouble
Dimi,jAsInteger
IfRange("I3").Value>=Range("I8").ValueThen
nt=Range("I3").Value
Else
nt=Range("I8").Value
EndIf
'criarumaseriedenmerosnacolunaaoladodoscomprimentosparacadaomodelo
Range("AC2").Value=0
Sett1=Range("AC2")
DimiddmaxAsDouble
IfRange("$P$42").Value>=Range("$P$45").ValueThen
iddmax=Range("$P$42").Value*10
Else
iddmax=Range("$P$45").Value*10
EndIf
Forj=1Toiddmax
119
t1.Offset(j)=t1.Offset(j1).Value+0.1
Nextj
Application.ScreenUpdating=True
'procuraasclulasquenoestovazias
Dimcol1AsRange
DimTempChartAsChart
DimDadosAsRange
Setcol1=Cells(Rows.Count,"AC").End(xlUp)
SetDados=Union(Range("AC1",col1),Range("AF1",col1.Offset(0,3)),Range("AI1",col1.Offset(0,
6)))
'col1.Offset(0,6)
'Adicionarogrfico
Application.ScreenUpdating=False
SetTempChart=ActiveSheet.Shapes.AddChart.Chart
TempChart.SetSourceDataSource:=Dados
'Formatarogrfico
WithTempChart
.ChartType=xlLine
.SetSourceDataSource:=Dados
.HasLegend=True
'.PlotArea.Interior.ColorIndex=xlNone
.Axes(xlValue).MajorGridlines.Delete
'.ApplyDataLabelsType:=xlDataLabelsShowValue,LegendKey:=False
.Axes(xlValue).MaximumScale=nt
.Axes(xlValue).MinimumScale=0
'.Axes(xlCategory).MaximumScale=1
.ChartArea.Format.Line.Visible=False
.HasTitle=False
.Axes(xlCategory,xlPrimary).HasTitle=True
.Axes(xlCategory,xlPrimary).AxisTitle.Characters.Text="Idade"
.Axes(xlValue,xlPrimary).HasTitle=True
.Axes(xlValue,xlPrimary).AxisTitle.Characters.Text="Comprimento"
EndWith
WithTempChart.ChartArea.Format.Shadow
.Visible=msoTrue
.Blur=3
.Transparency=0.6
.OffsetX=6
.OffsetY=6
EndWith
'AjustarotamanhodoChartObject
WithActiveSheet.ChartObjects(1)
.Width=600
120
.Height=400
EndWith
'salvargrficocomoGIF
DimFNameAsString
FName=ThisWorkbook.Path&Application.PathSeparator&"temp.gif"
TempChart.ExportFilename:=FName,filterName:="GIF"
ActiveSheet.ChartObjects(1).Delete
Application.ScreenUpdating=True
EndSub
121
Anexo2InterfaceComparaodeCurvasdeCrescimento.
AnexoemCD/DVD.
122