Sou iniciante e estou trabalhando em uma planilha onde preciso criar um botão para salvar uma área selecionada em PDF. Uma com nome e destino determinados em uma célula e outro com a criação automática de uma pasta dentro de 😄 salvando os arquivos lá dentro com o nome que estiver em determinada célula.
Ex.:
A pessoa terá um campo para preencher com o endereço da pasta que ela deseja salvar o exames automaticamente ("Configurações do exame!B26"). Esta célula, na verdade vem assim: ='Configurações do exame'!B26, porém acho que precia tirar o ' pra não dar erro? De qualquer forma tentei com e sem e não deu jeito.
E o nome do arquivo deverá ser o nome do paciente que consta na célula ("Audiograma!X1")
Esta é a área que eu preciso imprimir : ("A1:U55").
Encontrei este código que cria automaticamente uma pasta e funcionou perfeitamente e gostei muito da proposta, mas o PDF não abriu, com um erro que de que o documento não é um documento em PDF válido.
Sub CriarPastas()
Dim DATA, Dia, Mes, Ano As String
DATA = Date
Dia = Left(DATA, 2)
Mes = Right(Left(DATA, 5), 2)
Ano = Right(DATA, 4)
'Criar objeto
Set fso = CreateObject("Scripting.FileSystemObject")
'Se não existir a pasta "NomedaPasta", ela é criada.
If Not fso.FolderExists("C:\EasyAudio\") Then
MkDir "C:\EasyAudio\"
End If
'Se não existir a pasta do ano atual dentro da "NomedaPasta", ela é criada.
If Not fso.FolderExists("C:\EasyAudio\" & Ano) Then
MkDir "C:\EasyAudio\" & Ano
End If
'Se não existir a pasta do mês atual dentro da pasta do ano atual, ela é criada.
If Not fso.FolderExists("C:\EasyAudio\" & Ano & "\" & Mes) Then
MkDir "C:\EasyAudio\" & Ano & "\" & Mes
End If
'Se não existir a pasta do dia atual dentro da pasta do mês atual, ela é criada.
If Not fso.FolderExists("C:\EasyAudio\" & Ano & "\" & Mes & "\" & Dia) Then
MkDir "C:\EasyAudio\" & Ano & "\" & Mes & "\" & Dia
End If
'Cria o caminha que será salvo o arquivo.
NameFolder = "C:\EasyAudio\" & Ano & "\" & Mes & "\" & Dia
'Cria o nome do Arquivo, extensão ".xls", troque extensão caso necessário.
NameFile = Range("Audiograma!x1") & " " & Format(Now, "dd_mm_yyyy-hh.mm") & ".pdf"
'Salva o Arquivo.
ThisWorkbook.SaveAs (NameFolder & "\" & NameFile)
End Sub
Este outro também funcionou, porém aqui preciso colocar o destino específico. Não consegui fazer com ele buscasse o destino na célula.
Pergunta
Priscylla Vital Vasconcelo
Bom dia, pessoal!
Sou iniciante e estou trabalhando em uma planilha onde preciso criar um botão para salvar uma área selecionada em PDF. Uma com nome e destino determinados em uma célula e outro com a criação automática de uma pasta dentro de 😄 salvando os arquivos lá dentro com o nome que estiver em determinada célula.
Ex.:
A pessoa terá um campo para preencher com o endereço da pasta que ela deseja salvar o exames automaticamente ("Configurações do exame!B26"). Esta célula, na verdade vem assim: ='Configurações do exame'!B26, porém acho que precia tirar o ' pra não dar erro? De qualquer forma tentei com e sem e não deu jeito.
E o nome do arquivo deverá ser o nome do paciente que consta na célula ("Audiograma!X1")
Esta é a área que eu preciso imprimir : ("A1:U55").
Encontrei este código que cria automaticamente uma pasta e funcionou perfeitamente e gostei muito da proposta, mas o PDF não abriu, com um erro que de que o documento não é um documento em PDF válido.
Sub CriarPastas()
Dim DATA, Dia, Mes, Ano As String
DATA = Date
Dia = Left(DATA, 2)
Mes = Right(Left(DATA, 5), 2)
Ano = Right(DATA, 4)
'Criar objeto
Set fso = CreateObject("Scripting.FileSystemObject")
'Se não existir a pasta "NomedaPasta", ela é criada.
If Not fso.FolderExists("C:\EasyAudio\") Then
MkDir "C:\EasyAudio\"
End If
'Se não existir a pasta do ano atual dentro da "NomedaPasta", ela é criada.
If Not fso.FolderExists("C:\EasyAudio\" & Ano) Then
MkDir "C:\EasyAudio\" & Ano
End If
'Se não existir a pasta do mês atual dentro da pasta do ano atual, ela é criada.
If Not fso.FolderExists("C:\EasyAudio\" & Ano & "\" & Mes) Then
MkDir "C:\EasyAudio\" & Ano & "\" & Mes
End If
'Se não existir a pasta do dia atual dentro da pasta do mês atual, ela é criada.
If Not fso.FolderExists("C:\EasyAudio\" & Ano & "\" & Mes & "\" & Dia) Then
MkDir "C:\EasyAudio\" & Ano & "\" & Mes & "\" & Dia
End If
'Cria o caminha que será salvo o arquivo.
NameFolder = "C:\EasyAudio\" & Ano & "\" & Mes & "\" & Dia
'Cria o nome do Arquivo, extensão ".xls", troque extensão caso necessário.
NameFile = Range("Audiograma!x1") & " " & Format(Now, "dd_mm_yyyy-hh.mm") & ".pdf"
'Salva o Arquivo.
ThisWorkbook.SaveAs (NameFolder & "\" & NameFile)
End Sub
Este outro também funcionou, porém aqui preciso colocar o destino específico. Não consegui fazer com ele buscasse o destino na célula.
Sub SalvarPDF()
ChDir "C:\Users\prisc\Desktop\Audiometrias"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Range("Audiograma!X1"), Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End Sub
Podem me ajudar?
Desde já agradeço muito.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.