Notifications
Clear all

Checkbox oculta linha

29 Posts
2 Usuários
0 Reactions
3,466 Visualizações
(@rui-maciel)
Posts: 190
Reputable Member
Topic starter
 

Boa noite mestres no vba
Tenho mais um problema que é muita areia para o meu autocarro, ou seja, a ver se consigo explicar-me.
No userform2 tenho uma checkbox que queria que inativasse determinado paroquiano que está numa determinado linha, fiz uma macro (Module4) que oculta a linha mas não é o resultado que esperava, pois, queria que inativasse esse paroquiano e não aparecesse como ativo para selecionar, será que alguém me pode dar uma luz para o caminho? :idea: obrigado. Envio o ficheiro "ADM" e "1234".
Grato desde já pela vossa paciência e sapiência.
Att.,
RM

 
Postado : 17/02/2018 6:07 pm
(@klarc28)
Posts: 971
Prominent Member
 

....

 
Postado : 18/02/2018 4:27 pm
(@rui-maciel)
Posts: 190
Reputable Member
Topic starter
 

Run-time error "424"
Object required e erro na linha que acrescento "If nsheets.Range("I" & linha).Value = "VERDADEIRO" Then"

Retifiquei mas assim na Listbox1 não aparece nenhum paroquiano ativo e na textbox1 aparecem os dois nomes

 
Postado : 18/02/2018 4:37 pm
(@klarc28)
Posts: 971
Prominent Member
 

....

 
Postado : 18/02/2018 4:40 pm
(@rui-maciel)
Posts: 190
Reputable Member
Topic starter
 

Run-time error "424"
Object required e erro na linha que acrescento "If nsheets.Range("I" & linha).Value = "VERDADEIRO" Then"

Retifiquei mas assim na Listbox1 não aparece nenhum paroquiano ativo e na textbox1 aparecem os dois nomes

 
Postado : 18/02/2018 5:00 pm
(@klarc28)
Posts: 971
Prominent Member
 
Sub pesquisanome()

Application.ScreenUpdating = False

    Dim linha As Integer
    Dim linhalistbox As Integer
    Dim TextoCelula As String
    Dim nsheet As Worksheet
    Dim nsheets
    Dim n       As Variant
    nsheets = ufm_dp.ComboBox1.Value
    n = nsheets
    Set nsheet = Sheets(nsheets)
    nsheet.Select
    linha = 2
    linhalistbox = 0
    ufm_dp.ListBox1.Clear
    TextoDigitado = ufm_dp.TextBox1.Value
    Range("A2").Select
    With nsheet
    While .Cells(linha, 1).Value <> Empty
            TextoCelula = .Cells(linha, 1).Value
             If UCase(Left(TextoCelula, Len(TextoDigitado))) = UCase(TextoDigitado) Then
                    If .Range("I" & linha).Value = true Then
 
             With ufm_dp.ListBox1
             .AddItem
             .List(linhalistbox, 0) = Sheets(n).Cells(linha, 1)
             .List(linhalistbox, 1) = Sheets(n).Cells(linha, 2)
             .List(linhalistbox, 2) = Format(Sheets(n).Cells(linha, 3), "#,###0.00 €")
             .List(linhalistbox, 3) = Format(Sheets(n).Cells(linha, 4), "dd/mm/yyyy")
             .List(linhalistbox, 4) = Sheets(n).Cells(linha, 5)
             .List(linhalistbox, 5) = Sheets(n).Cells(linha, 6)
             .List(linhalistbox, 6) = Sheets(n).Cells(linha, 7)
             .List(linhalistbox, 7) = Sheets(n).Cells(linha, 8)
             linhalistbox = linhalistbox + 1
            End With
            End If
            End If
            linha = linha + 1
        Wend
    End With
Application.ScreenUpdating = True
End Sub

 
Postado : 18/02/2018 5:11 pm
(@klarc28)
Posts: 971
Prominent Member
 
Private Sub ComboBox1_Change()
    'Call pesquisanome
    
    Dim linha As Long
    Dim soma As Double
    Dim DLin As Long
    DLin = Sheets(Me.ComboBox1.Value).Range("A1").End(xlDown).Row
    
    soma = 0
    For linha = 2 To DLin
        If Sheets(Me.ComboBox1.Value).Range("I" & linha).Value = True Then
            Me.TextBox1.AddItem (Sheets(Me.ComboBox1.Value).Range("A" & linha).Value)
        End If
    Next linha
    
    TextBox1.SetFocus
    
    soma = 0
    For linha = 2 To DLin
        soma = soma + Sheets(Me.ComboBox1.Value).Range("C" & linha).Value
        
    Next linha
    Me.Label22.Caption = Format(soma, "CURRENCY")
End Sub
 
Postado : 18/02/2018 5:16 pm
(@klarc28)
Posts: 971
Prominent Member
 
Private Sub ComboBox1_Change()
    'Call pesquisanome
    
    Dim linha As Long
    Dim soma As Double
    Dim DLin As Long
    DLin = Sheets(Me.ComboBox1.Value).Range("A1").End(xlDown).Row
    
    soma = 0
    For linha = 2 To DLin
        If Sheets(Me.ComboBox1.Value).Range("I" & linha).Value = True Then
            Me.TextBox1.AddItem (Sheets(Me.ComboBox1.Value).Range("A" & linha).Value)
                    soma = soma + Sheets(Me.ComboBox1.Value).Range("C" & linha).Value

        End If
    Next linha
    
    TextBox1.SetFocus
    
   ' soma = 0
    'For linha = 2 To DLin
       ' soma = soma + Sheets(Me.ComboBox1.Value).Range("C" & linha).Value
        
    'Next linha
    Me.Label22.Caption = Format(soma, "CURRENCY")
End Sub
 
Postado : 18/02/2018 5:39 pm
(@klarc28)
Posts: 971
Prominent Member
 

Se der o erro permissão negada, é porque você deve parar de carregar a textbox1 da forma antiga e carregá-la da forma que eu postei acima.

 
Postado : 18/02/2018 5:40 pm
(@rui-maciel)
Posts: 190
Reputable Member
Topic starter
 

Run-Time error '70':
Permission denied.

 
Postado : 18/02/2018 5:53 pm
(@klarc28)
Posts: 971
Prominent Member
 

Leia o que escrevi acima. O anexo já foi modificado para não dar esse erro.

 
Postado : 18/02/2018 5:53 pm
(@rui-maciel)
Posts: 190
Reputable Member
Topic starter
 

Já testei, só alterei o 'True' para 'False', mas se selecionar o ano de 2015 só aparece Rui Maciel, mas se selecionar 2016 aparece duas vezes Rui Maciel e se clicar novamente no ano acrescenta mais uma linha na cboParoquiano e desconfigura as listbox´s, desculpe não desconfigura pois alterei o enter de textbox1 para cboParoquiano, veja:

 
Postado : 18/02/2018 6:07 pm
(@klarc28)
Posts: 971
Prominent Member
 

.....

 
Postado : 18/02/2018 6:21 pm
(@klarc28)
Posts: 971
Prominent Member
 
Private Sub ComboBox1_Change()
    'Call pesquisanome
    Me.cboParoquiano.Clear
    Dim linha As Long
    Dim soma As Double
    Dim DLin As Long
    DLin = Sheets(Me.ComboBox1.Value).Range("A1").End(xlDown).Row
    
    soma = 0
    For linha = 2 To DLin
        If Sheets(Me.ComboBox1.Value).Range("I" & linha).Value = True Then
            Me.cboParoquiano.AddItem (Sheets(Me.ComboBox1.Value).Range("A" & linha).Value)
                    soma = soma + Sheets(Me.ComboBox1.Value).Range("C" & linha).Value

        End If
    Next linha
    
    cboParoquiano.SetFocus
    
   ' soma = 0
    'For linha = 2 To DLin
       ' soma = soma + Sheets(Me.ComboBox1.Value).Range("C" & linha).Value
        
    'Next linha
    Me.Label22.Caption = Format(soma, "CURRENCY")
End Sub
 
Postado : 18/02/2018 6:30 pm
(@rui-maciel)
Posts: 190
Reputable Member
Topic starter
 

Bom dia Klarc28, show de bola com se diz na giria futebolística, ficou muito bem, obrigado, aproveitei e retifiquei também o userform4 para os que não pagaram, já não aparecem os inativos.
Agora será possível que eu ao dar como inativo em 2018, por exemplo, os anos para trás fiquem ativos, ou seja, só lançar nas plan´s futuras e as atrasadas ficarem como ativos para sairem nas listagens? Obrigado, mais uma vez, ficou extraordinário.

 
Postado : 19/02/2018 7:01 am
Página 2 / 2