none
Carregamento de informações de dados na ListBox RRS feed

  • Pergunta

  •    Caros amigos, estou criando um Sistema de Controle de Orçamentos no Office 2010. Porém o seguinte código, está exibindo esta mensagem de alerta quando depurado: Erro de Compilação  Método ou membro de dados não encontrados (Erro 461) 

                                                                                                                                                          

    Private Sub cmbOrcamento_Change()

    Application.ScreenUpdating = False

    Dim vOrcamento As Long
    Dim vContarElementos As Integer
    Dim W As Worksheet
    Dim UltCel As Range

    vOrcamento = frmImprimir.cmbOrcamento.Column(0)
    vContarElementos = 0

    frmImprimir.lstItens.Enabled = True

    Set W = Sheets("RegOrcamentos")
    W.Select

    W.Range(a1).Select
    Set UltCel = W.Cells(W.Rows.Count, 1).End(xlUp)

      Do While ActiveCell.Row <= UltCel.Row

         If ActiveCell.Value = vOrcamento Then

           vContarElementos = Application.WorksheetFunction.CountIf(W.Range("A:A"), vOrcamento)
           frmImprimir.lblCliente.Caption = ActiveCell.Offset(0, 8).Value 'Colocando o nome do cliente no formulário'

           ActiveCell.Offset(0, 1).Resize(vContarElementos, 7).Select
           frmImprimir.lblTotal.Caption = _
           Format(Application.WorksheetFunction.Sum(ActiveCell.Offset(0, 6) _
           .Resize(vContarElementos)), "R$ #,##0,00") 'Colocando o total no formulário'

           frmImprimir.lblItens.Caption = _
           Application.WorksheetFunction.CountA(ActiveCell.Offset(0, 7).Resize(vContarElementos, 7))

     ' Apagando a faixa de nomes (_OrcamentoImprimir)
     '-----------------------------------------------------------------------------------------------
     ActiveWorkbook.Names("_OrcamentoImprimir").Delete

     ' Criando uma nova lista'
     '---------------------------------------------------------------------------------
     ActiveWorkbook.Names.Add Name:="_OrcamentoImprimir", RefersToR1C1:="='RegOrcamentos'!R" & _
                    ActiveCell.Row & "C2:R" & ActiveCell.Row + vContarElementos - 1 & "C8"

          With frmImprimir.lblItens

            .RowSource = "_OrcamentoImprimir"
            .ColumnWidths = "20pt;60pt;120pt;50pt;30pt;50pt;40pt"
            .ColumnHeads = False

          End With

          Exit Do

         End If

         ActiveCell.Offset(1, 0).Select

      Loop

    frmImprimir.lstItens.Enabled = False

    Application.ScreenUpdating = True

    End Sub

    Private Sub UserForm_Activate()
    ' Definindo as variáveis para a configuração do formulário ao ser ativado'
    '--------------------------------------------------------------------------------
    Dim UltLinha    As Range
    Dim W           As Worksheet
    Dim UltCel      As Range
    Dim UltCelLista As Range
    Dim vOrc        As Long
    Dim vEmpresa    As String

    Set W = Sheets("Listas")
    W.Select

    W.Range("M:N").EntireColumn.ClearContents
    W.Range("M1").Value = "Orçamento"

    vOrc = 0

    ' Classificar os Orçamentos'
    '---------------------------------------------------------------------------------
    Set W = Sheets("RegOrcamentos")
    W.Select
    Set UltLinha = W.Cells(W.Rows.Count, 1).End(xlUp)

    W.Sort.SortFields.Clear
    W.Sort.SortFields.Add Key:=Range("A2"), SortOn:=xlSortOnValues, _
                          Order:=xlAscending, DataOption:=xlSortTextAsNumbers


    With W.Sort

      .SetRange W.Range("A2:I" & UltLinha.Row)
      .Header = xlNo
      .MatchCase = False
      .Orientation = xlTopToBottom
      .SortMethod = xlPinYin
      .Apply

    End With

    W.Range("A1").Select

    Set UltCel = W.Cells(W.Rows.Count, 1).End(xlUp)
    Set UltCelLista = Sheets("Listas").Cells(Rows.Count, 13).End(xlUp).Offset(1, 0)

    W.Range("A2").Select

    Do While ActiveCell.Row <= UltCel.Row


        Set UltCelLista = Sheets("Listas").Cells(Rows.Count, 13).End(xlUp).Offset(1, 0)

        If ActiveCell.Value <> vOrc Then

          vOrc = ActiveCell.Value
          vEmpresa = ActiveCell.Offset(0, 8).Value

          Sheets("Listas").Range("M" & UltCelLista.Row).Value = vOrc
          Sheets("Listas").Range("N" & UltCelLista.Row).Value = vEmpresa

        End If


       ActiveCell.Offset(1, 0).Select

    Loop

    ' Apagando a faixa atual de dados nomeada (_Orcamento)
    '--------------------------------------------------------------------------------------------
    ActiveWorkbook.Names("_Orcamento").Delete

    ' Criando uma nova faixa'
    '--------------------------------------------------------------------------------------------
    Set UltCel = Sheets("Listas").Cells(Rows.Count, 13).End(xlUp)

    ActiveWorkbook.Names.Add Name:="_Orcamento", _
                         RefersTo:=Sheets("Listas").Range("M2:N" & UltCel.Row)

    With frmImprimir.cmbOrcamento

      .RowSource = "_Orcamento"
      .ColumnWidths = " 30pt; 200pt"

    End With

    End Sub

    É informado que o erro está aqui: .ColumnWidths = "20pt;60pt;120pt;50pt;30pt;50pt;40pt"!O que devo fazer para corrigir esta situação? Se algum de vocês puder enviar a resposta com a solução ficarei grato.


      

    sábado, 18 de março de 2017 13:35

Todas as Respostas

  • Bem-vindo ao Fórum Zeca.

    Para facilitar a leitura dos códigos, por favor utilize o penúltimo botão da barra de ferramentas para inserí-los.

    Sobre o problema, me parece estranho, já que o código está correto. A menos que seu Office seja 64 bits, uma vez que nesta versão não há suporte para ListBox. Seria este o caso?


    Filipe Magno

    sábado, 18 de março de 2017 21:46
  • Ao inserir um código no fórum, utilize blocos de código. Para utilizar essa ferramenta, clique no botão cuja legenda é “Inserir bloco de código” na barra do editor de mensagens do fórum. Uma janela aparecerá onde você deverá colar seu código cru na caixa de texto à esquerda. Então, selecione a opção Vb.Net na caixa de combinação que você verá em cima à esquerda e depois clique no botão Inserir.

    ---

    lblItens parece ser o nome de um controle Label, e não um ListBox.

    Tem certeza que sua caixa de listagem chama-se assim mesmo?


    http://www.ambienteoffice.com.br || Grupo de WhatsApp: https://chat.whatsapp.com/K1uey5Q4yJdKnsgWkVQAZG

    segunda-feira, 20 de março de 2017 20:19
    Moderador