Imprimir seleção cr...
 
Notifications
Clear all

Imprimir seleção criando uma nova pasta de trabalho

7 Posts
3 Usuários
0 Reactions
1,771 Visualizações
RafaelLuan
(@rafaelluan)
Posts: 26
Eminent Member
Topic starter
 

Bom dia pessoal,

Por favor, necessito de uma ajuda, tenho uma planilha que vai da coluna A até a coluna BQ, e quando quero imprimir, preciso apenas das colunas (intervalos) A:B e BN:BQ na mesma pagina, uma ao lado da outra, porém não consigo apenas selecionando, e imprimindo seleção.
Ai o que eu fiz, gerei uma macro onde, primeiramente, eu desprotejo a planilha, depois seleciono, copio e colo as colunas que quero, depois abro uma nova pasta de trabalho em branco colo o que foi copiado e depois salvo em PDF, até ai beleza, fácil, o problema é que eu gostaria que esta nova pasta criada fosse fechada sem salvar, mas não consigo eliminar a mensagem quando ela vai fechar “deseja salvar as alterações?”. O que eu preciso é que ela não exiba opção de salvar alteração, mas isso somente na nova pasta criada!
Não sei se consegui expressar claramente o que desejo, caso de dúvida sobre minha dúvida, estou aqui rs.
Segue o código usado, aceito sugestões também.

Sub ImprimirSelecao()
'
'
'

'Application.ScreenUpdating = False
Sheets("Clientes Internos").Select
ActiveSheet.Unprotect ("fat")
Range("A:B,BN:BQ").Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
ActiveWindow.View = xlPageBreakPreview
Range("C19:D19").Select
Application.CutCopyMode = False
ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1
ActiveWindow.Zoom = 100
ChDir "C:Usersrafael.luanDesktop"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:Usersrafael.luanDesktopRelatorio.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
Application.DisplayAlerts = False
ActiveWorkbook.Close
ActiveWorkbook.Saved = False

Windows("CD.xlsm").Activate
Application.DisplayAlerts = True
Range("A1").Select
Sheets("Clientes Internos").Select
ActiveSheet.Protect ("fat")
End Sub

Obrigado,

Rafael

Rafael Luan

 
Postado : 04/04/2014 9:03 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

RafaelLuan,

Boa Tarde!

Se entendi corretamente, o que você não quer é que a planilha fique com essa aba extra que você cria para colar as colunas que você imprime. Assim sendo, basta você aumentar um pouco a sua macro (com o próprio gravador de macro), após a impressão, fazendo a exclusão dessa aba extra que foi criada. Depois você salva normalmente e sua planilha vai ficar como estava antes.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 04/04/2014 9:15 am
RafaelLuan
(@rafaelluan)
Posts: 26
Eminent Member
Topic starter
 

Wagner

Quase isso, por que o que eu crio não é uma nova aba, e sim uma pasta de trabalho, mas acredito que com a ideia da aba ficaria um pouco menos complexo, não é?

desde ja, muito obrigado.

Rafael Luan

 
Postado : 04/04/2014 9:19 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Com certeza RafaelLuan! Bem mais simples.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 04/04/2014 9:23 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Poderia tb experimentar
altere o trecho:

...
ActiveWorkbook.Close
ActiveWorkbook.Saved = False
...

para:

...
ActiveWorkbook.Saved = True
ActiveWorkbook.Close
...

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

 
Postado : 04/04/2014 10:18 am
RafaelLuan
(@rafaelluan)
Posts: 26
Eminent Member
Topic starter
 

Ok, deu certo assim tambem, eu estava confundindo na hora de por false ou true, mas tambem deu certo desta forma: ActiveWorkbook.Close savechanges:=False

Muito obrigado Reinaldo e Wagner, sempre ajudando!

Rafael Luan

 
Postado : 04/04/2014 10:49 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Se a intenção é somente a impressão, eu usaria a sugestão do Wagner, copia-se para uma nova aba e depois deletamos.
As dicas do Reinaldo tambem são validas, é só questão de ajustar em sua rotina.

Eu não cheguei a analisar sua rotina por completa, mas pelo que entendi criamos um novo arquivo e apos inserir os dados, imprimimos e fechamos sem salvar e sem emitir a mensagem, então acredito que a questão é na definição das variáveis e sequencia correta das instruções, faça um teste com a rotina abaixo e verá que apos Criar um wkb temporário, copia-se e imprimi, e, apos o novo arquivo é fechado sem nenhum questionamento e sem salvar, somente o limpamos da memoria.

Private Sub Cria_E_Deleta_New_Wkb()
     
    Dim wsheet As Worksheet
     
    'Copiamos primeiro o que pretendemos da planilha Origem
    Range("A1:C5").Copy
     
    'Cria um novo arquivo e definimos a primeira aba
    Set wsheet = Workbooks.Add.Worksheets(1)
     
    'Colamos no novo arquivo
    wsheet.Range("A1").PasteSpecial
    
    'Imprimimos os dados coladaos
    wsheet.PrintOut
     
   'Fechamos e limpamos a memmoria
    wsheet.Parent.Close False
    Set wsheet = Nothing
     
     Application.CutCopyMode = False
     
End Sub

[]s

Obs : Enquanto escrevia o colega já havia resolvido e respondido, de qualquer forma fica como mais uma opção.

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

 
Postado : 04/04/2014 11:01 am