Fixar tamanho de colunas em listview  [Resolvido]

Text Box, Form's, rotinas, etc.
Regras do fórum
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde. Imagem

Fixar tamanho de colunas em listview

Mensagempor xlarruda » Qua Dez 13, 2017 5:48 pm

Pessoal estou montando uma listview e me surgiu uma duvida.

Como faço para fixar uma largura para cada coluna da minha listview.
Por exemplo:

A coluna "NOME" deve ter uma largura maior que a coluna idade pois, naturalmente, usa-se mais caracteres nela.

Isso é possível?

Desde já agradeço. Abçr!
Você não está autorizado a ver ou baixar esse anexo.
Att,

xlarruda.
Avatar do usuário
xlarruda
Membro
Membro
 
Mensagens: 196
Registrado em: Qua Out 04, 2017 9:41 am
Localização: Cuiabá-MT
Has thanked: 53 times
Have thanks: 56 times

{ SO_SELECT }

Re: Fixar tamanho de colunas em listview

Mensagempor Patropi » Qua Dez 13, 2017 6:40 pm

Boa noite

O Mauro já respondeu uma dúvida parecida com a tua no tópico abaixo:

viewtopic.php?f=23&t=2187

[]s
Patropi /Moderador
Se a resposta foi útil, clique na mãozinha ao lado da ferramenta Citar.
Avatar do usuário
Patropi
Ninja do Excel
Ninja do Excel
 
Mensagens: 8360
Registrado em: Sáb Jun 05, 2010 4:36 pm
Localização: Campo Mourão - PR
Has thanked: 203 times
Have thanks: 3256 times

Re: Fixar tamanho de colunas em listview

Mensagempor joseA » Qua Dez 13, 2017 9:11 pm

Permitam-me,

Nessa instrução que você utiliza os cabeçalhos são nomeados conforme os dados da planilha e a largura das colunas são determinadas em uma única linha de código
Código: Selecionar todos
Me.ListView1.ColumnHeaders.Add Text:=rCell.Value, Width:=90


ou seja, terão todas o mesmo tamanho. Existem outras maneiras que você determina individualmente o tamanho das colunas.
No fórum mesmo tem vários exemplos. ;)
joseA
Expert
Expert
 
Mensagens: 503
Registrado em: Sáb Jun 25, 2011 6:45 pm
Localização: Coronel Fabriciano - MG
Has thanked: 22 times
Have thanks: 91 times

Re: Fixar tamanho de colunas em listview  [Resolvido]

Mensagempor joseA » Qua Dez 13, 2017 9:29 pm

Opa, em tempo.

Achei aqui uma instrução desenvolvida pelo Mauro com minha modesta participação que adiciona cabeçalho, largura e dados conforme a planilha.
Delete a sua intrunção na totalidade e insira essa:
Código: Selecionar todos
Option Explicit

Private Const NomePlanSaida As String = "Plan1"
Private Const LinhaCabecalho As Integer = 1

    Private Sub UserForm_Initialize()
        Call PreencherCabeçalhoLinhas
    End Sub

    Private Sub PreencherCabeçalhoLinhas()
    'Desenvolvida por: Tomás Vásquez
    'Adaptada por: José Arnaldo
    'Implementado por: Mauro Coutinho
'http://www.tomasvasquez.com.br/forum/viewtopic.php?f=17&t=1688
   
        Dim ws As Worksheet
        Dim coluna As Integer
        Dim linha As Integer
        Dim itm As ListItem, n As Long, lngCol As Long
        Dim vardata As Variant
       
        Set ws = ThisWorkbook.Worksheets(NomePlanSaida)
       
            coluna = 1
            linha = LinhaCabecalho
           
            Me.ListView1.ListItems.Clear
            Me.ListView1.ColumnHeaders.Clear
       
        vardata = ws.Range("A1").CurrentRegion.Value
       
        With ws
            While .Cells(linha, coluna).Value <> Empty
                   With ListView1
                     .View = lvwReport
                     .Gridlines = True
                     .ColumnHeaders.Add Text:=ws.Cells(linha, coluna), Width:=ws.Cells(linha, coluna).Width
                   
                   End With
                coluna = coluna + 1
            Wend
           
            'Preenche as Linhas
            With ListView1
                    For n = 2 To UBound(vardata)
                        Set itm = .ListItems.Add(n - 1, , vardata(n, 1))
                            For lngCol = 2 To UBound(vardata, 2)
                       
                                'verifica se é Data e formata a Coluna
                                If IsDate(vardata(n, lngCol)) Then
                                    itm.ListSubItems.Add , , Format(vardata(n, lngCol), "dd/mm/yyyy")
                                Else
                                    itm.ListSubItems.Add , , vardata(n, lngCol)
                                End If
                           
                            Next lngCol
                    Next n
                End With
           
        End With

    End Sub


Penso que resolverá.

For this post the author joseA thanked:
xlarruda (Qui Dez 14, 2017 11:06 am)
joseA
Expert
Expert
 
Mensagens: 503
Registrado em: Sáb Jun 25, 2011 6:45 pm
Localização: Coronel Fabriciano - MG
Has thanked: 22 times
Have thanks: 91 times

Re: Fixar tamanho de colunas em listview

Mensagempor xlarruda » Qui Dez 14, 2017 11:06 am

Obrigado Pessoal me ajudaram bastante!
Att,

xlarruda.
Avatar do usuário
xlarruda
Membro
Membro
 
Mensagens: 196
Registrado em: Qua Out 04, 2017 9:41 am
Localização: Cuiabá-MT
Has thanked: 53 times
Have thanks: 56 times


Voltar para Formulários

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante