Compile Error

trevormay99

New Member
Joined
Aug 25, 2023
Messages
23
Office Version
  1. 365
Platform
  1. Windows
I am new to VBA and I was trying to copy an already written Macro into a new workbook, however when ran I get sub or function not defined despite the macro running fine in the original workbook. How can I copy the code without this error?
 

Excel Facts

Which came first: VisiCalc or Lotus 1-2-3?
Dan Bricklin and Bob Frankston debuted VisiCalc in 1979 as a Visible Calculator. Lotus 1-2-3 debuted in the early 1980's, from Mitch Kapor.
The error is highlighting "SheetCheck = sheetExists("Pre-meeting")" as the cause

Here is a snippet


VBA Code:
Public Sub ScheduleSortForMeeting()

    Dim WBook As Workbook
    Dim WSheet As Worksheet
    Dim MeetSheet As Worksheet
    Dim RunSheet As Worksheet
    Dim PlanSheet As Worksheet
    Dim PMSMSheet As Worksheet 'Mechanical Stopped PMs Worksheet
'!!! --- No Longer Breaking out Electrical or Production PMs from their Meeting Tabs --- !!!
'    Dim PMSESheet As Worksheet 'Electrical Stopped PMs Worksheet
'    Dim PMSPSheet As Worksheet 'Production Stopped PMs Worksheet
    Dim ElecMeet As Worksheet 'Electrical Meeting Worksheet
    Dim MechMeet As Worksheet 'Mechanical Meeting Worksheet
    Dim ProdMeet As Worksheet 'Production Meeting Worksheet
    Dim PastDueSheet As Worksheet
    Dim FutureSheet As Worksheet
    Dim SheetCheck As Boolean
    Dim MeetName As String
    Dim LastRow As Integer
    Dim LastColumn As Integer
    Dim LastCell As String
    Dim SchedRng As Range 'Pre-Meeting Schedule Range
    Dim PMSERng As Range 'PM Stopped Electrical Range
    Dim WORng As Range 'Work Order Number Range
    Dim PCRng As Range 'Process Condition Range
    Dim WTRng As Range 'Work Order Type Range
    Dim SDRng As Range 'Schedule Date Range
    Dim TDRng As Range 'Target Date Range
    Dim LDRng As Range 'Work Order Long Description Range
    Dim WSRng As Range 'Work Order Status Range
    Dim WDRng As Range 'Work Order Description Range
    Dim ANRng As Range 'Asset Number Range
    Dim CLRng As Range 'Craft Labor Range
    Dim CMDRng As Range 'Craft Meeting Date Range to sort the Craft Meeting Sheets
    Dim NewLastRow As Integer 'New Last Row value on Pre-Meeting Sheet
    Dim NSLastRow, PMSMLastRow As Integer 'Next Sheet Last Row and PM Stopped Mechanical Last Row
    Dim ElecRow, MechRow, MechMWRow, ProdRow, HeadRow As Integer 'Elec, Mech, Mech-MW, and Prod Craft Title Rows
    Dim CMLastRow As Integer 'Craft Meeting Worksheet Last Rows
    Dim ThisWeek, Week1, Week2, Week3, Week4 As Date
    
    Set WBook = ThisWorkbook
    Set WSheet = WBook.ActiveSheet
    WSheet.Name = "Raw"
    MeetName = "Pre-Meeting"

'Set up dates
    Week1 = Date + (10 - Weekday(Date, vbSunday))
    Week2 = Date + (17 - Weekday(Date, vbSunday))
    Week3 = Date + (24 - Weekday(Date, vbSunday))
    Week4 = Date + (31 - Weekday(Date, vbSunday))
    ThisWeek = Week1 - 7
    
'Checking for a Meeting sheet and duplicating data to a new Meeting sheet
    SheetCheck = sheetExists("Pre-Meeting")
    If SheetCheck = True Then
        MsgBox "You already have a ""Pre-Meeting"" tab in this Excel document. Please rename or delete the ""Pre-Meeting"" tab.", vbOKOnly
        Exit Sub
    Else
        WSheet.Copy Before:=WBook.Worksheets(1)
        Set MeetSheet = ActiveSheet
        MeetSheet.Name = MeetName
    End If
 
Upvote 0
The error is highlighting "SheetCheck = sheetExists("Pre-meeting")" as the cause

Here is a snippet


VBA Code:
Public Sub ScheduleSortForMeeting()

    Dim WBook As Workbook
    Dim WSheet As Worksheet
    Dim MeetSheet As Worksheet
    Dim RunSheet As Worksheet
    Dim PlanSheet As Worksheet
    Dim PMSMSheet As Worksheet 'Mechanical Stopped PMs Worksheet
'!!! --- No Longer Breaking out Electrical or Production PMs from their Meeting Tabs --- !!!
'    Dim PMSESheet As Worksheet 'Electrical Stopped PMs Worksheet
'    Dim PMSPSheet As Worksheet 'Production Stopped PMs Worksheet
    Dim ElecMeet As Worksheet 'Electrical Meeting Worksheet
    Dim MechMeet As Worksheet 'Mechanical Meeting Worksheet
    Dim ProdMeet As Worksheet 'Production Meeting Worksheet
    Dim PastDueSheet As Worksheet
    Dim FutureSheet As Worksheet
    Dim SheetCheck As Boolean
    Dim MeetName As String
    Dim LastRow As Integer
    Dim LastColumn As Integer
    Dim LastCell As String
    Dim SchedRng As Range 'Pre-Meeting Schedule Range
    Dim PMSERng As Range 'PM Stopped Electrical Range
    Dim WORng As Range 'Work Order Number Range
    Dim PCRng As Range 'Process Condition Range
    Dim WTRng As Range 'Work Order Type Range
    Dim SDRng As Range 'Schedule Date Range
    Dim TDRng As Range 'Target Date Range
    Dim LDRng As Range 'Work Order Long Description Range
    Dim WSRng As Range 'Work Order Status Range
    Dim WDRng As Range 'Work Order Description Range
    Dim ANRng As Range 'Asset Number Range
    Dim CLRng As Range 'Craft Labor Range
    Dim CMDRng As Range 'Craft Meeting Date Range to sort the Craft Meeting Sheets
    Dim NewLastRow As Integer 'New Last Row value on Pre-Meeting Sheet
    Dim NSLastRow, PMSMLastRow As Integer 'Next Sheet Last Row and PM Stopped Mechanical Last Row
    Dim ElecRow, MechRow, MechMWRow, ProdRow, HeadRow As Integer 'Elec, Mech, Mech-MW, and Prod Craft Title Rows
    Dim CMLastRow As Integer 'Craft Meeting Worksheet Last Rows
    Dim ThisWeek, Week1, Week2, Week3, Week4 As Date
   
    Set WBook = ThisWorkbook
    Set WSheet = WBook.ActiveSheet
    WSheet.Name = "Raw"
    MeetName = "Pre-Meeting"

'Set up dates
    Week1 = Date + (10 - Weekday(Date, vbSunday))
    Week2 = Date + (17 - Weekday(Date, vbSunday))
    Week3 = Date + (24 - Weekday(Date, vbSunday))
    Week4 = Date + (31 - Weekday(Date, vbSunday))
    ThisWeek = Week1 - 7
   
'Checking for a Meeting sheet and duplicating data to a new Meeting sheet
    SheetCheck = sheetExists("Pre-Meeting")
    If SheetCheck = True Then
        MsgBox "You already have a ""Pre-Meeting"" tab in this Excel document. Please rename or delete the ""Pre-Meeting"" tab.", vbOKOnly
        Exit Sub
    Else
        WSheet.Copy Before:=WBook.Worksheets(1)
        Set MeetSheet = ActiveSheet
        MeetSheet.Name = MeetName
    End If

When I checked references, name conflicts with existing module, project, or object library
 
Upvote 0
Is the sheetExists() Function in the same Module?
 
Upvote 0
Can you post the sheetExists() Function as well?
 
Upvote 0
Solution
I pasted the sheetExist() function into a seperate module and it now runs smoothly thank you!
 
Upvote 0

Forum statistics

Threads
1,215,155
Messages
6,123,331
Members
449,098
Latest member
thnirmitha

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top