Notifications
Clear all

Usando um Array para incluir registros num Worksheet

5 Posts
1 Usuários
0 Reactions
968 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Estou com a seguinte situação: tenho num Form dois botões de comando, duas caixas de texto e um combo. No combo eu seleciono um número que vai de 1 a 30 e representa a classe salarial do servidor. Nas caixas de texto a primeira é para digitar a data de início do servidor na classe selecionada no combo e a outra para digitar a data de término naquela classe de remuneração. À medida que o servidor muda de classe, sua remuneração sofre um acréscimo. Ao longo do tempo um servidor sofre várias mudanças em sua remuneração e eu preciso colocar essas mudanças num Array, pois depois irei consultar esse array para calcular a base de cálculo da Previdência desse servidor ao longo do tempo. Então, um servidor irá ficar numa determinada classe dentro de um espaço de tempo, com princípio e fim.

Os dois botões de comando são para incluir ou excluir determinada faixa salarial. Por exemplo, se o servidor está na Classe 1 de 12/04/98 a 11/04/99, então, nesse período, a base de cálculo da Previdência incidiu sobre uma determinada faixa salarial "x". Ao passar para a Classe 2, por exemplo a partir de 12/04/99 até 11/04/00, a base de cálculo aumentou e o valor a ser pago à Previdência sofre um acréscimo. Assim, preciso que o meu programa inclua ou exclua, conforme o caso, num Array multidimensional (3 colunas) o número da classe (vai de 1 a 30), a data de início na classe e a data de término. Como no tempo de permanência no órgão é, via de regra, de muitos anos, terei ao longo do tempo vários registros de classe, envolvendo datas diferenciadas de princípio e fim.

Preciso criar uma rotina onde o botão de comando inclua, num array dinâmico (Redim Preserve) ou em objetos rangers na planilha, a classe selecionada pelo usuário no combo, indicando as datas de início e de fim nessa classe.

Como fazer isso?

Luiz Roberto

 
Postado : 28/05/2011 1:41 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Beto, procure dividir suas duvidas, esta que postou está, com texto longo e explicação confusa. Mas se entendi direito, não é um Array que devemos criar e sim definir algumas Variaveis, uma Variável para Capturar a Classe e depois procurar por este valor na Tabela de Classes, e outra Variável referente ao Valor que a mesma representa, e pelo que vi as datas não importam, uma vez que os calculos são efetuados pelos valores da Tabela Classe.

Seria mais fácil anexar um modelo com dados ficticios, com explicação na mesma.

abraços

 
Postado : 28/05/2011 7:52 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Mário, tentei explicar e parece que eu acabei complicando.

Segue um link para você baixar um aplicativo Excel VBA que eu criei para você ter uma idéia do que eu estou precisando. Segue, também, um arquivo doc contendo explicações mais detalhadas da minha necessidade.

https://docs.google.com/uc?id=0BzkIQVd6tYMPMzI1ZGQ2ZTMtOTZiOC00NGY3LTllNGUtMDY3YWExMzQ1NzYz&export=download&hl=en_US

Qualquer dúvida, me avise.

Luiz Roberto
[email protected]

Beto, procure dividir suas duvidas, esta que postou está, com texto longo e explicação confusa. Mas se entendi direito, não é um Array que devemos criar e sim definir algumas Variaveis, uma Variável para Capturar a Classe e depois procurar por este valor na Tabela de Classes, e outra Variável referente ao Valor que a mesma representa, e pelo que vi as datas não importam, uma vez que os calculos são efetuados pelos valores da Tabela Classe.

Seria mais fácil anexar um modelo com dados ficticios, com explicação na mesma.

abraços

 
Postado : 29/05/2011 8:06 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Beto, baixei os exemplos, vou dar uma estudada com mais calma, é muita informação e detalhes a serem analizados, depois posto se o que entendi está correto, só não posso prometer de imediato, pois final e inicio de mes para mim é muito corrido.

abraços

 
Postado : 30/05/2011 5:59 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Mauro, achei uma solução para o meu caso, mas não será com o uso de Arrays. Nem sempre é possível se coletar todos os dados de um servidor e analisá-los no mesmo dia, ou seja, meu programa precisa salvar os dados já compilados para recomeçar o trabalho no dia seguinte, por exemplo. Assim, vou salvar os dados na planilha à medida que o usuário for gravando o dados já coletados. Criei para o botão "Incluir", a seguinte rotina:

      Dim n As Integer
      
      n = 1
      
      Worksheets("Plan1").Select
      
      Range("A1").Activate

      Do Until Cells(n, 1) = ""
      
            ActiveCell.Offset(1, 0).Select
            n = n + 1
            
      Loop
      
      Cells(n, 1).Value = CInt(cobClasse.Value)
      
      Range("B1").Activate

      n = 1
      
      Do Until Cells(n, 2) = ""
      
            ActiveCell.Offset(1, 0).Select
            n = n + 1
            
      Loop
      
      Cells(n, 2).Value = Format(txtInicio.Text, "dd/mm/yyyy")
      
      Range("C1").Activate

      n = 1
      
      Do Until Cells(n, 3) = ""
      
            ActiveCell.Offset(1, 0).Select
            n = n + 1
            
      Loop
      
      Cells(n, 3).Value = Format(txtFim.Text, "dd/mm/yyyy")

Com esse código vou inserindo os números de Classe do servidor, a data de início na classe e a data de fim.

O código está funcionando beleza. Quando puder, se achar necessário, gostaria que você analisasse e fizesse suas críticas.

Inté!

Luiz Roberto

Beto, baixei os exemplos, vou dar uma estudada com mais calma, é muita informação e detalhes a serem analizados, depois posto se o que entendi está correto, só não posso prometer de imediato, pois final e inicio de mes para mim é muito corrido.

abraços

 
Postado : 01/06/2011 2:33 pm