Notifications
Clear all

Entendimento do Código

8 Posts
5 Usuários
0 Reactions
1,476 Visualizações
(@paulo_001)
Posts: 149
Estimable Member
Topic starter
 

Olá a todos.
Gostaria de uma ajudinha de vcs pra entender as linhas de código. Tenho uma planilha que funciona direitinho, mas tenho uma curiosidade pra saber o que siginifica algumas linhas, por exemplo:

Sub preenche_ComboBox1()

Dim LinhaFinal As Integer, x As Integer

With Sheets("Plan1")
    LinhaFinal = .Cells(Cells.Rows.Count, "B").End(xlUp).Row
        For x = 1 To LinhaFinal - 2
            ComboBox1.AddItem .Cells(x + 2, 2).Value
                             
        Next
             
 End With
  

Nesse caso, essa macro vai gerar a lista na dropdown da combobox , pq temos que declarar ( For x = 1 To LinhaFinal - 2 ) o -2 que eu não entendi. O que ele representa exatamente?

Abraço

 
Postado : 23/10/2014 8:47 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

A variável x, recebe de 1 até a ultima linha populada na coluna -2 (2 linhas)

Att

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

 
Postado : 23/10/2014 9:46 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Nesse caso, deve ser alguma coisa linhas de titulo.

Embora o loop for next comece com x=1 (primeira linha), na referência do cells começa coma terceira linha (x +2).

Assim, se vc lopar ate a ultima linha, as ultimas 2 celulas estarao em branco, ja que a condição será:
X = LinhaFinal, e no cells, é x + 2, portanto, 2 linhas apos a LinhaFinal.

Para evitar de pegar as 2 linhas em branco após a última linha preenchida, essas 2 linhas foram descontadas no começo do comando for, por isso que vc tem o:
LinhaFinal - 2
Ao qual vc se refere.

Abs

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 23/10/2014 9:59 am
(@paulo_001)
Posts: 149
Estimable Member
Topic starter
 

Ah, agora tudo ficou mais claro.
Muito obrigado

 
Postado : 23/10/2014 10:05 am
(@paulo_001)
Posts: 149
Estimable Member
Topic starter
 

Tem també um código que pertence ao endereço da lista, por exemplo:

Private Sub PesquisarEntESaida()

Dim b As Integer

b = Me.ComboBox1.ListIndex + 3
Me.ComboBox2.Value = Sheets("Plan2").Range("B" & b).Value
Me.TextBoxUn = Sheets("Plan2").Range("C" & b).Value

End Sub

no caso da linha ( b = Me.ComboBox1.ListIndex + 3 ) o que o +3 representa?

 
Postado : 23/10/2014 10:12 am
(@dimorais)
Posts: 431
Reputable Member
 

Opa :shock: .Nada como umas aulinhas aqui outra acolá. :D

 
Postado : 23/10/2014 11:26 am
Reinaldo
(@rlm)
Posts: 246
Estimable Member
 

Paulo, listindex retorna um numero, referente a posição do do Dado Selecionado na Combo. Esse numero por default inicia em 0 (o primeiro registro no combo tem esse index); então dependendo da estrutura de sua base de dados, pode ser que tenha uma ou mais linhas de cabeçalho, então para "compensar" essa(s) linha(s) é adicionado um valor ao listindex, para poder selecionar a linha correta na planilha.
No se modelo, o registro desejado, supondo que listIndex seja 1; está na linha 4 (1+3)

Reinaldo

 
Postado : 23/10/2014 11:33 am
(@paulo_001)
Posts: 149
Estimable Member
Topic starter
 

Perfeito, claro como água, muito obrigado Reinaldo.

abraço

 
Postado : 23/10/2014 11:57 am