none
Problema com LISTBOX - Não consigo usar o método additem para incluir valores em duas colunas da ListBox! RRS feed

  • Pergunta

  • Bom dia,

    É o seguinte... tenho a seguinte linha de código

    frmLancamento.lstParedes.AddItem frmLancamento.lstParedes.List(MyCtl.Caption, cboAndar)

    O que quer dizer? Quer dizer que no ListBox (lstParedes) do formulário frmLancamento será inserido na última linha disponível: na primeira coluna: MyCtl.Caption e na segunda coluna o valor de cboAndar (ComboBox).

    Em vista o código está bem errado, aliás... a propriedade List serve para encontrar ou definir posições do estilo índice e não para inserir dados ... É visível que meu código está fazendo a burrice de inserir dados onde, na verdade, eu atribuí MyCtl.Caption como uma "variável" para rows enquanto cboAndar foi para columns ...

    Mas é isso gente, RESUMINDO:

    Como faço para adicionar o valor de MyCtl.Caption na primeira coluna da ListBox lstParedes e o valor de cboAndar na segunda coluna da ListBox lstParedes.

    Desde já muito obrigado,

    João

    sexta-feira, 30 de março de 2012 05:41

Respostas

  • Os parametros da propriedade list é (indice, coluna), por isso deves fazer assim:

    frmLancamento.lstParedes.AddItem MyCtl.Caption
    frmLancamento.lstParedes.List(frmLancamento.lstParedes.ListCount-1,1)= cboAndar

    Partindo do principio que o item adicionado vai para o fim da lista.

    Qualquer dos paramentros indice e coluna começam em 0(zero), por isso o ultimo item é igual à quantidade de items-1.

    • Marcado como Resposta jrafaeel sábado, 31 de março de 2012 00:11
    sexta-feira, 30 de março de 2012 08:01

Todas as Respostas

  • Os parametros da propriedade list é (indice, coluna), por isso deves fazer assim:

    frmLancamento.lstParedes.AddItem MyCtl.Caption
    frmLancamento.lstParedes.List(frmLancamento.lstParedes.ListCount-1,1)= cboAndar

    Partindo do principio que o item adicionado vai para o fim da lista.

    Qualquer dos paramentros indice e coluna começam em 0(zero), por isso o ultimo item é igual à quantidade de items-1.

    • Marcado como Resposta jrafaeel sábado, 31 de março de 2012 00:11
    sexta-feira, 30 de março de 2012 08:01
  • Os parametros da propriedade list é (indice, coluna), por isso deves fazer assim:

    frmLancamento.lstParedes.AddItem MyCtl.Caption
    frmLancamento.lstParedes.List(frmLancamento.lstParedes.ListCount-1,1)= cboAndar

    Partindo do principio que o item adicionado vai para o fim da lista.

    Qualquer dos paramentros indice e coluna começam em 0(zero), por isso o ultimo item é igual à quantidade de items-1.

    sexta-feira, 30 de março de 2012 08:01
  • Funcionou, obrigado! De praxe ainda aprendi a lógica que me faltava (=

    Vou aproveitar e perguntar: como eu consigo colocar um "cabeçalho" na listbox? Tipo, na coluna1 = NOME, depois coluna2 = ANDAR e deixar em destaque, bonitinho e etc ... como um cabeçalho mesmo ...

    Abraços

    sábado, 31 de março de 2012 00:13
  • A propriedade ColumnHeads indica se tem ou não tem cabeçalho.

    Mas para o teu caso o cabeçalho irá ficar vazio. Ele só mostra valores se a lista estiver ligada a celulas de uma folha, onde o cabeçalho é o texto que estiver nas células imediatamente acima da primeira linha.

    Para teres a apresentação de cabeçalhos na tua listbox deves ligá-la a celulas e em lugar de adicionares itens à lista inseres esse valores nas células ligadas.

    Por exemplo, se a listbox estiver ligada à celulas A2:B10, o cabeçalho é o texto das celulas A1 e B1.

    sábado, 31 de março de 2012 06:52
  • Eu não consigo inserir valores em ColumnHeads através do VBA? Tipo ... lstParedes.ColumnHeads.List(primeiralinha, primeiracoluna) = "Paredes"?

    Abraços

    sábado, 31 de março de 2012 18:12
  • Foi isso que eu disse!!
    sábado, 31 de março de 2012 18:30