Relatório da listview para plan  [Resolvido]

Visual Basic for Aplication e macros no Excel.
Regras do fórum
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde. Imagem

Relatório da listview para plan

Mensagempor Rui Maciel » Ter Mar 24, 2020 9:32 pm

Boa noite meus caros
Deparei-me com o seguinte problema:
no userform frmPagamentoConsolidado, quando mando imprimir sai para a folha1 desconfigurado, sei que se trata de um erro simples, mas não consigo encontrar, assim como, se a txtCliente estiver preenchida, imprime, se eu quiser imprimir toda a informação dos anos dá erro. Alguém pode ajudar-me?
Grato desde já,
Rui Maciel
Você não está autorizado a ver ou baixar esse anexo.
Rui Maciel
Membro
Membro
 
Mensagens: 268
Registrado em: Dom Fev 01, 2015 8:27 pm
Has thanked: 86 times
Have thanks: 5 times

{ SO_SELECT }

Testei e funcionou sem nenhum erro  [Resolvido]

Mensagempor Anderson » Qua Mar 25, 2020 8:04 am

Código: Selecionar todos
Private Sub cmdImprimir_Click()
'If Me.txtCliente.Text = "" Then
'limpar a Folha1
Sheets("Folha1").Select
'Range("A1:N92").Select
'Selection.ClearContents

Dim i As Long
Dim linha As Long
Dim j As Long
linha = 2
Dim ano As String

While Folha1.Range("A" & linha).Value <> ""


linha = linha + 1

Wend
Folha1.Range("A1:O" & linha).Value = ""

linha = 2

'ano está selecionado na cboAno
ano = Me.txtCliente.Text

'Sheets("Plan1").Cells(1, 1).Value = "Código"
'preencher a linha 1 da Plan1
For j = 1 To Me.ListView1.ColumnHeaders.Count

Sheets("Folha1").Cells(1, j).Value = Me.ListView1.ColumnHeaders(j)

Next j
       
'percorrer as linhas da Listview
' i é o número linha
For i = 1 To Me.ListView1.ListItems.Count

Sheets("Folha1").Range("A" & linha).Value = Me.ListView1.ListItems(i)
Sheets("Folha1").Range("B" & linha).Value = Me.ListView1.ListItems.Item(i).SubItems(1)
Sheets("Folha1").Range("C" & linha).Value = Me.ListView1.ListItems.Item(i).SubItems(2)
'percorrer as colunas da Listview
For j = 3 To Me.ListView1.ColumnHeaders.Count - 1

Sheets("Folha1").Cells(linha, j + 1).Value = Me.ListView1.ListItems.Item(i).SubItems(j)

Next j

linha = linha + 1

Next i
Call TextoParaNumerico
'End If
Sheets("Folha1").Range("D" & linha & ":O" & linha).Value = ""
If Me.ListView1.ColumnHeaders.Count = 15 Then
Folha1.Range("D" & linha).Value = CCur(WorksheetFunction.Sum(Folha1.Range("D2:C" & linha - 1)))
Folha1.Range("E" & linha).Value = CCur(WorksheetFunction.Sum(Folha1.Range("E2:D" & linha - 1)))
Folha1.Range("F" & linha).Value = CCur(WorksheetFunction.Sum(Folha1.Range("F2:F" & linha - 1)))
Folha1.Range("G" & linha).Value = CCur(WorksheetFunction.Sum(Folha1.Range("G2:G" & linha - 1)))
Folha1.Range("H" & linha).Value = CCur(WorksheetFunction.Sum(Folha1.Range("H2:H" & linha - 1)))
Folha1.Range("I" & linha).Value = CCur(WorksheetFunction.Sum(Folha1.Range("I2:I" & linha - 1)))
Folha1.Range("J" & linha).Value = CCur(WorksheetFunction.Sum(Folha1.Range("J2:J" & linha - 1)))
Folha1.Range("K" & linha).Value = CCur(WorksheetFunction.Sum(Folha1.Range("K2:K" & linha - 1)))
Folha1.Range("L" & linha).Value = CCur(WorksheetFunction.Sum(Folha1.Range("L2:L" & linha - 1)))
Folha1.Range("M" & linha).Value = CCur(WorksheetFunction.Sum(Folha1.Range("M2:M" & linha - 1)))
Folha1.Range("N" & linha).Value = CCur(WorksheetFunction.Sum(Folha1.Range("N2:N" & linha - 1)))
Folha1.Range("O" & linha).Value = CCur(WorksheetFunction.Sum(Folha1.Range("O2:O" & linha - 1)))
Folha1.Range("D" & linha & ":O" & linha).Font.Bold = True
Folha1.Range("B" & linha) = "Totais"
Folha1.Range("B" & linha).Font.Bold = True
Folha1.Range("B" & linha).HorizontalAlignment = xlCenter

End If

If Me.ListView1.ColumnHeaders.Count = 4 Then
Folha1.Range("D" & linha).Value = CCur(WorksheetFunction.Sum(Folha1.Range("D2:D" & linha - 1)))
Folha1.Range("D" & linha).Font.Bold = True

End If

'Folha1.txtAnoatual.Text = frmPagamentoConsolidado.ListView1.ListItems.Item(i).SubItems(1)

'Exibe uma caixa de dialogo para seleção da impressora que deseja imprimir
x = Application.Dialogs(xlDialogPrinterSetup).Show
If x = False Then
Exit Sub
End If

'Imprimindo o arquivo em CCURo de arquivo .mdi abre com visualizador nativo do windows, pode ser impresso posteriormente
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:="Microsoft Office Document Image Writer em Ne01:", Collate:=True

End Sub

Private Sub CommandButton1_Click()
Unload Me
End Sub

Private Sub txtCliente_Change()

Me.ListView1.ListItems.Clear

If Me.txtCliente.Text = "" Then

Dim LISTA As ListItem
Dim ano As String
Dim linha As Long
Dim i As Integer

For NumPlan = 1 To ThisWorkbook.Sheets.Count

If Sheets(NumPlan).Name <> "Plan1" Then
If Sheets(NumPlan).Name <> "Plan2" Then
If Sheets(NumPlan).Name <> "Folha1" Then

ano = Sheets(NumPlan).Name

Call PREENCHERLISTA12(Me.ListView1, ano, Me.txtCliente)

End If
End If
End If

Next NumPlan

Else

For NumPlan = 1 To ThisWorkbook.Sheets.Count

If Sheets(NumPlan).Name <> "Plan1" Then
If Sheets(NumPlan).Name <> "Plan2" Then
If Sheets(NumPlan).Name <> "Folha1" Then

ano = Sheets(NumPlan).Name

Call PREENCHERLISTA12(Me.ListView1, ano, Me.txtCliente)

End If
End If
End If
Next NumPlan

End If

End Sub

Private Sub UserForm_Initialize()

Dim LISTA As ListItem
       
    With ListView1
        With .ColumnHeaders
            .Clear
            .Add , , "Ano", 30
            .Add , , "Código", 40, lvwColumnRight
            .Add , , "Cliente", 250, lvwColumnLeft
            .Add , , "Janeiro", 52, lvwColumnRight
            .Add , , "Fevereiro", 52, lvwColumnRight
            .Add , , "Março", 52, lvwColumnRight
            .Add , , "Abril", 52, lvwColumnRight
            .Add , , "Maio", 52, lvwColumnRight
            .Add , , "Junho", 52, lvwColumnRight
            .Add , , "Julho", 52, lvwColumnRight
            .Add , , "Agosto", 52, lvwColumnRight
            .Add , , "Setembro", 52, lvwColumnRight
            .Add , , "Outubro", 52, lvwColumnRight
            .Add , , "Novembro", 52, lvwColumnRight
            .Add , , "Dezembro", 52, lvwColumnRight
        End With
        .View = lvwReport
        .FullRowSelect = True
    End With
   
Dim ano As String
Dim linha As Long
Dim i As Integer

For NumPlan = 1 To ThisWorkbook.Sheets.Count

If Sheets(NumPlan).Name <> "Plan1" Then
If Sheets(NumPlan).Name <> "Plan2" Then
If Sheets(NumPlan).Name <> "Folha1" Then

ano = Sheets(NumPlan).Name

Call PREENCHERLISTA12(Me.ListView1, ano, Me.txtCliente)

End If
End If
End If

Next NumPlan

End Sub

Você não está autorizado a ver ou baixar esse anexo.

For this post the author Anderson thanked:
Rui Maciel (Qua Mar 25, 2020 9:51 am)
Anderson
Membro
Membro
 
Mensagens: 27
Registrado em: Dom Mar 15, 2020 10:40 pm
Has thanked: 0 time
Have thanks: 16 times

Re: Relatório da listview para plan

Mensagempor Rui Maciel » Qua Mar 25, 2020 10:07 am

Boa tarde Anderson e obrigado, funcionou na perfeição. Só alterei duas colunas no código da soma. Mais uma vez muito obrigado.
Código: Selecionar todos
Private Sub cmdImprimir_Click()
'If Me.txtCliente.Text = "" Then
'limpar a Folha1
Sheets("Folha1").Select
'Range("A1:N92").Select
'Selection.ClearContents

Dim i As Long
Dim linha As Long
Dim j As Long
linha = 2
Dim ano As String

While Folha1.Range("A" & linha).Value <> ""


linha = linha + 1

Wend
Folha1.Range("A1:O" & linha).Value = ""

linha = 2

'ano está selecionado na cboAno
ano = Me.txtCliente.Text

'Sheets("Plan1").Cells(1, 1).Value = "Código"
'preencher a linha 1 da Plan1
For j = 1 To Me.ListView1.ColumnHeaders.Count

Sheets("Folha1").Cells(1, j).Value = Me.ListView1.ColumnHeaders(j)

Next j
       
'percorrer as linhas da Listview
' i é o número linha
For i = 1 To Me.ListView1.ListItems.Count

Sheets("Folha1").Range("A" & linha).Value = Me.ListView1.ListItems(i)
Sheets("Folha1").Range("B" & linha).Value = Me.ListView1.ListItems.Item(i).SubItems(1)
Sheets("Folha1").Range("C" & linha).Value = Me.ListView1.ListItems.Item(i).SubItems(2)
'percorrer as colunas da Listview
For j = 3 To Me.ListView1.ColumnHeaders.Count - 1

Sheets("Folha1").Cells(linha, j + 1).Value = Me.ListView1.ListItems.Item(i).SubItems(j)

Next j

linha = linha + 1

Next i
Call TextoParaNumerico
'End If
Sheets("Folha1").Range("D" & linha & ":O" & linha).Value = ""
If Me.ListView1.ColumnHeaders.Count = 15 Then
Folha1.Range("D" & linha).Value = CCur(WorksheetFunction.Sum(Folha1.Range("D2:D" & linha - 1)))
Folha1.Range("E" & linha).Value = CCur(WorksheetFunction.Sum(Folha1.Range("E2:E" & linha - 1)))
Folha1.Range("F" & linha).Value = CCur(WorksheetFunction.Sum(Folha1.Range("F2:F" & linha - 1)))
Folha1.Range("G" & linha).Value = CCur(WorksheetFunction.Sum(Folha1.Range("G2:G" & linha - 1)))
Folha1.Range("H" & linha).Value = CCur(WorksheetFunction.Sum(Folha1.Range("H2:H" & linha - 1)))
Folha1.Range("I" & linha).Value = CCur(WorksheetFunction.Sum(Folha1.Range("I2:I" & linha - 1)))
Folha1.Range("J" & linha).Value = CCur(WorksheetFunction.Sum(Folha1.Range("J2:J" & linha - 1)))
Folha1.Range("K" & linha).Value = CCur(WorksheetFunction.Sum(Folha1.Range("K2:K" & linha - 1)))
Folha1.Range("L" & linha).Value = CCur(WorksheetFunction.Sum(Folha1.Range("L2:L" & linha - 1)))
Folha1.Range("M" & linha).Value = CCur(WorksheetFunction.Sum(Folha1.Range("M2:M" & linha - 1)))
Folha1.Range("N" & linha).Value = CCur(WorksheetFunction.Sum(Folha1.Range("N2:N" & linha - 1)))
Folha1.Range("O" & linha).Value = CCur(WorksheetFunction.Sum(Folha1.Range("O2:O" & linha - 1)))
Folha1.Range("D" & linha & ":O" & linha).Font.Bold = True
Folha1.Range("B" & linha) = "Totais"
Folha1.Range("B" & linha).Font.Bold = True
Folha1.Range("B" & linha).HorizontalAlignment = xlCenter

End If

If Me.ListView1.ColumnHeaders.Count = 4 Then
Folha1.Range("D" & linha).Value = CCur(WorksheetFunction.Sum(Folha1.Range("D2:D" & linha - 1)))
Folha1.Range("D" & linha).Font.Bold = True

End If

'Folha1.txtAnoatual.Text = frmPagamentoConsolidado.ListView1.ListItems.Item(i).SubItems(1)

'Exibe uma caixa de dialogo para seleção da impressora que deseja imprimir
x = Application.Dialogs(xlDialogPrinterSetup).Show
If x = False Then
Exit Sub
End If

'Imprimindo o arquivo em CCURo de arquivo .mdi abre com visualizador nativo do windows, pode ser impresso posteriormente
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:="Microsoft Office Document Image Writer em Ne01:", Collate:=True

End Sub

Private Sub CommandButton1_Click()
Unload Me
End Sub

Private Sub txtCliente_Change()

Me.ListView1.ListItems.Clear

If Me.txtCliente.Text = "" Then

Dim LISTA As ListItem
Dim ano As String
Dim linha As Long
Dim i As Integer

For NumPlan = 1 To ThisWorkbook.Sheets.Count

If Sheets(NumPlan).Name <> "Plan1" Then
If Sheets(NumPlan).Name <> "Plan2" Then
If Sheets(NumPlan).Name <> "Folha1" Then

ano = Sheets(NumPlan).Name

Call PREENCHERLISTA12(Me.ListView1, ano, Me.txtCliente)

End If
End If
End If

Next NumPlan

Else

For NumPlan = 1 To ThisWorkbook.Sheets.Count

If Sheets(NumPlan).Name <> "Plan1" Then
If Sheets(NumPlan).Name <> "Plan2" Then
If Sheets(NumPlan).Name <> "Folha1" Then

ano = Sheets(NumPlan).Name

Call PREENCHERLISTA12(Me.ListView1, ano, Me.txtCliente)

End If
End If
End If
Next NumPlan

End If

End Sub

Private Sub UserForm_Initialize()

Dim LISTA As ListItem
       
    With ListView1
        With .ColumnHeaders
            .Clear
            .Add , , "Ano", 30
            .Add , , "Código", 40, lvwColumnRight
            .Add , , "Cliente", 250, lvwColumnLeft
            .Add , , "Janeiro", 52, lvwColumnRight
            .Add , , "Fevereiro", 52, lvwColumnRight
            .Add , , "Março", 52, lvwColumnRight
            .Add , , "Abril", 52, lvwColumnRight
            .Add , , "Maio", 52, lvwColumnRight
            .Add , , "Junho", 52, lvwColumnRight
            .Add , , "Julho", 52, lvwColumnRight
            .Add , , "Agosto", 52, lvwColumnRight
            .Add , , "Setembro", 52, lvwColumnRight
            .Add , , "Outubro", 52, lvwColumnRight
            .Add , , "Novembro", 52, lvwColumnRight
            .Add , , "Dezembro", 52, lvwColumnRight
        End With
        .View = lvwReport
        .FullRowSelect = True
    End With
   
Dim ano As String
Dim linha As Long
Dim i As Integer

For NumPlan = 1 To ThisWorkbook.Sheets.Count

If Sheets(NumPlan).Name <> "Plan1" Then
If Sheets(NumPlan).Name <> "Plan2" Then
If Sheets(NumPlan).Name <> "Folha1" Then

ano = Sheets(NumPlan).Name

Call PREENCHERLISTA12(Me.ListView1, ano, Me.txtCliente)

End If
End If
End If

Next NumPlan

End Sub
Rui Maciel
Membro
Membro
 
Mensagens: 268
Registrado em: Dom Fev 01, 2015 8:27 pm
Has thanked: 86 times
Have thanks: 5 times


Voltar para VBA & Macros

Quem está online

Usuários navegando neste fórum: MSN [Bot] e 5 visitantes