Guest Zangado Posted November 16, 2016 Share Posted November 16, 2016 2 minutos atrás, dois disse: Ou seja, a finalidade é ler, analisar e gravar SEM MODIFICAR O QUE FOR LIDO!!! mas não é isso que se faz sempre?? vc pode me explicar a logica da sua comparação para eu tentar fazer diretamente? está meio dificil acompanhar isso aqui com minhas vistas assim eu não me dou bem com esse tipo de nomes de variaveis e essa estrutura Quote Link to comment Share on other sites More sharing options...
dois Posted November 16, 2016 Share Posted November 16, 2016 2 minutos atrás, edcronos2 disse: mas não é isso que se faz sempre?? vc pode me explicar a logica da sua comparação para eu tentar fazer diretamente? está meio dificil acompanhar isso aqui com minhas vistas assim eu não me dou bem com esse tipo de nomes de variaveis e essa estrutura caraca irmão !!! O ideal é você entender pelo menos o básico, senão ficam dúvidas.e perguntas que interferem nos trabalhos. É como eu disse, foram quase 3 (TRES) horas com o DixieJoe e foi ótimo pra ambos e posso fazer o mesmo com você. Mas vamos lá... vou tentar montar um esqueleto desta macro e já posto aqui. Quote Link to comment Share on other sites More sharing options...
Guest Zangado Posted November 16, 2016 Share Posted November 16, 2016 7 minutos atrás, dois disse: caraca irmão !!! O ideal é você entender pelo menos o básico, senão ficam dúvidas.e perguntas que interferem nos trabalhos. É como eu disse, foram quase 3 (TRES) horas com o DixieJoe e foi ótimo pra ambos e posso fazer o mesmo com você. Mas vamos lá... vou tentar montar um esqueleto desta macro e já posto aqui. kkkk foram quase 3 horas e aqui já vai dar 4 da manha Quote Link to comment Share on other sites More sharing options...
Guest Zangado Posted November 16, 2016 Share Posted November 16, 2016 @dois acho que essa parte For ycc = 1 To 45 Step 3 ''''Confere até 15 dezenas da LINHA da Matriz mdzatual = Val(Mid(zaux(yll), ycc, 2)) mdzatual = "_" & mdzatual & "," vmaux_ADC = InStr(zLF_ReConcurso(yr), mdzatual) If vmaux_ADC > 0 Then mqtdeacertos = mqtdeacertos + 1 End If pode ficar assim For c = 1 To 15 ''''Confere até 15 dezenas da LINHA da Matriz If combi(LT, zLF_ReConcurso(yr, c)) Then mqtdeacertos = mqtdeacertos + 1 Next Quote Link to comment Share on other sites More sharing options...
dois Posted November 16, 2016 Share Posted November 16, 2016 O ideal pra esta macro é: 1.) Recebe o Range a ser analisado, Exemplos 1.1) TODAS as 3.268.760 combinações de 15 dezenas 1.2) Um Range de concursos/sorteios já realizados de 15 dezenas 1.3) Matriz de 20 dezenas as quais podem não estar em ordem crescente 1.4) etc... 2.) Recebe o parâmetro Quantidade de Maior acerto/Menor acerto a ser considerado 3.) Recebe o parâmetro Quantidade de LINHAS da Matriz a ser analisado/gerado. Exemplos: 3.1) Analisar grupos/conjuntos de 2 LINHAS (serão geradas Matrizes de 2 LINHAS) 3.2) Analisar grupos/conjuntos de 3 LINHAS (serão geradas Matrizes de 3 LINHAS) 3.3) Analisar grupos/conjuntos de 4 LINHAS (serão geradas Matrizes de 4 LINHAS) 3.4) Analisar grupos/conjuntos de 5 LINHAS (serão geradas Matrizes de 5 LINHAS) 3.5) etc... 4.) Analisa e grava os dados do que retornar verdadeiro, ou seja, do que for aprovado . Já estou sonolento... mas creio que seja isto !!! Quote Link to comment Share on other sites More sharing options...
dois Posted November 16, 2016 Share Posted November 16, 2016 6 minutos atrás, edcronos2 disse: kkkk foram quase 3 horas e aqui já vai dar 4 da manha SIM... e foi ótimo pra ambos e faria novamente!!! Imagine tentar aproveitar tudo isso via digitação !!! 1 minuto atrás, edcronos2 disse: @dois acho que essa parte For ycc = 1 To 45 Step 3 ''''Confere até 15 dezenas da LINHA da Matriz mdzatual = Val(Mid(zaux(yll), ycc, 2)) mdzatual = "_" & mdzatual & "," vmaux_ADC = InStr(zLF_ReConcurso(yr), mdzatual) If vmaux_ADC > 0 Then mqtdeacertos = mqtdeacertos + 1 End If pode ficar assim For c = 1 To 15 ''''Confere até 15 dezenas da LINHA da Matriz If combi(LT, zLF_ReConcurso(yr, c)) Then mqtdeacertos = mqtdeacertos + 1 Next Esta e as outras modificações vão turbinar o processamento ??? kkk Quote Link to comment Share on other sites More sharing options...
Guest Zangado Posted November 16, 2016 Share Posted November 16, 2016 Agora, dois disse: SIM... e foi ótimo pra ambos e faria novamente!!! Imagine tentar aproveitar tudo isso via digitação !!! Esta e as outras modificações vão turbinar o processamento ??? kkk imagina o seu processo pegar cada valor formatar com 2 digitos e concatenar fazer a mesma coisa com o resultado depois separar linha por linha e separar as dezenas para comparar uma por uma no meu caso cada dezena vai para um lugar especifico o do resultado tbm e são usado como endereçadores comparando o endereço que tem no resultado com o morado das combinações só se muda de casa "endereço" dezena Quote Link to comment Share on other sites More sharing options...
dois Posted November 16, 2016 Share Posted November 16, 2016 6 minutos atrás, edcronos2 disse: imagina o seu processo pegar cada valor formatar com 2 digitos e concatenar fazer a mesma coisa com o resultado depois separar linha por linha e separar as dezenas para comparar uma por uma no meu caso cada dezena vai para um lugar especifico o do resultado tbm e são usado como endereçadores comparando o endereço que tem no resultado com o morado das combinações só se muda de casa "endereço" dezena SE eu te responder que entendi completamente vou estar mentindo pra nós dois !!! SIM eu entendi parcialmente, pois sei que necessita de conhecimentos específicos lógicos e funcionais que eu não possuo. Quote Link to comment Share on other sites More sharing options...
Guest Zangado Posted November 16, 2016 Share Posted November 16, 2016 1 minuto atrás, dois disse: SE eu te responder que entendi completamente vou estar mentindo pra nós dois !!! SIM eu entendi parcialmente, pois sei que necessita de conhecimentos específicos lógicos e funcionais que eu não possuo. fica mais ou menos assim sortini = 1 ' ----sorteio inicial sortT = 10 '-----quantidade de sorteios zLF_ReConcurso = Range("C" & sortini + 2, "Q" & sortT + 2).Value2 'Pega as quantidades de acertos de cada LINHA da Matriz em cada concurso já realizado Sheets(mplanINI).Activate Dim zacertos0a15(0 To 15) As Long Dim zaux(1 To 2) mlinatual = 1 For yp01 = 1 To (LT - 1) ''''analisa TODAS as combinações For yp02 = (yp01 + 1) To LT maprovado = "N" For yll = yp01 To yp02 ''''Confere até 2 LINHAS da Matriz For yr = 1 To mttconcu ''''Confere em cada concurso mqtdeacertos = 0 For c = 1 To 15 ''''Confere até 15 dezenas da LINHA da Matriz If combi(yll, zLF_ReConcurso(yr, c)) Then mqtdeacertos = mqtdeacertos + 1 Next zacertos0a15(mqtdeacertos) = zacertos0a15(mqtdeacertos) + 1 Quote Link to comment Share on other sites More sharing options...
Guest Zangado Posted November 16, 2016 Share Posted November 16, 2016 coloquei para rodar aqui, com as combinações totais quanto tempo será que leva? Quote Link to comment Share on other sites More sharing options...
dois Posted November 16, 2016 Share Posted November 16, 2016 4 minutos atrás, edcronos2 disse: fica mais ou menos assim De tudo até aqui, temos: 1.) A essência da macro continua preservada Isto é bom, pois significa que ela como um todo é satisfatória. 2.) As suas excelentes modificações são lógicas e estruturais Isto é bom, pois vai torná-la muito mais rápida. Isto deixa evidente o quanto eu preciso evoluir 3.) veja que o ideal para a versão final será: 3.1) Dim combi(1 To n, 1 To 25) As Boolean ' onde n será definido pelo usuário. 3.2) Dim zaux(1 To n) ' onde n será definido pelo usuário. 3.3) Esta mesma lógica nos demais parâmetros Quote Link to comment Share on other sites More sharing options...
dois Posted November 16, 2016 Share Posted November 16, 2016 12 minutos atrás, edcronos2 disse: coloquei para rodar aqui, com as combinações totais quanto tempo será que leva? Para 3.268.760 ^ 2 ^1430 ^15 ??? SE você marcou o horário de início E a barra de progresso estiver ativada assim que ela mostrar 1% é só multiplicar por 100 que dará pra se ter uma previsão da previsão !!! kkk Quote Link to comment Share on other sites More sharing options...
Guest Zangado Posted November 16, 2016 Share Posted November 16, 2016 1 minuto atrás, dois disse: 3.) veja que o ideal para a versão final será: 3.1) Dim combi(1 To n, 1 To 25) As Boolean ' onde n será definido pelo usuário. 3.2) Dim zaux(1 To n) ' onde n será definido pelo usuário. 3.3) Esta mesma lógica nos demais parâmetros uma coisa de cada vez né o numero de combinações nesse caso pode ser definido antes zaux tbm é facilmente ajustavel do modo que coloquei combi pode ser preenchido com combinações geradas pelo usuario mas aí é com vc eu só estou dando uma forcinha Quote Link to comment Share on other sites More sharing options...
dois Posted November 16, 2016 Share Posted November 16, 2016 2 minutos atrás, edcronos2 disse: uma coisa de cada vez né o numero de combinações nesse caso pode ser definido antes zaux tbm é facilmente ajustavel do modo que coloquei combi pode ser preenchido com combinações geradas pelo usuario mas aí é com vc eu só estou dando uma forcinha Forcinha é muito modesto !!! baita fooooooooooooooooooooooooooorrrrrrrrrrrrrrrrrrrçççççççaaaaaaaaaaaaaa !!!!!!!!!!!!!!! Quote Link to comment Share on other sites More sharing options...
Guest Zangado Posted November 16, 2016 Share Posted November 16, 2016 1 minuto atrás, dois disse: Para 3.268.760 ^ 2 ^1430 ^15 ??? SE você marcou o horário de início E a barra de progresso estiver ativada assim que ela mostrar 1% é só multiplicar por 100 que dará pra se ter uma previsão da previsão !!! kkk bem ainda tem coisa para ser otimizada na macro, eu ainda não fiz pq tenho que entender a base da coisa primeiro é ainda tem esse *2 aí putz Quote Link to comment Share on other sites More sharing options...
dois Posted November 16, 2016 Share Posted November 16, 2016 3 minutos atrás, edcronos2 disse: bem ainda tem coisa para ser otimizada na macro, eu ainda não fiz pq tenho que entender a base da coisa primeiro é ainda tem esse *2 aí putz Neste caso, em tese, podemos ter: COMBIN(3.268.760;2) = 5.342.394.334.420 Matrizes de 2 linhas cada 5.342.394.334.420 * 1430 concursos = 7.639.623.898.220.600 7.639.623.898.220.600 * 15 dezenas por concurso = 114.594.358.473.309.000 ... É evidente que não será tudo isto, pois coloquei Exit for estratégicos. Quote Link to comment Share on other sites More sharing options...
Guest Zangado Posted November 16, 2016 Share Posted November 16, 2016 1 minuto atrás, dois disse: Neste caso, em tese, podemos ter: COMBIN(3.268.760;2) = 5.342.394.334.420 Matrizes de 2 linhas cada 5.342.394.334.420 * 1430 concursos = 7.639.623.898.220.600 7.639.623.898.220.600 * 15 dezenas por concurso = 114.594.358.473.309.000 ... interrompi a macro ainda tem muita coisa a ser feita nela tem que tirar todas as interações com a planilha priniero kkkk e eu ainda nem sei para que serve isso exatamente Quote Link to comment Share on other sites More sharing options...
dois Posted November 16, 2016 Share Posted November 16, 2016 Agora mudando de alhos pra bugalhos... Você está ciente que estamos compartilhando aqui informações valiosíssimas, inclusive pra qualquer visitante do forum ??? Quote Link to comment Share on other sites More sharing options...
Guest Zangado Posted November 16, 2016 Share Posted November 16, 2016 (edited) 6 minutos atrás, dois disse: Agora mudando de alhos pra bugalhos... Você está ciente que estamos compartilhando aqui informações valiosíssimas, inclusive pra qualquer visitante do forum ??? eita a essa hora não estou ciente nem do meu nome desculpa aí manda por onde? se bem que se vc disponibiliza essa PL , a senha dela é facilmente quebravel como vc mesmo deve sabe Edited November 16, 2016 by Zangado Quote Link to comment Share on other sites More sharing options...
dois Posted November 16, 2016 Share Posted November 16, 2016 2 minutos atrás, edcronos2 disse: eita a essa hora não estou ciente nem do meu nome desculpa aí manda por onde? O que não acho justo é chupa-cabra !!! Daí o safado nem membro é do forum (VIP nem pensar !!!) ... tem registrado aqui tudo que a gente ralou e ainda põe pra vender como de sua autoria. Quote Link to comment Share on other sites More sharing options...
dois Posted November 16, 2016 Share Posted November 16, 2016 Tá certo que não está postado toda a codificação da macro, mas o principal creio que já está !!! Quote Link to comment Share on other sites More sharing options...
Guest Zangado Posted November 16, 2016 Share Posted November 16, 2016 1 minuto atrás, dois disse: O que não acho justo é chupa-cabra !!! Daí o safado nem membro é do forum (VIP nem pensar !!!) ... tem registrado aqui tudo que a gente ralou e ainda põe pra vender como de sua autoria. mas a maioria dos registrados tbm só aparece para pegar oq tem de bom, nem participar participa Quote Link to comment Share on other sites More sharing options...
dois Posted November 16, 2016 Share Posted November 16, 2016 1 minuto atrás, edcronos2 disse: mas a maioria dos registrados tbm só aparece para pegar oq tem de bom, nem participar participa sendo assim... vamos tocar o barco por aqui mesmo. Quem sabe ajuda algum merecedor assim já terá valido a pena. 1 Quote Link to comment Share on other sites More sharing options...
dois Posted November 16, 2016 Share Posted November 16, 2016 14 minutos atrás, edcronos2 disse: se bem que se vc disponibiliza essa PL , a senha dela é facilmente quebravel como vc mesmo deve sabe Eu já tinha me esquecido desta %(*&§... Assim vou acabar indo pra Assembly, Python, PowerBASIC de vez !!! kkk Quote Link to comment Share on other sites More sharing options...
dois Posted November 16, 2016 Share Posted November 16, 2016 20 minutos atrás, edcronos2 disse: interrompi a macro ainda tem muita coisa a ser feita nela tem que tirar todas as interações com a planilha priniero kkkk e eu ainda nem sei para que serve isso exatamente As interações ??? É fácil manipular. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.