Professor Leandro | Algoritmos I e II



Pedido vapt-vupt no Excel 2003 (adaptado para Excel 2007)

(Exemplo publicado na revista info EXAME Ano 10 Nº 211 OUTUBRO/2003 pg 114-115).

Objetivo: Criar um formulário de pedido, ou de orçamento, com cálculos automatizados.

Operação: O documento exibe caixas de combinação com a lista dos itens disponíveis. Quando o usuário escolhe um produto nessa lista, o preço e o peso do produto aparecem na mesma linha. Em seguida, quando ele digita uma quantidade, o programa calcula o total parcial e o valor do frete para aquele item.

Passo 1 – Criar a lista dos produtos com respectivos preços e pesos. Com a Plan1 selecionada clique no menu Formatar -> Planilha -> Ocultar (ocultando a plan1)

(Excel 2007: Plan1 ( Início ( Formatar (Ocultar e Reexibir ( Ocultar Planilha)

Passo 2 – Construir na Plan2 a planilha do pedido conforme a figura abaixo.

Passo 3 – Inclusão das caixas de combinação na planilha.

• Com o comando Exibir/Barras de Ferramentas, deixe visível a barra Caixa de Ferramentas de Controle e trace, na coluna Produto, uma caixa de combinação (combo box).

(Excel2007: Desenvolvedor ( Inserir ( Controles ActiveX ( Caixa de Combinação)

• Clique com o botão direito do mouse na caixa de combinação (o nome-padrão dela será ComboBox1) e escolha, no menu, a opção Propriedades.

• Na janela Propriedades, ajuste alinha ListFillRange para a faixa de células de Plan1 que contém a lista de opções que vão aparecer na caixa. A indicação é feita no seguinte formato: Plan1!A2:A12

Passo 4 – Para fechar a estrutura da planilha, crie, na coluna Total, um totalizador parcial, que conterá o somatório dos valores dos produtos. Na próxima linha, deixe um espaço para o valor do frete – a ser calculado – e, por fim, vem o total geral, que corresponde à soma dos produtos mais o valor do frete.

Observação: Este botão, [pic] na Caixa de Ferramentas de Controle, alterna entre o modo de desenvolvimento e o modo de ação da planilha.

(Excel2007: Desenvolvedor ( Modo de Design)

Passo 5 – Crie dois botões (caixa de ferramentas de controle).

(Excel2007: Desenvolvedor ( Inserir ( Controles ActiveX ( Botão de Comando)

[pic] [pic]

Passo 6 – Clique duas vezes sobre o primeiro ComboBox1.

(Não deixe de acionar o botão) => [pic]

• Clique duas vezes para cada ComboBox e para os dois botões. Teremos as seguintes Privates:

• Mude todas as Private Sub ComboBox_Change( ) para Private Sub ComboBox_Click ( ).

• Digite os comandos do VB (VBA) para a Private, conforme relação abaixo:

Private Sub ComboGeral_Click(index As Integer, nCombo As Integer)

Dim sngPreco As Single ‘Single é o tipo de variável para números reais

Dim intPeso As Integer

Dim i As Integer ' i = linha dos títulos (Produto, Preço Unitário etc.)

i = 9

If index >= 0 Then

sngPreco = Worksheets("Plan1").Cells(index + 2, 2).Value

intPeso = Worksheets("Plan1").Cells(index + 2, 3).Value

ActiveSheet.Cells(nCombo + i, 3) = sngPreco

ActiveSheet.Cells(nCombo + i, 4) = intPeso

If index = 0 Then ActiveSheet.Cells(nCombo + i, 5) = 0

End If

End Sub

• Clique sobre cada ComboBox e digite as respectivas linhas de programação.

Private Sub ComboBox1_Click()

Dim index As Integer

index = ComboBox1.ListIndex ' opção escolhida

ComboGeral_Click index, 1 ' número da ComboBox

End Sub

Private Sub ComboBox2_Click()

Dim index As Integer

index = ComboBox2.ListIndex

ComboGeral_Click index, 2

End Sub

Private Sub ComboBox3_Click()

Dim index As Integer

index = ComboBox3.ListIndex

ComboGeral_Click index, 3

End Sub

Private Sub ComboBox4_Click()

Dim index As Integer

index = ComboBox4.ListIndex

ComboGeral_Click index, 4

End Sub

Private Sub ComboBox5_Click()

Dim index As Integer

index = ComboBox5.ListIndex

ComboGeral_Click index, 5

End Sub

• Clique sobre cada botão e digite as respectivas linhas de programação.

Private Sub CommandButton1_Click()

Dim n As Integer

' Limpa o combo box

ComboBox1.ListIndex = 0

ComboBox2.ListIndex = 0

ComboBox3.ListIndex = 0

ComboBox4.ListIndex = 0

ComboBox5.ListIndex = 0

' Zera as colunas de peso e quantidade

For n = 3 To 7

ActiveSheet.Cells(n, 4).Value = 0

ActiveSheet.Cells(n, 5).Value = 0

Next n

End Sub

Private Sub CommandButton2_Click()

Dim n As Integer

For n = 3 To 7

ActiveSheet.Cells(n, 3) = 0

Next n

End Sub

Conteúdo da célula D16 =D10*E10+D11*E11+D12*E12+D13*E13+D14*E14

Conteúdo da célula F16 =Frete(D16)

-----------------------

[pic]

[pic]

[pic]

[pic]

[pic]

[pic]

• Copie o objeto e cole-o na célula imediatamente abaixo.

• Repita essa colagem conforme o número de linhas operacionais que pretenda incluir no pedido.

• Todas as caixas de combinação contêm a mesma lista de produtos.

[pic]

[pic]

Passo 7 – Acrescente o Módulo 1 => Inserir -> Módulo.

Passo 8 – Click duas vezes sobre o Módulo1. Digite o seguinte programa:

Option Explicit

Function Frete(peso As Long) As Long

On Error GoTo Frete_Err

Dim resultado As Long

Select Case peso

Case Is < 200

resultado = 0

Case 200 To 999

resultado = 5

Case 1000 To 5000

resultado = 10

Case Is > 5000

resultado = 30

End Select

Frete = resultado

Frete_Fim:

Exit Function

Frete_Err:

Resume Frete_Fim:

End Function

-------------------------------------------------------------------

(Macro FRETE)

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download