Wpis z mikrobloga

via Wykop Mobilny (Android)
  • 0
#vba #makra #excel

Mam problem. Nagrywam makro do wysyłania outlookiem arkusza w formacie PDF. Przy nagrywaniu wszystko jest ok a jak uruchomię makro to załącznik mam nie w pdf a w xls. Jak to obejść?
PLIK-UDOSTEPNIJ-WYSLIJ W WIADOMOŚCI...- WYSLIJ JAKO PLIK PDF
  • 15
@taju: ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=
"E:\Oferty\2021\OFERTA XXX 3047.2021 XXXi.pdf",

Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=
"C:\Users\WI~1\AppData\Local\Temp\OFERTA XXX 3047.2021 XXX.pdf"

, Quality:=xlQualityStandard, IncludeDocProperties:=False, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
Application.Dialogs(xlDialogSendMail).Show
@hacker666: ten kod zawiera 2 rozne akcje, niepowiazane ze soba:
1) utworz plik pdf
2) wyslij aktualny arkusz jako zalacznik do maila

Prawdopodobnie (zgaduje) dziala to przy robieniu tego pierwszy raz, bo excel sobie zapamietuje, ze zapisany w procesie plik jest plikiem do wyslania. Niestety przy kolejnym uruchomieniu makro te 2 akcje sa zupelnie niepowiazane:
Application.Dialogs(xlDialogSendMail).Show otwiera program pocztowy oraz dodaje jako zalacznik aktualnie otwarty arkusz i nic wiecej
@taju: Działa!! Dzięki za namiary.

Jeszcze jedno pytanko. Makro robi mi PDF z nawą arkusza [ xSht.Name + ".pdf" ] znasz może komendę taką żeby wpisywała się nazwa pliku?
Tego właśnie mi brakowało.
Teraz muszę tylko wykombinować tak aby PDF zapisywało domyślnie tam gdzie plik xls który drukuje.
W tym kodzie zawsze muszę wybierać folder.
@taju: Jestem zielony jeżeli chodzi o marka i musisz mi pisać jak dziecku gdzie wpisać i jak. Podejrzewam że ten fragment trzeba zmienić.

Set xSht = ActiveSheet
Set xFileDlg = Application.FileDialog(msoFileDialogFolderPicker)

If xFileDlg.Show = True Then
xFolder = xFileDlg.SelectedItems(1)
Else
MsgBox "Nie wybrano folderu do zapisu." & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Must Specify Destination Folder"
Exit Sub
End If
xFolder = xFolder + "\"