Ir ao conteúdo
  • Cadastre-se

Determinar quebra de página conforme critério


Posts recomendados

Olá pessoal,

 

Gostaria de fazer uma macro que após organizados os dados de A a Z, ela fizesse automaticamente a quebra de página a cada mudança do valor da célula. Para que eu possa clicar em "Imprimir" no Excel e seja impresso uma página para cada valor.
Por exemplo, em uma coluna eu tenho Maça, Banana e Laranja repetindo diversas vezes, ai eu organizo de A a Z esses dados e a automaticamente a quebra de página faz um salto para a nova página a cada mudança, ou seja, uma página seria impresso Maça, na outra Banana e na outra Laranja.

Espero que não tenha ficado confuso.
Obrigado

Link para o comentário
Compartilhar em outros sites

Não consigo enviar no momento, mas o que eu preciso é simples.
Vou tentar dar um exemplo.

No caso abaixo, eu gostaria que toda vez que mudasse o valor da coluna A (esse seria o meu critério), a quebra de página fosse inserida ali, fazendo com que ao imprimir todo o documento, seja impresso uma folha para cada pessoa (coluna B).
 

A	B	C
1	Pedro	Azul
1	Pedro	Verde
1	Pedro	Laranja
2	Vitor	Azul
2	Vitor	Verde
2	Vitor	Laranja
3	Bruno	Azul

 

Link para o comentário
Compartilhar em outros sites

Segue  o codigo comentado

 

 

Private Sub BTImprimir_Click()

'Declaração de Variaveis

Dim Codigo As Long
Dim WDLinha As Long
Dim WDLista As Long
Dim WMI As Worksheet
Dim WD As Worksheet
Dim WMILinha As Long

'Carregando Variaveis
Set WMI = Plan2 'Modelo de Impressão
Set WD = Plan1  'Dados
    WDLinha = 2 'Linha da Base de Dados
    WDLista = 2 'Linha da Lista Exclusiva da Coluna G
                'Sem a Coluna G o Codigo NAO FUNCIONA
    
 'Inicio da Primeira Rotina de Repetição
 'Inidica que a rotina vai executar ate a ultima linha com dados da coluna G
Do While WD.Cells(WDLista, 7).Value <> ""
'Limpa a Planilha de Impressão
WMI.Range("A2:C" & Rows.Count).ClearContents
'Alimenta a variavel codigo com dos dados da coluna G
Codigo = WD.Cells(WDLista, 7).Value
'Inicio da segunda rotina de repetição
'Alimenta a planilha de impressao
Do While WD.Cells(WDLinha, 1).Value <> ""
'Localiza a primeira linha vazia da planilha de repetição
'Esta linha recebera os dados
WMILinha = WMI.Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row

'Verifica se a informação da coluna A é igual a variavel codigo
If WD.Cells(WDLinha, 1).Value = Codigo Then

'Caso verdadeiro copia os dados pra a planilha de impressão

WMI.Cells(WMILinha, 1).Value = WD.Cells(WDLinha, 1).Value
WMI.Cells(WMILinha, 2).Value = WD.Cells(WDLinha, 2).Value
WMI.Cells(WMILinha, 3).Value = WD.Cells(WDLinha, 3).Value
'Incrementa uma linha na base de dados
WDLinha = WDLinha + 1
Else
'Se a informação da linha for diferente da variavel codigo pula uma linha
'sem copiar os dados
WDLinha = WDLinha + 1
End If

Loop

'Imprime a planilha de impressão
WMI.PrintOut
'Incrementa a lista da coluna G
WDLista = WDLista + 1
'Reinicia a contagem no banco de dados
WDLinha = 2

Loop

End Sub
 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...