Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] Solução alternativa (seleção das informações na linha)

Aqui está minha resolução para o mão na massa da segunda aula:

Private Sub UserForm_Activate()
    
    'Declaração de variável
    Dim rCelula As Range
    
    'Selecionador de linhas
    For Each rCelula In Selection
    
        txt_ativo = Worksheets("Movimentações").Cells(rCelula.Row, 1)
        txt_qtd = Worksheets("Movimentações").Cells(rCelula.Row, 2)
        txt_tipo = Worksheets("Movimentações").Cells(rCelula.Row, 3)
        txt_preco = Worksheets("Movimentações").Cells(rCelula.Row, 4)
        txt_cliente = Worksheets("Movimentações").Cells(rCelula.Row, 5)
        txt_contatomesa = Worksheets("Movimentações").Cells(rCelula.Row, 6)
        txt_data = Worksheets("Movimentações").Cells(rCelula.Row, 7)
        txt_hora = Worksheets("Movimentações").Cells(rCelula.Row, 8)
          
    Next
    
End Sub
2 respostas
solução!

Olá, Eduardo! Como vai?

Muito bem! Continue resolvendo os desafios e compartilhando com a comunidade Alura.

Observei que você explorou o uso de loops For Each para iterar sobre seleções, utilizou muito bem o uso de células do Excel via VBA para manipulação de dados e ainda compreendeu a importância do controle de formulários (UserForm) para melhorar a interação do usuário.

Uma dica interessante para o futuro é usar With para otimizar o acesso a objetos, reduzindo repetição no código. Dessa forma:

Private Sub UserForm_Activate()
    
    Dim rCelula As Range
    
    For Each rCelula In Selection
        With Worksheets("Movimentações")
            txt_ativo = .Cells(rCelula.Row, 1)
            txt_qtd = .Cells(rCelula.Row, 2)
            txt_tipo = .Cells(rCelula.Row, 3)
            txt_preco = .Cells(rCelula.Row, 4)
            txt_cliente = .Cells(rCelula.Row, 5)
            txt_contatomesa = .Cells(rCelula.Row, 6)
            txt_data = .Cells(rCelula.Row, 7)
            txt_hora = .Cells(rCelula.Row, 8)
        End With
    Next
    
End Sub

Isso melhora a eficiência e evita chamadas repetitivas ao objeto Worksheets.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Obrigado pela dica!