1) Deschidem Excel -> File->Options->Customize Ribbon->Bifam Developer
2) Revenim la ecranul principal de Excel si regasim acum tabul Developer in paralel cu File, Insert, etc.
3) Selectam Developer->Click pe "Visual Basic" ->Click dreapta pe Modules-> Insert-> Module
4) Exemplu de date in foaia cu numarul 2 din fisierul nostru Excel:
id | Name | Age |
1 | Dan | 23 |
2 | Ben | 43 |
3 | Jack | 53 |
4 | Chuck | 27 |
5 | Sam | 34 |
5) Copiati codul de mai jos si inserati-l in fereastra de modul:
Sub Export_Sheet_And_Save_as_PDF()
Dim strFileLocation 'declaram locatia unde se va salva fisierul
Dim strFileName 'declaram numele fisierului
strFileName = Sheets("Sheet1").Range("A2") 'atribuim variabile strFileName locatia din calculator (in cazul meu am preferat sa pastrez variabilele in casutele din Sheet1, casuta A2)
strFileLocation = Sheets("Sheet1").Range("A3") 'acelasi stil de atribuire dupa cum se vede in imaginea de mai jos, unde sunt salvate valorile variabilelor strFileName si strFileLocation
Dim wb As Workbook 'declaram variabila wb ca fisier Excel
Set wb = Workbooks.Add 'workbook=fisier de Excel, Workbooks.Add inseamna ca adaugam un nou fisier Excel (in acest fisier nou creat se va introduce acea foaie noua din Excelul nostru initial)
ThisWorkbook.Sheets("Sheet2").Copy Before:=wb.Sheets(1) 'Copiem foaia2 (Sheet2) din fisierul initial, dar puteti alege orice foaie doriti (Sheet1, sau cum se numeste in cazul vostru) si o introducem in noul fisier "before wb.Sheets(1)" adica inainte de foaia cu numarul 1 a fisierului Excel nou creat.
wb.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strFileLocation & " " & strFileName, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False 'exportam fisierul excel nou creat in format PDF.
wb.SaveAs strFileLocation & " " & strFileName & ".xlsx" ' salvam fisierul Excel nou creat anterior
answer = MsgBox("Do you want to print now?", vbYesNo, "Save paper!") 'am adaugat si posibilitatea de a printa imediat dupa aceste activitati. Programul te va intreba daca vrei sa printezi ceea ce a rezultat la imprimanta de baza (default).
If answer = vbYes Then
wb.PrintOut Copies:=1 'de cate ori sa copieze fisierul rezultat la printare
End If
wb.Close
End Sub
0 comentarii:
Trimiteți un comentariu