none
Ajudar sobre ListBox1.RowSource - Erro 13 RRS feed

  • Pergunta

  • Boa tarde a todos.

    Em um userform1, tenho uma listbox1 que aparece os dados de um intervalo "C4:k500".

    Ao clicar sobre um dos valores exibidos na minha listbox1 ele me direciona para outro userform2 onde me mostra nos textbox's os dados (informações/detalhes) daquele item que cliquei.

    Meu código estava correto quando usei: "ListBox1.RowSource = .Address " para exibir meus dados na listbox. Porém, eu alterei para "ListBox1.RowSource = "C4:K500" " e agora ele não funciona mais, aparece o erro " Erro em tempo de execução 13 : Tipos incompatíveis" ao clicar duas vezes sobre o item.

    Bom, gostaria que os dados na minha listbox1 fossem os do intervalo "C4:k500", é possível alterar o código para não aparecer o erro?

    Espero ter sido clara.

    Obrigada.

    Meu código:

    Private Sub CommandButton1_Click()
    Sheets("Home").Select
    End
    End Sub
    
    Private Sub CommandButton2_Click()
    Unload Me
    End Sub
    
    Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    
    Dim valor_lista As Double
    Dim selecao As Integer
    Dim linha As Integer
    
    selecao = ListBox1.ListIndex
    valor_lista = ListBox1.List(selecao, 0) *****O ERRO APONTA PARA ESTA LINHA***
    'CInt(TextBox1)
    'PREENCHIMENTO DAS TEXTBOX NO RESULTADO DA PESQUISA
    With resultado_pesquisa
    .TextBox1 = Cells(linha, 4) 'SUB-ÁREA
    .TextBox2 = Cells(linha, 3) 'CÓDIGO
    .TextBox3 = Cells(linha, 5) 'DESCRIÇÃO
    .TextBox36 = Cells(linha, 11) 'ACOMPANHAMENTO
    
    
    'EMISSÃO
    .TextBox4 = Cells(linha, 14) 'DATA REV. A
    .TextBox5 = Cells(linha, 15) 'GRD REV. A
    .TextBox6 = Cells(linha, 16) 'DATA REV. B
    .TextBox7 = Cells(linha, 17) 'GRD REV. B
    .TextBox8 = Cells(linha, 18) 'DATA REV. C
    .TextBox9 = Cells(linha, 19) 'GRD REV. C
    .TextBox10 = Cells(linha, 20) 'DATA REV. D
    .TextBox11 = Cells(linha, 21) 'GRD REV. D
    .TextBox12 = Cells(linha, 22) 'DATA REV. 0
    .TextBox13 = Cells(linha, 23) 'GRD REV. 0
    .TextBox14 = Cells(linha, 24) 'DATA REV. 1
    .TextBox15 = Cells(linha, 25) 'GRD REV. 1
    .TextBox16 = Cells(linha, 26) 'DATA REV. 2
    .TextBox17 = Cells(linha, 27) 'GRD REV. 2
    .TextBox18 = Cells(linha, 28) 'DATA REV. 3
    .TextBox19 = Cells(linha, 29) 'GRD REV. 3
    
    'RETORNO
    .TextBox20 = Cells(linha, 31) 'DATA REV. A
    .TextBox21 = Cells(linha, 32) 'COMENTÁRIO REV. A
    .TextBox22 = Cells(linha, 33) 'DATA REV. B
    .TextBox23 = Cells(linha, 34) 'COMENTÁRIO REV. B
    .TextBox24 = Cells(linha, 35) 'DATA REV. C
    .TextBox25 = Cells(linha, 36) 'COMENTÁRIO REV. C
    .TextBox26 = Cells(linha, 37) 'DATA REV. D
    .TextBox27 = Cells(linha, 38) 'COMENTÁRIO REV. D
    .TextBox28 = Cells(linha, 39) 'DATA REV. 0
    .TextBox29 = Cells(linha, 40) 'COMENTÁRIO REV. 0
    .TextBox30 = Cells(linha, 41) 'DATA REV. 1
    .TextBox31 = Cells(linha, 42) 'COMENTÁRIO REV. 1
    .TextBox32 = Cells(linha, 43) 'DATA REV. 2
    .TextBox33 = Cells(linha, 44) 'COMENTÁRIO REV. 2
    .TextBox34 = Cells(linha, 45) 'DATA REV. 3
    .TextBox35 = Cells(linha, 46) 'COMENTÁRIO REV. 3
    
    End With
    'FECHA JANELA DE PESQUISA
    Unload Me
    
    'ABRE JANELA DE RESULTADO DE PESQUISA
    resultado_pesquisa.Show
    End Sub
    'INICIAR COM PREENCHIMENTO DE LISTBOX
    Private Sub UserForm_Initialize()
    
    Dim planativa As Worksheet
    Dim planum As Worksheet
    Set planativa = ThisWorkbook.ActiveSheet
    Set planum = Sheets("Plan1")
    
    
    If planativa.Name <> planum.Name Then
    planum.Select
    End If
    
    With Sheets("Plan1").UsedRange
    ListBox1.ColumnCount = 11
    ListBox1.RowSource = "C4:K500" '.Address
    End With
    End Sub

    terça-feira, 14 de outubro de 2014 16:59

Respostas

Todas as Respostas

  • Amanda, 

    Tente definir um nome para o intervalo de células. Exemplo: "Linhas"

    Depois faça a seguinte alteração:

    ListBox1.RowSource = "Linhas"

    Espero ter ajduado...

    terça-feira, 14 de outubro de 2014 17:16
  • Não deu certo.

    Quando dou o clique duplo em algum item da listbox ela continua aparecendo o erro.

    O erro aparece na linha "valor_lista = ListBox1.List(selecao, 0)"

    De qualquer forma, obrigada.

    Por favor, alguém consegue me ajudar?

    Amanda Jardim

    terça-feira, 14 de outubro de 2014 18:21
  • Talvez ajude se postar uma cópia do seu projeto.

    Caso preferir me envie por e-mail: rslima@mongeralaegom.com.br

    Roberto Santos

    terça-feira, 14 de outubro de 2014 19:03
  • Experimente:

    ListBox1.RowSource = ThisWorkbook.Worksheets("NomeDaPlanilha").Range("C4:K500").Address(External:=True)


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    quinta-feira, 16 de outubro de 2014 23:53
    Moderador
  • Experimente:

    ListBox1.RowSource = ThisWorkbook.Worksheets("NomeDaPlanilha").Range("C4:K500").Address(External:=True)


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    To com o mesmo problema. Alguma solução?

    Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    
    Dim valor_lista As Integer
    Dim selecao As Integer
    Dim linha As Integer
    
    selecao = ListBox1.ListIndex
    valor_lista = ListBox1.List(selecao, 0) '>>>>>>>>>>>>>ERRO NESTA LINHA<<<<<<<<<<<<<
    
    linha = 2
    
    Unload Me
    
    Do Until Sheets("Plan2").Cells(linha, 1) = ""
    
      If Sheets("Plan2").Cells(linha, 1) = valor_lista Then
      
        UserForm1.TextBox1 = Sheets("Plan2").Cells(linha, 1)
        UserForm1.TextBox2 = Sheets("Plan2").Cells(linha, 2)
        UserForm1.TextBox3 = Sheets("Plan2").Cells(linha, 6)
        UserForm1.TextBox20 = Sheets("Plan2").Cells(linha, 3)
        UserForm1.TextBox21 = Sheets("Plan2").Cells(linha, 4)
        UserForm1.TextBox22 = Sheets("Plan2").Cells(linha, 5)
        UserForm1.TextBox6 = Sheets("Plan2").Cells(linha, 10)
        UserForm1.TextBox7 = Sheets("Plan2").Cells(linha, 11)
        UserForm1.TextBox4 = Sheets("Plan2").Cells(linha, 7)
        UserForm1.TextBox5 = Sheets("Plan2").Cells(linha, 8)
        UserForm1.TextBox23 = Sheets("Plan2").Cells(linha, 9)
     
      Exit Sub
      
      End If
      linha = linha + 1
     
    Loop
      
    End Sub
    

    Se for útil, taí o carregamento do list:

    Sub buscar_valores()
    
    Dim guia As Worksheet
    Dim linhalistbox As Integer
    Dim linha As Integer
    Dim coluna_nome As Integer
    Dim valor_celula As String
    Set guia = ThisWorkbook.Worksheets(2)
        
        
        linha = 2
        coluna_nome = 1
        
        linhalistbox = 0
        
        ListBox1.Clear
        
        With guia
            While .Cells(linha, coluna_nome).Value <> Empty
                valor_celula = .Cells(linha, coluna_nome).Value
                
                If UCase(Left(valor_celula, Len(valor_pesquisado))) = UCase(valor_pesquisado) Then
                    
                 With UserForm2.ListBox1
                    .AddItem
                    .List(linhalistbox, 0) = Plan2.Range("A" & linha)
                    linhalistbox = linhalistbox + 1
                
                 End With
                    
                End If
                linha = linha + 1
            Wend
        End With
        
    End Sub


    Carrega os dados no list normal, o problema está na hora de transpor do list pro formulário.

    quinta-feira, 12 de fevereiro de 2015 02:25
  • Victor,

    Este tópico está fechado. Favor criar um tópico com sua pergunta. Se necessário, indique um link até aqui.


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    quinta-feira, 12 de fevereiro de 2015 10:40
    Moderador