Personalização da E...
 
Notifications
Clear all

Personalização da Exportação de dados da listview

4 Posts
2 Usuários
0 Reactions
970 Visualizações
Lorenzon
(@lorenzon)
Posts: 355
Reputable Member
Topic starter
 

Pessoal,

Utilizo p código abaixo para exportar as informações da listview para uma nova planilha do excel. Eu o pequei aqui no planilhando.com.br. O mesmo funciona perfeitamente.

Porém eu quero personalizá-lo. Vide abaixo as minhas pretensões:

- Quero que, além dos dados da listview, a nova planilha também receba, na célula b2, por exemplo, a minha logo marcA, a qual localiza-se na image1 da listview referida.

- Quero também que as colunas da nova planilha já se apresentem com os filtros.

Código:

Private Sub CommandButton43_Click()
Dim xlApp As Object
Dim xlWb As Object
Dim xlWs As Object
Dim ROW As Integer
Dim Col As Integer
Set xlApp = CreateObject("Excel.Application")
Set xlWb = xlApp.Workbooks.Add
Set xlWs = xlWb.Worksheets(1)

xlApp.Visible = True
xlApp.UserControl = True

xlWs.Columns(1).ColumnWidth = 5
xlWs.Columns(2).ColumnWidth = 60
xlWs.Columns(3).ColumnWidth = 30
xlWs.Columns(4).ColumnWidth = 30
xlWs.Columns(5).ColumnWidth = 10
xlWs.Columns(6).ColumnWidth = 10
xlWs.Columns(7).ColumnWidth = 13
xlWs.Columns(8).ColumnWidth = 13
xlWs.Columns(9).ColumnWidth = 13
xlWs.Columns(10).ColumnWidth = 13
xlWs.Columns(11).ColumnWidth = 60

xlWs.Rows(1).RowHeight = 18

xlWs.Range("A1:k65000").Font.Size = 11

With xlWs.Range("A1:k1")

.HorizontalAlignment = xlLeft
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False

.Font.Bold = True
End With
With Selection

.HorizontalAlignment = xlLeft
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False

End With
With Selection

.HorizontalAlignment = xlLeft
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False

End With

xlWs.Cells(1, 1).Value = "ID"
xlWs.Cells(1, 2).Value = "Descrição do Item"
xlWs.Cells(1, 3).Value = "Centro de Custo"
xlWs.Cells(1, 4).Value = "Conta Razão"
xlWs.Cells(1, 5).Value = "Tipo"
xlWs.Cells(1, 6).Value = "Valor"
xlWs.Cells(1, 7).Value = "Vencimento"
xlWs.Cells(1, 8).Value = "Previsto"
xlWs.Cells(1, 9).Value = "Pagamento"
xlWs.Cells(1, 10).Value = "Situação"
xlWs.Cells(1, 11).Value = "Cliente"

For ROW = 2 To lslista.ListItems.Count + 1
For Col = 1 To lslista.ColumnHeaders.Count
If Col = 1 Then
xlWs.Cells(ROW, Col).Value = lslista.ListItems(ROW - 1).Text
Else
xlWs.Cells(ROW, Col).Value = lslista.ListItems(ROW - 1).SubItems(Col - 1)
End If
Next
Next ROW

End Sub

 
Postado : 17/05/2014 10:56 am
Lorenzon
(@lorenzon)
Posts: 355
Reputable Member
Topic starter
 

Pessoal,

A outra ação á ser feita é fazer com que alinhar os dados da coluna 7 e 8 (Vencimento e Previsto).

Solicito este apoio, pois, não sei por qual motivo, estas colunas não ficam alinhadas.

 
Postado : 18/05/2014 1:38 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Veja se atende (sem a inclusão do logo)

Private Sub CommandButton43_Click()
Dim xlApp As Object, xlWb As Object, xlWs As Object
Dim ROW As Integer, Col As Integer

Set xlApp = CreateObject("Excel.Application")
Set xlWb = xlApp.Workbooks.Add
Set xlWs = xlWb.Worksheets(1)

xlApp.Visible = True
xlApp.UserControl = True

xlWs.Cells(1, 1).Value = "ID"
xlWs.Columns(1).ColumnWidth = 5
xlWs.Cells(1, 2).Value = "Descrição do Item"
xlWs.Columns(2).ColumnWidth = 60
xlWs.Cells(1, 3).Value = "Centro de Custo"
xlWs.Columns(3).ColumnWidth = 30
xlWs.Cells(1, 4).Value = "Conta Razão"
xlWs.Columns(4).ColumnWidth = 30
xlWs.Cells(1, 5).Value = "Tipo"
xlWs.Columns(5).ColumnWidth = 10
xlWs.Cells(1, 6).Value = "Valor"
xlWs.Columns(6).ColumnWidth = 10
xlWs.Cells(1, 7).Value = "Vencimento"
xlWs.Columns(7).ColumnWidth = 13
xlWs.Cells(1, 8).Value = "Previsto"
xlWs.Columns(8).ColumnWidth = 13
xlWs.Cells(1, 9).Value = "Pagamento"
xlWs.Columns(9).ColumnWidth = 13
xlWs.Cells(1, 10).Value = "Situação"
xlWs.Columns(10).ColumnWidth = 13
xlWs.Cells(1, 11).Value = "Cliente"
xlWs.Columns(11).ColumnWidth = 60
For x = 1 To 11
    xlWs.Columns(x).HorizontalAlignment = xlLeft
Next

xlWs.Rows(1).RowHeight = 18
xlWs.Rows(1).Font.Bold = True
xlWs.Range("A1:k65000").Font.Size = 11

For ROW = 2 To lslista.ListItems.Count + 1
    For Col = 1 To lslista.ColumnHeaders.Count
        If Col = 1 Then
            xlWs.Cells(ROW, Col).Value = lslista.ListItems(ROW - 1).Text
        Else
            xlWs.Cells(ROW, Col).Value = lslista.ListItems(ROW - 1).SubItems(Col - 1)
        End If
    Next
Next

End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 18/05/2014 2:50 pm
Lorenzon
(@lorenzon)
Posts: 355
Reputable Member
Topic starter
 

Perfeito Reinaldo!

Tive que acrescentar apenas o dim x

Vlw!!

 
Postado : 18/05/2014 3:56 pm