ASimoes7 Posted April 18, 2012 at 02:38 PM Report #449707 Posted April 18, 2012 at 02:38 PM Boas. Sou novo por estas bandas e ontem encontrei o vosso site, e já csgui resolver um dos problemas com que me estava a deparar, no entanto andei a procura e não vi nada que me ajuda-se a resolver a situação que passo a explicar. Tenho uns determinados dados numa tabela que vão sendo incrementados directamente quando adiciono os valores numa outra tabela, isto é, tenho uma especie de tabela final onde me dá a soma de todos os valores que adiciono na tabela principal. Mas gostaria de adicionar um contador relacionado a esta tabela final, mas com uma característica especifica. Imaginem que a tabela final me dá 3 resultados, necessito de 3 contadores (1 para cada 1 desses resultados), mas que aumentam a partir de 0 até 50 de cada x que a tabela correspondente não sofre qualquer alteração de valor, e que assim que a tabela que correspondente a esse contador sofrer alteração de valor, o contador dessa tabela volta a iniciar do 0 (no entanto os outros dois contadores continuam a aumentar). EX: Valor final 1 (0) Contador 1 (0) Valor final 2 (0) Contador 2 (0) Valor final 3 (0) Contador 3 (0) Valor final 1 (1) Contador 1 (0) faz reset Valor final 2 (0) Contador 2 (1) aumenta Valor final 3 (0) Contador 3 (1) aumenta Valor final 1 (2) Contador 1 (0) faz reset novamente Valor final 2 (0) Contador 2 (2) aumenta Valor final 3 (0) Contador 3 (2) aumneta Valor final 1 (2) Contador 1 (1) aumenta Valor final 2 (0) Contador 2 (3) aumenta Valor final 3 (1) Contador 3 (0) faz reset Valor final 1 (2) Contador 1 (2) aumenta Valor final 2 (1) Contador 2 (0) faz reset Valor final 3 (1) Contador 3 (0) aumenta Não tenho a certeza se isto é possível, mas julgo que sim, porque pelo que já vi por ai, vocês fazem de tudo 😛 Espero que tambem me possam ajudar nesta questão, se não tiver sido explicito posso tentar melhorar a minha explicação. Obrigado
jpaulino Posted April 18, 2012 at 03:51 PM Report #449745 Posted April 18, 2012 at 03:51 PM Em Access?
ASimoes7 Posted April 18, 2012 at 04:48 PM Author Report #449757 Posted April 18, 2012 at 04:48 PM Pois não sei ao certo qual o melhor programa para executar este tipo de tarefas, mas as minhas tabelas onde preciso de obter os tais valores dos contadores estão em excel. E nunca trabalhei com access por isso ainda tenho menos conhecimento de como executar este tipo de tarefas.
ASimoes7 Posted April 19, 2012 at 12:06 PM Author Report #449937 Posted April 19, 2012 at 12:06 PM Já me estive a informar e sei que é possivel criar uma macro em VBA para executar esse tal contador... o objectivo como tinha explicado será que através de uma tabela final que se encontra na folha2 ( que recebe os dados através da soma de varias celulas da folha 1), sempre que houvesse alguma alteração nesses valores (da tabela final na folha2) o contador respectivo voltava a 0, enquanto que os restantes contadores correspondentes as outras celulas da tabela final aumentassem 1 valor. Já estive a tentar criar essa macro, mas tenho muito pouco conhecimento em VBA para fazer este tipo de codigo. Mas percebi que era importante a informação de que a tabela final se encontra na "coluna 2" de 1 a 49 (folha2) e o contador seria para ficar na mm folha, mas na coluna 4(por ex) e nas mesmas linha, de 1 a 49. Em que o valor final da linha 1 corresponde ao contador da mm linha, e por ai fora ate a linha 49. Se alguém me conseguir ajudar a criar este tipo de código agradecia. Obrigado
pmg Posted April 19, 2012 at 03:00 PM Report #449995 Posted April 19, 2012 at 03:00 PM Faz uma cópia do valor (não é uma fórmula) da coluna 2 para a coluna 3 Mete a contagem inicial na coluna 4. Sempre que quiseres corre o procedimento abaixo: Sub updatecount() For n = 1 To 49 If Range("Folha2!B" & n).Value <> Range("Folha2!C" & n).Value Then Range("Folha2!C" & n).Value = Range("Folha2!B" & n).Value Range("Folha2!D" & n).Value = Range("Folha2!D" & n).Value + 1 End If Next n End Sub Na primeira linha assinalada, a macro verifica se os valores originais e da cópia são diferentes; na segunda linha, copia o valor original para a coluna da cópia; e na terceira linha actualiza o contador What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
ASimoes7 Posted April 20, 2012 at 10:42 AM Author Report #450123 Posted April 20, 2012 at 10:42 AM Obrigado pelo código 🙂 , mas não era bem isso que pretendia, pois além de ser pouco prático, o contador não voltava a 0 smp que eu adicionava um qualquer valor às células correspondestes. Entretanto julgo que já csgui fazer aquilo que pretendia com a ajuda de um amigo. Obrigado de qq maneira 😄 Cumps, Simões
pmg Posted April 20, 2012 at 11:06 AM Report #450132 Posted April 20, 2012 at 11:06 AM ... o contador não voltava a 0 smp que eu adicionava um qualquer valor às células correspondestes. Ah! É ao contrário ... Sub updatecount() For n = 1 To 49 If Range("Folha2!B" & n).Value <> Range("Folha2!C" & n).Value Then Range("Folha2!C" & n).Value = Range("Folha2!B" & n).Value Range("Folha2!D" & n).Value = 0 Else Range("Folha2!D" & n).Value = Range("Folha2!D" & n).Value + 1 End If Next n End Sub What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
ASimoes7 Posted April 20, 2012 at 11:30 AM Author Report #450140 Posted April 20, 2012 at 11:30 AM Exacto é isso mesmo. Já está a funcionar! 🙂 Já agora mais uma questão... Usando esse código, pois a finalidade é idêntica, mas em vez de ter 1 contador para cada linha, precisava de 2 contadores, um para as linhas pares, outro para as linhas impares. A base de dados é a mesma de 1-49. Basicamente a minha duvida é, como dar a indicação de quais a linhas que pretendo usar em qualquer contador que necessite de fazer? E quando são intervalos, tipo de 1-6? Obrigado
pmg Posted April 20, 2012 at 11:40 AM Report #450144 Posted April 20, 2012 at 11:40 AM Isso agora deixo-te, ou ao teu amigo, alterar o codigo (até porque nao percebi muito bem). Podes usar o módulo para calcular o resto da divisão entre dois números, e assim saber, por exemplo, se é par (resto 0 quando dividido por 2) ou impar (resto 1); ou para o intervalo 1-7 faz com o divisor 7 if n mod 7 = 0 then 'domingo if n mod 7 = 1 then 'segunda ... What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
ASimoes7 Posted April 20, 2012 at 12:01 PM Author Report #450150 Posted April 20, 2012 at 12:01 PM Sim fui um pouco confuso na explicação, vou tentar melhorar 🙂 O que estava a tentar dizer é, em vez de ter a tabela final da linha 1 até à 49 com os respectivos 49 "contadores" (que usado o código que meteste estão na coluna 4), queria meter mais 2 contadores que fossem aumentando 1 valor(a mm coisa que o código anterior) sempre que eu altero qualquer valor na tabela no intervalo de 1-25 (isto apareceria no contador 1) e outro contador para o intervalo de 25-49 . Basicamente a minha duvida é, como defino o intervalo em código? e outra é se quiser fazer o tal contador para todos valores da tabela que estão em linhas pares se preciso meter uma condição para cada linha tipo: q = linha2 w = linha4 e = linha6 ... r = linha 48
pmg Posted April 20, 2012 at 01:16 PM Report #450165 Posted April 20, 2012 at 01:16 PM Atenção: de acordo com o que disseste o valor da linha 25 reflecte-se em dois contadores. se (valor da linha 1 tiver sido mudado) ou (valor da linha 2 tiver sido mudado) ou (...) ou (valor da linha 25 tiver sido mudado) alterar contador 1 endif se (valor da linha 25 tiver sido mudado) ou (valor da linha 26 tiver sido mudado) ou (...) ou (valor da linha 49 tiver sido mudado) alterar contador 2 endif What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
ASimoes7 Posted April 20, 2012 at 02:05 PM Author Report #450182 Posted April 20, 2012 at 02:05 PM Exacto, enganei-me no 25, mas entendi o conceito. Era mm isso que precisava de saber então. Obrigado mais uma vez. Cumprimentos, Simões
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now