Question

I am getting a failure to compile error. I am trying to simplify things in this subroutine a bit since I have a lot of settings that I want to be able to control from within my excel sheet their are a lot of calls required and am looking for a more efficient way to write them.

I tried assigning the workbook and sheets to variables and then using the variable for the sheet i need to pull from to select the range of cells i need however the first instance

Build.Range("B:B").Column.Select.AutoFit

Is giving me the unable to compile error "Method or Data member not found"

I am calling 3 different subroutines all contained within the same module if that has any bearing on things and can post those if necessary but basically they just create files and position things on slides based on the settings provided from this Subroutine

Sub BuildTemplate()
Dim vNewPrimaryTemplatePath As String
Dim vDPI As Integer
Dim WB As Workbook
Dim Settings As Worksheet
Dim Build As Sheets
Dim Entry As Sheets

'Set Global Variables
Set WB = Workbooks("tool.xlsm")             'Set this to the name of the excel file
Set Settings = WB.Sheets("SETTINGS")        'Set this to the name of the settings tab
Set Build = WB.Sheets("BUILD")              'Set this to the name of the build tab
Set Entry = WB.Sheets("ENTRY")              'Set this to the name of the entry tab

    vDPI = Settings.Cells(2, "B").Value

'Adjust column sizes
    Build.Range("B:B").Column.Select.AutoFit
    Build.Range("D:D").Column.Select.AutoFit
    Build.Range("F:F").Column.Select.AutoFit
    Build.Range("H:H").Column.Select.AutoFit

'Create Template Files
MoveFiles
'Open newly created Template File
Dim PPT As PowerPoint.Application
Set PPT = New PowerPoint.Application
    PPT.Visible = True
    PPT.Presentations.Open Filename:=vNewPrimaryTemplatePath
'Add Title Block
Call AddShape(False, "BUILD", Settings.Range("E2"), Settings.Range("E3"),    Settings.Range("E4"), Settings.Range("E5"), Settings.Range("E6"))

'Add Delivery Block
Call AddShape(False, "BUILD", Settings.Range("E9"), Settings.Range("E10"), Settings.Range("E11"), Settings.Range("E12"), Settings.Range("E13"))

'Add Address Block
Call AddShape(False, "BUILD", Settings.Range("E16"), Settings.Range("E17"), Settings.Range("E18"), Settings.Range("E19"), Settings.Range("E20"))

'Add Items
Call AddShape(False, "BUILD", Settings.Range("H2"), Settings.Range("H12"), Settings.Range("H10"), Settings.Range("H16"), Settings.Range("H17"))
Call AddShape(False, "BUILD", Settings.Range("H3"), Settings.Range("H13"), Settings.Range("H10"), Settings.Range("H16"), Settings.Range("H17"))
Call AddShape(False, "BUILD", Settings.Range("H4"), Settings.Range("H14"), Settings.Range("H10"), Settings.Range("H16"), Settings.Range("H17"))
Call AddShape(False, "BUILD", Settings.Range("H5"), Settings.Range("H15"), Settings.Range("H10"), Settings.Range("H16"), Settings.Range("H17"))
Call AddShape(False, "BUILD", Settings.Range("H6"), Settings.Range("H12"), Settings.Range("H11"), Settings.Range("H16"), Settings.Range("H17"))
Call AddShape(False, "BUILD", Settings.Range("H7"), Settings.Range("H13"), Settings.Range("H11"), Settings.Range("H16"), Settings.Range("H17"))
Call AddShape(False, "BUILD", Settings.Range("H8"), Settings.Range("H14"), Settings.Range("H11"), Settings.Range("H16"), Settings.Range("H17"))
Call AddShape(False, "BUILD", Settings.Range("H9"), Settings.Range("H15"), Settings.Range("H11"), Settings.Range("H16"), Settings.Range("H17"))

'Add Summaries
    AddSummary

'Save & Close
    ActivePresentation.SaveAs Filename:=vNewPrimaryTemplatePath, FileFormat:=ppSaveAsDefault
    ActivePresentation.Close

End Sub

Thanks again for any assistance

Was it helpful?

Solution

You don't need Select and you can simplify :

Build.Columns(2).AutoFit

But on a second view, you have misdefined your variables Build and Entry, they should be Worksheet objects and not Sheets collections.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top