Notifications
Clear all

Checkbox's

17 Posts
2 Usuários
0 Reactions
2,761 Visualizações
(@afbergman)
Posts: 108
Estimable Member
Topic starter
 

Olá Pessoal,

Tenho um formulario que criei que é o seguinte:

Possuo um banco de dados de aeronaves e suas medidas de envergadura e tamanho, também existe outra aba com as medidas de posições e suas medidas de envergadura e tamanho.
Eu gostaria de fazer o seguinte:

Ao escolher o modelo de aeronave, só seriam habilitadas as posições (existe também outro checkbox que seleciona as posições de remota e ponte) que possuam o tamanho adequado.

Como posso fazer isso????

Vou fazer o upload do arquivo em questao.
Obrigado.

 
Postado : 29/04/2015 1:12 pm
skuma
(@skuma)
Posts: 18
Active Member
 

Amigo, adicione esse código, acho que pode te ajudar, porém está adicionando posições repetidas.

Estou de saida agora, mais se você não conseguir ajustar, quando eu puder entrar eu tento te ajudar denovo.

Obs.: retire do seu UserForm_Activate o trecho CmbPosição.RowSource = "POSIÇÕES!B2:B" & quantdados, porque se não ele vai apenas adicionar os itens no final da lista que já existe.

Private Sub CmbEquip_AfterUpdate()

    Dim i As Integer
    i = 0

    ThisWorkbook.Activate
    Sheets("POSIÇÕES").Select
    Range("A3").Select
    Do While ActiveCell.Offset(0, 0) <> Empty
        If ActiveCell.Offset(0, 3) <= CmbEquip Then
            CmbPosição.AddItem ActiveCell.Offset(0, 0)
        End If
        ActiveCell.Offset(1, 0).Select
    Loop
    
End Sub

Abs.
Gabriel Santos

 
Postado : 29/04/2015 2:55 pm
(@afbergman)
Posts: 108
Estimable Member
Topic starter
 

Fala meu amigo Skuma,

Nao consegui ver onde eu poderia encaixar esse código que me enviou. Vou t mandar a planilha atualizada para que possa olhar com calma.
Segue.

Abraços.

 
Postado : 29/04/2015 3:04 pm
skuma
(@skuma)
Posts: 18
Active Member
 

Na realidade era no UserForm1 que você tinha criado - estava vinculado ao primeiro combobox com o modelo da aeronave , mais vi que você removeu ele nesse atualizado.

Agora fiquei com dúvida, onde você quer filtrar o modelo da aeronave e onde deve incluir as posições possíveis?

Abs.
Gabriel Santos

 
Postado : 29/04/2015 7:00 pm
(@afbergman)
Posts: 108
Estimable Member
Topic starter
 

Na vdd será tudo feito pelo userform que esta la criado. Ao selecionar a aeronave ele deixara habilitada as posições disponiveis para ele, de acordo com a sua envergadura e comprimento. Dps o usuario ira escolher se quer filtrar mais ainda por Remota ou Ponte.
Se tiver alguma outra ideia pode modificar ao seu gosto. ;)

Abraços.

 
Postado : 30/04/2015 9:45 am
(@afbergman)
Posts: 108
Estimable Member
Topic starter
 

Alguem mais conseguiria me ajudar com essa grande duvida?

Meu codigo abaixo é a relação que tentei fazer entre a escolha do equipamento através da combobox equipamento e as checkbox's, ou seja, se escolher o equipamento "A319" as posiçoes 01,07,08 ficariam habilitadas e o resto sumiria.
Como faço isso????????????

Private Sub CmbEquipamento_AfterUpdate()


If CmbEquipamento.Value = "" Then

CheckBox1.Value = False
CheckBox2.Value = False
CheckBox3.Value = False
CheckBox4.Value = False
CheckBox5.Value = False
CheckBox6.Value = False
CheckBox7.Value = False
CheckBox8.Value = False
CheckBox9.Value = False
CheckBox10.Value = False
CheckBox11.Value = False
CheckBox12.Value = False
CheckBox108.Value = False
CheckBox110.Value = False
CheckBox111.Value = False
CheckBox113.Value = False
CheckBox114.Value = False
CheckBox116.Value = False
CheckBox117.Value = False
CheckBox119.Value = False
CheckBox120.Value = False
CheckBox122.Value = False
CheckBox123.Value = False
CheckBox125.Value = False
CheckBox126.Value = False
CheckBox128.Value = False
CheckBox129.Value = False
CheckBox131.Value = False
CheckBox54L.Value = False
CheckBox54R.Value = False
CheckBox53.Value = False
CheckBox52.Value = False
CheckBox51R.Value = False
CheckBox51L.Value = False
CheckBox50.Value = False
CheckBox49.Value = False
CheckBox48.Value = False
CheckBox47.Value = False
CheckBox46.Value = False
CheckBox45.Value = False
CheckBox107.Value = False
CheckBox105.Value = False
CheckBox104.Value = False
CheckBox102.Value = False
CheckBox101.Value = False
CheckBox99.Value = False
CheckBox98.Value = False
CheckBox96.Value = False
CheckBox95.Value = False
CheckBox93.Value = False
CheckBox91.Value = False
CheckBox90.Value = False
CheckBox89.Value = False
CheckBox86.Value = False
CheckBoxA.Value = False
CheckBoxB.Value = False
CheckBoxC.Value = False
CheckBoxD.Value = False
CheckBoxE.Value = False
CheckBoxF.Value = False
CheckBoxG.Value = False

Else

CheckBox106.Visible = True
CheckBox103.Visible = True
CheckBox100.Visible = True
CheckBox97.Visible = True
CheckBox94.Visible = True
CheckBox92.Visible = True
CheckBox88.Visible = True
CheckBox87.Visible = True
CheckBox130.Visible = True
CheckBox127.Visible = True
CheckBox124.Visible = True
CheckBox127.Visible = True
CheckBox130.Visible = True

End If


If CmbEquipamento.Value = "A318" Then
CheckBox1.Value = True
CheckBox2.Value = True
CheckBox3.Value = True
CheckBox4.Value = True
CheckBox5.Value = True
CheckBox6.Value = True
CheckBox7.Value = True
CheckBox8.Value = True
CheckBox9.Value = True
CheckBox10.Value = True
CheckBox11.Value = True
CheckBox12.Value = True
CheckBox108.Value = True
CheckBox110.Value = True
CheckBox111.Value = True
CheckBox113.Value = True
CheckBox114.Value = True
CheckBox116.Value = True
CheckBox117.Value = True
CheckBox119.Value = True
CheckBox120.Value = True
CheckBox122.Value = True
CheckBox123.Value = True
CheckBox125.Value = True
CheckBox126.Value = True
CheckBox128.Value = True
CheckBox129.Value = True
CheckBox131.Value = True
CheckBox54L.Value = True
CheckBox54R.Value = True
CheckBox53.Value = True
CheckBox52.Value = True
CheckBox51R.Value = True
CheckBox51L.Value = True
CheckBox50.Value = True
CheckBox49.Value = True
CheckBox48.Value = True
CheckBox47.Value = True
CheckBox46.Value = True
CheckBox45.Value = True
CheckBox107.Value = True
CheckBox105.Value = True
CheckBox104.Value = True
CheckBox102.Value = True
CheckBox101.Value = True
CheckBox99.Value = True
CheckBox98.Value = True
CheckBox96.Value = True
CheckBox95.Value = True
CheckBox93.Value = True
CheckBox91.Value = True
CheckBox90.Value = True
CheckBox89.Value = True
CheckBox86.Value = True
CheckBoxA.Value = True
CheckBoxB.Value = True
CheckBoxC.Value = True
CheckBoxD.Value = True
CheckBoxE.Value = True
CheckBoxF.Value = True
CheckBoxG.Value = True

Else

CheckBox106.Visible = False
CheckBox103.Visible = False
CheckBox100.Visible = False
CheckBox97.Visible = False
CheckBox94.Visible = False
CheckBox92.Visible = False
CheckBox88.Visible = False
CheckBox87.Visible = False
CheckBox130.Visible = False
CheckBox127.Visible = False
CheckBox124.Visible = False
CheckBox127.Visible = False
CheckBox130.Visible = False

End If

End Sub
 
Postado : 04/05/2015 9:03 am
skuma
(@skuma)
Posts: 18
Active Member
 

Amigo, neste caso usei um Array para facilitar o que você precisa fazer. Dê uma olhada anexo.

Inseri no seu código a sub Public Sub ChecarPosiçãoDisponível(dblEnvergadura As Double, dblComprimento As Double) que é chamada a partir do momento que você seleciona a aeronave - através da sub Private Sub CmbEquipamento_Change().

Abs.
Gabriel Santos

 
Postado : 04/05/2015 11:52 am
(@afbergman)
Posts: 108
Estimable Member
Topic starter
 

Fala Skuma!!

Muito obrigado pela resposta, mas ainda nao consegui chegar no ideal.
Na vdd é o seguinte: Cada aeronave possui uma envergadura e comprimento, e assim tb cada posiçao.
Qndo selecionar a aeronave, as posições (checkbox's) que permitem o estacionamento dessas aeronaves ficam disponiveis, caso contrario elas devem ficar inativas.
Quando retornar na combobox e nao selecionar nenhuma aeronave, as checkboxes voltam ao normal, todas habilitadas.

Esta dando um erro na linha

Call ChecarPosiçãoDisponível(TxtEnv.Value, TxtComp.Value)

Como podemos fazer?
Espero que eu tenha conseguido passar a minha duvida.
Obrigado mais uma vez pela ajuda.
Abs

 
Postado : 04/05/2015 1:24 pm
skuma
(@skuma)
Posts: 18
Active Member
 

Que erro está apresentando nessa parte? aqui funcionou normalmente.

Call ChecarPosiçãoDisponível(TxtEnv.Value, TxtComp.Value)

Agora eu entendi, você pode mudar este trecho do código:

        If ActiveCell.Offset(0, 3) <= dblEnvergadura And ActiveCell.Offset(0, 4) <= dblComprimento Then
            'Marca como True o valor dO CheckBox caso seja compatível
            Me.Controls("CheckBox" & ActiveCell.Offset(0, 0)).Value = True
        Else
            'Marca como False o valor do CheckBox caso não seja compatível
            Me.Controls("CheckBox" & ActiveCell.Offset(0, 0)).Value = False
        End If

Para (Observe que só mudei o final .Value para .Visible):

        If ActiveCell.Offset(0, 3) <= dblEnvergadura And ActiveCell.Offset(0, 4) <= dblComprimento Then
            'Marca como True o valor dO CheckBox caso seja compatível
            Me.Controls("CheckBox" & ActiveCell.Offset(0, 0)).Visible = True
        Else
            'Marca como False o valor do CheckBox caso não seja compatível
            Me.Controls("CheckBox" & ActiveCell.Offset(0, 0)).Visible = False
        End If

Abs.
Gabriel Santos

 
Postado : 04/05/2015 2:31 pm
skuma
(@skuma)
Posts: 18
Active Member
 

Desculpe, errei em uma coisa, na realidade no lugar do .Visible, você coloca .Enabled

Abs.
Gabriel Santos

 
Postado : 04/05/2015 2:35 pm
skuma
(@skuma)
Posts: 18
Active Member
 

Obs.: Coloque todos os seus CheckBox como Enabled = False por padrão, pois se você não tiver todas as posições em sua sheet Posições ele não vai marcar como Enable = False.

Abs.
Gabriel Santos

 
Postado : 04/05/2015 2:40 pm
(@afbergman)
Posts: 108
Estimable Member
Topic starter
 

Skuma,

Não consegui fazer com que tivesse exito no codigo. Ao escolher qualquer equipamento nao tenho as posições disponiveis aparecendo para aquele modelo especifico.
Confesso que nao sei o que fazer!!!

 
Postado : 08/05/2015 7:31 am
skuma
(@skuma)
Posts: 18
Active Member
 

Segue anexo com os ajustes que coloquei, está funcionando, quando você seleciona a aeronave somente as posições compativeis ficam disponíveis para selação.

Abs.
Gabriel Santos

 
Postado : 08/05/2015 8:17 am
(@afbergman)
Posts: 108
Estimable Member
Topic starter
 

Skuma,

Percebi que somente as posição 1,2,5 e 6 que ficam hora disponiveis e horas nao.
Exclui a coluna "A", pois ela se refere ao terminais e nao as posições.

Só que quando vou selecionar uma acft da erro nessa linha de codigo:

  Me.Controls("CheckBox" & ActiveCell.Offset(0, 0)).Enabled = True

"ERRO EM TEMPO DE EXECUÇÃO - 2147024809 (80070057)
NAO FOI POSSIVEL ENCONTRAR O OBJETO ESPECIFICADO"

Abs

 
Postado : 08/05/2015 2:41 pm
skuma
(@skuma)
Posts: 18
Active Member
 

afbergman, ele está procurando a posição na coluna A de acordo com os tamanhos que estão nas coluns C e D, por isso apresentou erro após você excluir a coluna A.

Onde estão as posições? Não entendi...porque até então eu estava considerando a posição na coluna A e meu código preenche somente os 12 primeiros checkbox (caso exista 12 posições na coluna A).

Outro ponto, você conseguiu entender a lógica que está ai? isso é fundamental para você adaptar os ajustes, nem tudo vou conseguir fazer por aqui, pois só você conhece a necessidade.

Abs.
Gabriel Santos

 
Postado : 08/05/2015 3:19 pm
Página 1 / 2