Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Get Filename without the extension
I have a macro that saves a workbook in .xlsm format and then as a .pdf in
the same folder. My problem is the file name for the .pdf file. If the excel file is named abc.xlsm, then the pdf file is saved as abc.xlsm.pdf. I need to get just "abc" for the filename for the pdf. Below is my code. I know that specifying the Filename as ActiveWorkbook.Name is my problem, i just don't know how to fix it. Sub SaveAsPDFandXLS(control As IRibbonControl) ans = Application.GetSaveAsFilename _ ("S:\Shared\CORRESPONDENCE\" & ActiveWorkbook.Name, _ fileFilter:="Excel Macro-Enabled Workbook (*.xlsm), *.xlsm") ActiveWorkbook.SaveAs ans ActiveSheet.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:=ActiveWorkbook.Name, _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=False End Sub Thanks, Larry |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Get Filename without the extension
Try this Larry
Dim fname As Variant fname = Application.GetSaveAsFilename("", _ fileFilter:="Excel Files (*.xls), *.xls") MsgBox Left(fname, InStrRev(fname, ".") - 1) -- Regards Ron de Bruin http://www.rondebruin.nl/tips.htm "Larry S" wrote in message ... I have a macro that saves a workbook in .xlsm format and then as a .pdf in the same folder. My problem is the file name for the .pdf file. If the excel file is named abc.xlsm, then the pdf file is saved as abc.xlsm.pdf. I need to get just "abc" for the filename for the pdf. Below is my code. I know that specifying the Filename as ActiveWorkbook.Name is my problem, i just don't know how to fix it. Sub SaveAsPDFandXLS(control As IRibbonControl) ans = Application.GetSaveAsFilename _ ("S:\Shared\CORRESPONDENCE\" & ActiveWorkbook.Name, _ fileFilter:="Excel Macro-Enabled Workbook (*.xlsm), *.xlsm") ActiveWorkbook.SaveAs ans ActiveSheet.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:=ActiveWorkbook.Name, _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=False End Sub Thanks, Larry |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Get Filename without the extension
Try:
Filename:=Left(ActiveWorkbook.Name, InStr(1, ActiveWorkbook.Name, ".xl") - 1) & ".pdf" HTH, Eric "Larry S" wrote: I have a macro that saves a workbook in .xlsm format and then as a .pdf in the same folder. My problem is the file name for the .pdf file. If the excel file is named abc.xlsm, then the pdf file is saved as abc.xlsm.pdf. I need to get just "abc" for the filename for the pdf. Below is my code. I know that specifying the Filename as ActiveWorkbook.Name is my problem, i just don't know how to fix it. Sub SaveAsPDFandXLS(control As IRibbonControl) ans = Application.GetSaveAsFilename _ ("S:\Shared\CORRESPONDENCE\" & ActiveWorkbook.Name, _ fileFilter:="Excel Macro-Enabled Workbook (*.xlsm), *.xlsm") ActiveWorkbook.SaveAs ans ActiveSheet.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:=ActiveWorkbook.Name, _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=False End Sub Thanks, Larry |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
Get Filename without the extension
FName = ActiveWorkbook.Name
BName = Left(FName, Len(FName) - InStrRev(FName, ".")) "Larry S" wrote: I have a macro that saves a workbook in .xlsm format and then as a .pdf in the same folder. My problem is the file name for the .pdf file. If the excel file is named abc.xlsm, then the pdf file is saved as abc.xlsm.pdf. I need to get just "abc" for the filename for the pdf. Below is my code. I know that specifying the Filename as ActiveWorkbook.Name is my problem, i just don't know how to fix it. Sub SaveAsPDFandXLS(control As IRibbonControl) ans = Application.GetSaveAsFilename _ ("S:\Shared\CORRESPONDENCE\" & ActiveWorkbook.Name, _ fileFilter:="Excel Macro-Enabled Workbook (*.xlsm), *.xlsm") ActiveWorkbook.SaveAs ans ActiveSheet.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:=ActiveWorkbook.Name, _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=False End Sub Thanks, Larry |
#5
Posted to microsoft.public.excel.programming
|
|||
|
|||
Get Filename without the extension
Thanks egun.
Worked perfectly "egun" wrote: Try: Filename:=Left(ActiveWorkbook.Name, InStr(1, ActiveWorkbook.Name, ".xl") - 1) & ".pdf" HTH, Eric "Larry S" wrote: I have a macro that saves a workbook in .xlsm format and then as a .pdf in the same folder. My problem is the file name for the .pdf file. If the excel file is named abc.xlsm, then the pdf file is saved as abc.xlsm.pdf. I need to get just "abc" for the filename for the pdf. Below is my code. I know that specifying the Filename as ActiveWorkbook.Name is my problem, i just don't know how to fix it. Sub SaveAsPDFandXLS(control As IRibbonControl) ans = Application.GetSaveAsFilename _ ("S:\Shared\CORRESPONDENCE\" & ActiveWorkbook.Name, _ fileFilter:="Excel Macro-Enabled Workbook (*.xlsm), *.xlsm") ActiveWorkbook.SaveAs ans ActiveSheet.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:=ActiveWorkbook.Name, _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=False End Sub Thanks, Larry |
#6
Posted to microsoft.public.excel.programming
|
|||
|
|||
Get Filename without the extension
This simpler expression would have worked as well...
Filename:=Replace(ActiveWorkbook.Name, ".xlsm", ".pdf") -- Rick (MVP - Excel) "egun" wrote in message ... Try: Filename:=Left(ActiveWorkbook.Name, InStr(1, ActiveWorkbook.Name, ".xl") - 1) & ".pdf" HTH, Eric "Larry S" wrote: I have a macro that saves a workbook in .xlsm format and then as a .pdf in the same folder. My problem is the file name for the .pdf file. If the excel file is named abc.xlsm, then the pdf file is saved as abc.xlsm.pdf. I need to get just "abc" for the filename for the pdf. Below is my code. I know that specifying the Filename as ActiveWorkbook.Name is my problem, i just don't know how to fix it. Sub SaveAsPDFandXLS(control As IRibbonControl) ans = Application.GetSaveAsFilename _ ("S:\Shared\CORRESPONDENCE\" & ActiveWorkbook.Name, _ fileFilter:="Excel Macro-Enabled Workbook (*.xlsm), *.xlsm") ActiveWorkbook.SaveAs ans ActiveSheet.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:=ActiveWorkbook.Name, _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=False End Sub Thanks, Larry |
#7
Posted to microsoft.public.excel.programming
|
|||
|
|||
Get Filename without the extension
Speaking of file lengths, the other thing i wanted to do with this macro was
reference the last three characters of a cell value. How do i accomplish that? "Joel" wrote: FName = ActiveWorkbook.Name BName = Left(FName, Len(FName) - InStrRev(FName, ".")) "Larry S" wrote: I have a macro that saves a workbook in .xlsm format and then as a .pdf in the same folder. My problem is the file name for the .pdf file. If the excel file is named abc.xlsm, then the pdf file is saved as abc.xlsm.pdf. I need to get just "abc" for the filename for the pdf. Below is my code. I know that specifying the Filename as ActiveWorkbook.Name is my problem, i just don't know how to fix it. Sub SaveAsPDFandXLS(control As IRibbonControl) ans = Application.GetSaveAsFilename _ ("S:\Shared\CORRESPONDENCE\" & ActiveWorkbook.Name, _ fileFilter:="Excel Macro-Enabled Workbook (*.xlsm), *.xlsm") ActiveWorkbook.SaveAs ans ActiveSheet.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:=ActiveWorkbook.Name, _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=False End Sub Thanks, Larry |
#8
Posted to microsoft.public.excel.programming
|
|||
|
|||
Get Filename without the extension
Msgbox Right(Sheet1.Range("A1").Value, 3)
Tim "Larry S" wrote in message ... Speaking of file lengths, the other thing i wanted to do with this macro was reference the last three characters of a cell value. How do i accomplish that? "Joel" wrote: FName = ActiveWorkbook.Name BName = Left(FName, Len(FName) - InStrRev(FName, ".")) "Larry S" wrote: I have a macro that saves a workbook in .xlsm format and then as a .pdf in the same folder. My problem is the file name for the .pdf file. If the excel file is named abc.xlsm, then the pdf file is saved as abc.xlsm.pdf. I need to get just "abc" for the filename for the pdf. Below is my code. I know that specifying the Filename as ActiveWorkbook.Name is my problem, i just don't know how to fix it. Sub SaveAsPDFandXLS(control As IRibbonControl) ans = Application.GetSaveAsFilename _ ("S:\Shared\CORRESPONDENCE\" & ActiveWorkbook.Name, _ fileFilter:="Excel Macro-Enabled Workbook (*.xlsm), *.xlsm") ActiveWorkbook.SaveAs ans ActiveSheet.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:=ActiveWorkbook.Name, _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=False End Sub Thanks, Larry |
#9
Posted to microsoft.public.excel.programming
|
|||
|
|||
Get Filename without the extension
here's another way:
fname = Split(ActiveWorkbook.Name, ".")(0) -- Gary "Larry S" wrote in message ... I have a macro that saves a workbook in .xlsm format and then as a .pdf in the same folder. My problem is the file name for the .pdf file. If the excel file is named abc.xlsm, then the pdf file is saved as abc.xlsm.pdf. I need to get just "abc" for the filename for the pdf. Below is my code. I know that specifying the Filename as ActiveWorkbook.Name is my problem, i just don't know how to fix it. Sub SaveAsPDFandXLS(control As IRibbonControl) ans = Application.GetSaveAsFilename _ ("S:\Shared\CORRESPONDENCE\" & ActiveWorkbook.Name, _ fileFilter:="Excel Macro-Enabled Workbook (*.xlsm), *.xlsm") ActiveWorkbook.SaveAs ans ActiveSheet.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:=ActiveWorkbook.Name, _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=False End Sub Thanks, Larry |
#10
Posted to microsoft.public.excel.programming
|
|||
|
|||
Get Filename without the extension
That will work **only** if you know for sure that the path or filename does
not contain any dots in them except for the one in front of the extension. -- Rick (MVP - Excel) "Gary Keramidas" <GKeramidasAtMsn.com wrote in message ... here's another way: fname = Split(ActiveWorkbook.Name, ".")(0) -- Gary "Larry S" wrote in message ... I have a macro that saves a workbook in .xlsm format and then as a .pdf in the same folder. My problem is the file name for the .pdf file. If the excel file is named abc.xlsm, then the pdf file is saved as abc.xlsm.pdf. I need to get just "abc" for the filename for the pdf. Below is my code. I know that specifying the Filename as ActiveWorkbook.Name is my problem, i just don't know how to fix it. Sub SaveAsPDFandXLS(control As IRibbonControl) ans = Application.GetSaveAsFilename _ ("S:\Shared\CORRESPONDENCE\" & ActiveWorkbook.Name, _ fileFilter:="Excel Macro-Enabled Workbook (*.xlsm), *.xlsm") ActiveWorkbook.SaveAs ans ActiveSheet.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:=ActiveWorkbook.Name, _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=False End Sub Thanks, Larry |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
how to insert filename in header without file extension | Excel Discussion (Misc queries) | |||
SaveAs Filename:=filename, FileFormat:=xlCSV | Excel Programming | |||
Converting a Variable Filename to a Constant Filename | Excel Programming | |||
Getting only the filename with no extension | Excel Worksheet Functions | |||
Transformation d'images avec une extension .jpg ou .jpeg en images avec extension .bmp ou .ico | Excel Discussion (Misc queries) |