Notifications
Clear all

VBA com registro após linha de cabeçalho

4 Posts
2 Usuários
0 Reactions
1,049 Visualizações
(@edcurita)
Posts: 67
Trusted Member
Topic starter
 

Olá amigos,

Estou aprendendo sobre VBA e ainda tenho muitas (muitas) dúvidas. Anexei um exemplo do que quero e o que está acontecendo. Fiz um registro que contém o sequência do registro, o número inicial e o número final. Na coluna seguinte ele tem que individualizar o número inicial até o final. Até aí tá fazendo. O que acontece é que estou usando alguma coisa que faz com que o primeiro registro seja incluído na linha 1 que é onde tem o cabeçalho. Quando faço até a terceira coluna ele começa certo a partir da linha 2 mas tem como registro inicial também o número 2, gostaria que fosse o número 1. E na coluna 4, que também deveria começar na linha 2, começa na primeira comendo o cabeçalho.
Nessa coluna 4, eu também gostaria que fosse incluído o registro a partira da primeira linha da coluna e não a partir do número que coloco como inicial, ou seja, vou dar exemplo:

COMEÇA ASSIM INSERI O REGISTRO DE 1 A 5 E FICA ASSIM
A B C D A B C D
1 seq inicial final folha 1 seq inicial final 1
2 2 2 1 5 2
3 3 3
4
5

DEVERIA FICAR ASSIM

INSERI O REGISTRO DE 1 A 5 E FICA ASSIM
A B C D
1 seq inicial final
2 1 1 5 1
3 2
4 3
5 4
6 5

NESTE CASO A SEQUÊNCIA COMEÇA EM 1 (QUE É COMO QUERO) NA LINHA 2 E NÃO COMO REGISTRO 2 PORQUE É LINHA 2.

Se eu inserir uma próxima sequência, por exemplo de 10 a 20, registra o lote abaixo do lote já inserido, mas nas folhas avulsas vai começar a partir da linha 10.

Como devo fazer meus amigos? Muito obrigado pela ajuda de sempre.

Edmilson

 
Postado : 12/07/2013 1:31 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Vou mover seu tópico para o local correto!!

Lembre se de usar a pesquisa do fórum!!

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 12/07/2013 1:49 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Talvez assim:

Private Sub CommandButton1_Click()
Dim Inicial As Long, Final As Long
Dim a As Integer, x As Integer, dF As Long

a = Application.WorksheetFunction.CountA(Plan1.Columns(4)) + 1
Inicial = TextBox1
Final = TextBox2
Plan1.Cells(a, 1) = a
Plan1.Cells(a, 2) = TextBox1.Text
Plan1.Cells(a, 3) = TextBox2.Text
dF = Final - Inicial + 1
For x = a To dF + a
Plan1.Cells(x, 4).Value = Inicial
Inicial = Inicial + 1
Next x
End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 12/07/2013 2:09 pm
(@edcurita)
Posts: 67
Trusted Member
Topic starter
 

Grande Reinaldo,

Perfeito. Eu ainda não sei os comandos que posso usar e você fez o que eu precisava. Eu modifiquei um pouco o registro da forma como você elaborou, dessa forma ficou exatamente como eu queria. Sem sua ajuda, não sairia. Muito obrigado.

Olhe como ficou.

Private Sub CommandButton1_Click()

Dim Inicial As Long, Final As Long
Dim a As Integer, x As Integer, dF As Long
Dim b As Integer

a = Application.WorksheetFunction.CountA(Plan1.Columns(1)) + 1
Inicial = TextBox1
Final = TextBox2
Plan1.Cells(a, 1) = a
Plan1.Cells(a, 2) = TextBox1.Text
Plan1.Cells(a, 3) = TextBox2.Text

b = Application.WorksheetFunction.CountA(Plan1.Columns(4)) + 1

dF = Final - Inicial '+ 1
For x = b To dF + b
Plan1.Cells(x, 4).Value = Inicial
Inicial = Inicial + 1
Next x
End Sub
Inclui mais uma linha worksheetFunction. Como estava o primeiro código iniciava na linha da primeira folha (inicial e final). Dessa forma cada um inicia na próxima linha em branco.
Outra coisa que fiz foi retirar o + 1 do inicial - final. Se eu ia de 1 a 5 o registro ficava de 1 a 6. Você me fez pensar, muito obrigado.

Edmilson

 
Postado : 12/07/2013 4:08 pm