Notifications
Clear all

Salvar em Pdf e Não substituir arquivo se mesmo nome existir

2 Posts
2 Usuários
0 Reactions
908 Visualizações
(@jeanj)
Posts: 1
New Member
Topic starter
 

olá, com muitas pesquisas consegui criar uma planilha que tem um formulário que gera um arquivo pdf com o nome de acordo com o valor de uma celula e outras coisinhas, um dos problemas é que na hora de gerar o arquivo, se o arquivo ja existe com esse nome ele é substituido, gostaria que fosse possivel adicionar uma numeração tipo (2).pdf se o arquivo existir.

Sub salvar()
'
' salvar Macro
'
Dim nome As String
nome = "C:UsersJeanDesktopexames pdf" & Range("E5") & " - " & Range("k7") & ".pdf"
'
    Sheets("Exame").Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nome, Quality:=xlQualityStandard _
        , IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True
    Sheets("PREENCHER").Select
    Range("E5:G5").Select
End Sub

o outro problema é que eu consegui fazer a maioria das coisas gravando macros, e como o formulário está em uma aba, e o modelo a ser preenchido está em outra, quando roda o macro a tela fica piscando porque para o codigo funcionar precisa ficar alternando entre as abas, gostaria de saber se é possível rodar a macro na aba 2 sem precisar de sair da aba onde está o formulário. 

Sub ocultar()
'
' ocultar Macro
'

'
    Sheets("Exame").Select
    Range("A34:O42").Select
    Selection.EntireRow.Hidden = True
    Sheets("PREENCHER").Select
    Range("C25:C31").Select
    With Selection.Font
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = -4.99893185216834E-02
    End With
    Range("F25,F27,F29,F31").Select
    Range("F31").Activate
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = -4.99893185216834E-02
        .PatternTintAndShade = 0
    End With
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    Selection.Borders(xlEdgeLeft).LineStyle = xlNone
    Selection.Borders(xlEdgeTop).LineStyle = xlNone
    Selection.Borders(xlEdgeBottom).LineStyle = xlNone
    Selection.Borders(xlEdgeRight).LineStyle = xlNone
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    ActiveSheet.Shapes.Range(Array("Rounded Rectangle 1")).Select
    Selection.ShapeRange.ZOrder msoBringToFront
    Range("E5:G5").Select
End Sub

fiquem À vontade para sugerir qualquer mudança, com muito esforço a planilha está ficando com um resultado bem legal. 
vou deixala em anexo. obrigado.
https://drive.google.com/file/d/0BynkAc ... sp=sharing
Preencher Hemograma.xlsm

 
Postado : 10/05/2016 9:43 am
(@mprudencio)
Posts: 2749
Famed Member
 

Ve se isso ajuda...

Como imagino que vc nao deva preencher o mesmo paciente na mesma data, ele nao faz o mesmo exame no mesmo dia, acrescentei mais um criteiro na hora de salvar, ou seja a data sempre é diferente, entao inseri a data no nome do arquivo, e isso acredito resolva seu problema na hora de salvar o exame do mesmo animal. Qto mais variaveis vc inserir menor a chance de se ter um homonimo. Pessoalmente eu usaria mais dois criterios, especie e raça tb no nome do arquivo. (Fica a sugestão)

Qto ao pisca pisca ( ja inseir)

É so inserir no inicio da macro

Application.ScreenUpdating = False

E no final

Application.ScreenUpdating = True

Veja se a data na hora de salvar atende sua necessidade, mas se precisar pode inserir outras variaveis

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 10/05/2016 10:17 am