Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Check to see if sheet exists
Hi. Every week I run a timesheet procedure that opens all files within a
folder, and copies a specific section from a specific sheet within each file. Can I first run a procedure that makes sure that the sheet called "timesheet" exists in every file? I can't just add an on error resume next block, becasue I need to identify WHICH files do not have that particular sheet. Any help would be greatly appreciated! Cheers. My code: Sub OpenFiles() 'Opens Files in Folder Dim GetFiles As Variant Dim iFiles As Long Dim nFiles As Long Dim wkbk As Workbook Application.ScreenUpdating = False Application.DisplayAlerts = False GetFiles = Application.GetOpenFilename _ (FileFilter:="Text Files (*.*),*.*", _ Title:="Select Timesheets to Include in SAP PO Upload", MultiSelect:=True) If TypeName(GetFiles) = "Boolean" Then MsgBox "No Files Selected", vbOKOnly, "Nothing Selected" End Else For iFiles = LBound(GetFiles) To UBound(GetFiles) Workbooks.OpenText Filename:=GetFiles(iFiles) Set wkbk = ActiveWorkbook ' With ActiveWorkbook.Sheets("Timesheet").UsedRange ' .Value = .Value ' End With wkbk.Sheets("Timesheet").Range("A10:AE" & Range("G20").End(xlUp).Row).Copy ThisWorkbook.Worksheets("Consol").Range("A" & Consol.Range("E65536").End(xlUp).Offset(1, 0).Row).PasteSpecial Paste:=xlPasteValues wkbk.Close Next iFiles End If 'Duplicate Test Here Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Check to see if sheet exists
Sub OpenFiles() 'Opens Files in Folder Dim GetFiles As Variant Dim iFiles As Long Dim nFiles As Long Dim wkbk As Workbook Application.ScreenUpdating = False Application.DisplayAlerts = False GetFiles = Application.GetOpenFilename _ (FileFilter:="Text Files (*.*),*.*", _ Title:="Select Timesheets to Include in SAP PO Upload", MultiSelect:=True) If TypeName(GetFiles) = "Boolean" Then MsgBox "No Files Selected", vbOKOnly, "Nothing Selected" End Else For iFiles = LBound(GetFiles) To UBound(GetFiles) Workbooks.OpenText Filename:=GetFiles(iFiles) Set wkbk = ActiveWorkbook On Error Resume Next set sh = wkbk.worksheets("TimeSheet") On Error Resume Next if not sh is nothing then ' With ActiveWorkbook.Sheets("Timesheet").UsedRange ' .Value = .Value ' End With wkbk.Sheets("Timesheet").Range("A10:AE" & _ Range("G20").End(xlUp).Row).Copy ThisWorkbook.Worksheets("Consol").Range("A" & _ Consol.Range("E65536").End(xlUp).Offset(1, 0).Row).PasteSpecial _ Paste:=xlPasteValues Else msgbox wkbk.Name & " has no timesheet" End if wkbk.Close Next iFiles End If 'Duplicate Test Here Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub -- Regards, Tom Ogilvy "Steph" wrote in message ... Hi. Every week I run a timesheet procedure that opens all files within a folder, and copies a specific section from a specific sheet within each file. Can I first run a procedure that makes sure that the sheet called "timesheet" exists in every file? I can't just add an on error resume next block, becasue I need to identify WHICH files do not have that particular sheet. Any help would be greatly appreciated! Cheers. My code: Sub OpenFiles() 'Opens Files in Folder Dim GetFiles As Variant Dim iFiles As Long Dim nFiles As Long Dim wkbk As Workbook Application.ScreenUpdating = False Application.DisplayAlerts = False GetFiles = Application.GetOpenFilename _ (FileFilter:="Text Files (*.*),*.*", _ Title:="Select Timesheets to Include in SAP PO Upload", MultiSelect:=True) If TypeName(GetFiles) = "Boolean" Then MsgBox "No Files Selected", vbOKOnly, "Nothing Selected" End Else For iFiles = LBound(GetFiles) To UBound(GetFiles) Workbooks.OpenText Filename:=GetFiles(iFiles) Set wkbk = ActiveWorkbook ' With ActiveWorkbook.Sheets("Timesheet").UsedRange ' .Value = .Value ' End With wkbk.Sheets("Timesheet").Range("A10:AE" & Range("G20").End(xlUp).Row).Copy ThisWorkbook.Worksheets("Consol").Range("A" & Consol.Range("E65536").End(xlUp).Offset(1, 0).Row).PasteSpecial Paste:=xlPasteValues wkbk.Close Next iFiles End If 'Duplicate Test Here Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Check to see if sheet exists
Tom,
Thanks for the quick response! I tried, and it didn't error out when it came across a file with no timesheet, but the message box at the end of your code displaying which file didn't have it never displayed? Thanks again! "Tom Ogilvy" wrote in message ... Sub OpenFiles() 'Opens Files in Folder Dim GetFiles As Variant Dim iFiles As Long Dim nFiles As Long Dim wkbk As Workbook Application.ScreenUpdating = False Application.DisplayAlerts = False GetFiles = Application.GetOpenFilename _ (FileFilter:="Text Files (*.*),*.*", _ Title:="Select Timesheets to Include in SAP PO Upload", MultiSelect:=True) If TypeName(GetFiles) = "Boolean" Then MsgBox "No Files Selected", vbOKOnly, "Nothing Selected" End Else For iFiles = LBound(GetFiles) To UBound(GetFiles) Workbooks.OpenText Filename:=GetFiles(iFiles) Set wkbk = ActiveWorkbook On Error Resume Next set sh = wkbk.worksheets("TimeSheet") On Error Resume Next if not sh is nothing then ' With ActiveWorkbook.Sheets("Timesheet").UsedRange ' .Value = .Value ' End With wkbk.Sheets("Timesheet").Range("A10:AE" & _ Range("G20").End(xlUp).Row).Copy ThisWorkbook.Worksheets("Consol").Range("A" & _ Consol.Range("E65536").End(xlUp).Offset(1, 0).Row).PasteSpecial _ Paste:=xlPasteValues Else msgbox wkbk.Name & " has no timesheet" End if wkbk.Close Next iFiles End If 'Duplicate Test Here Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub -- Regards, Tom Ogilvy "Steph" wrote in message ... Hi. Every week I run a timesheet procedure that opens all files within a folder, and copies a specific section from a specific sheet within each file. Can I first run a procedure that makes sure that the sheet called "timesheet" exists in every file? I can't just add an on error resume next block, becasue I need to identify WHICH files do not have that particular sheet. Any help would be greatly appreciated! Cheers. My code: Sub OpenFiles() 'Opens Files in Folder Dim GetFiles As Variant Dim iFiles As Long Dim nFiles As Long Dim wkbk As Workbook Application.ScreenUpdating = False Application.DisplayAlerts = False GetFiles = Application.GetOpenFilename _ (FileFilter:="Text Files (*.*),*.*", _ Title:="Select Timesheets to Include in SAP PO Upload", MultiSelect:=True) If TypeName(GetFiles) = "Boolean" Then MsgBox "No Files Selected", vbOKOnly, "Nothing Selected" End Else For iFiles = LBound(GetFiles) To UBound(GetFiles) Workbooks.OpenText Filename:=GetFiles(iFiles) Set wkbk = ActiveWorkbook ' With ActiveWorkbook.Sheets("Timesheet").UsedRange ' .Value = .Value ' End With wkbk.Sheets("Timesheet").Range("A10:AE" & Range("G20").End(xlUp).Row).Copy ThisWorkbook.Worksheets("Consol").Range("A" & Consol.Range("E65536").End(xlUp).Offset(1, 0).Row).PasteSpecial Paste:=xlPasteValues wkbk.Close Next iFiles End If 'Duplicate Test Here Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
Check to see if sheet exists
If it didn't avoid that workbook, then you would have gotten an error on the
wkbk.Sheets("Timesheet").Range("A10:AE" & _ line, so it never would be to the msgbox line. Did you get such an error. Possibly above this line wkbk.Sheets("Timesheet").Range("A10:AE" & _ put in set sh = nothing On Error Resume Next set sh = wkbk.worksheets("TimeSheet") On Error Resume Next if not sh is nothing then At the top do dim sh as worksheet This approach works. -- Regards, Tom Ogilvy "Tom Ogilvy" wrote in message ... Sub OpenFiles() 'Opens Files in Folder Dim GetFiles As Variant Dim iFiles As Long Dim nFiles As Long Dim wkbk As Workbook Application.ScreenUpdating = False Application.DisplayAlerts = False GetFiles = Application.GetOpenFilename _ (FileFilter:="Text Files (*.*),*.*", _ Title:="Select Timesheets to Include in SAP PO Upload", MultiSelect:=True) If TypeName(GetFiles) = "Boolean" Then MsgBox "No Files Selected", vbOKOnly, "Nothing Selected" End Else For iFiles = LBound(GetFiles) To UBound(GetFiles) Workbooks.OpenText Filename:=GetFiles(iFiles) Set wkbk = ActiveWorkbook On Error Resume Next set sh = wkbk.worksheets("TimeSheet") On Error Resume Next if not sh is nothing then ' With ActiveWorkbook.Sheets("Timesheet").UsedRange ' .Value = .Value ' End With wkbk.Sheets("Timesheet").Range("A10:AE" & _ Range("G20").End(xlUp).Row).Copy ThisWorkbook.Worksheets("Consol").Range("A" & _ Consol.Range("E65536").End(xlUp).Offset(1, 0).Row).PasteSpecial _ Paste:=xlPasteValues Else msgbox wkbk.Name & " has no timesheet" End if wkbk.Close Next iFiles End If 'Duplicate Test Here Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub -- Regards, Tom Ogilvy "Steph" wrote in message ... Hi. Every week I run a timesheet procedure that opens all files within a folder, and copies a specific section from a specific sheet within each file. Can I first run a procedure that makes sure that the sheet called "timesheet" exists in every file? I can't just add an on error resume next block, becasue I need to identify WHICH files do not have that particular sheet. Any help would be greatly appreciated! Cheers. My code: Sub OpenFiles() 'Opens Files in Folder Dim GetFiles As Variant Dim iFiles As Long Dim nFiles As Long Dim wkbk As Workbook Application.ScreenUpdating = False Application.DisplayAlerts = False GetFiles = Application.GetOpenFilename _ (FileFilter:="Text Files (*.*),*.*", _ Title:="Select Timesheets to Include in SAP PO Upload", MultiSelect:=True) If TypeName(GetFiles) = "Boolean" Then MsgBox "No Files Selected", vbOKOnly, "Nothing Selected" End Else For iFiles = LBound(GetFiles) To UBound(GetFiles) Workbooks.OpenText Filename:=GetFiles(iFiles) Set wkbk = ActiveWorkbook ' With ActiveWorkbook.Sheets("Timesheet").UsedRange ' .Value = .Value ' End With wkbk.Sheets("Timesheet").Range("A10:AE" & Range("G20").End(xlUp).Row).Copy ThisWorkbook.Worksheets("Consol").Range("A" & Consol.Range("E65536").End(xlUp).Offset(1, 0).Row).PasteSpecial Paste:=xlPasteValues wkbk.Close Next iFiles End If 'Duplicate Test Here Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub |
#5
Posted to microsoft.public.excel.programming
|
|||
|
|||
Check to see if sheet exists
I love you, Tom!! Thank you sooo much!!
"Tom Ogilvy" wrote in message ... If it didn't avoid that workbook, then you would have gotten an error on the wkbk.Sheets("Timesheet").Range("A10:AE" & _ line, so it never would be to the msgbox line. Did you get such an error. Possibly above this line wkbk.Sheets("Timesheet").Range("A10:AE" & _ put in set sh = nothing On Error Resume Next set sh = wkbk.worksheets("TimeSheet") On Error Resume Next if not sh is nothing then At the top do dim sh as worksheet This approach works. -- Regards, Tom Ogilvy "Tom Ogilvy" wrote in message ... Sub OpenFiles() 'Opens Files in Folder Dim GetFiles As Variant Dim iFiles As Long Dim nFiles As Long Dim wkbk As Workbook Application.ScreenUpdating = False Application.DisplayAlerts = False GetFiles = Application.GetOpenFilename _ (FileFilter:="Text Files (*.*),*.*", _ Title:="Select Timesheets to Include in SAP PO Upload", MultiSelect:=True) If TypeName(GetFiles) = "Boolean" Then MsgBox "No Files Selected", vbOKOnly, "Nothing Selected" End Else For iFiles = LBound(GetFiles) To UBound(GetFiles) Workbooks.OpenText Filename:=GetFiles(iFiles) Set wkbk = ActiveWorkbook On Error Resume Next set sh = wkbk.worksheets("TimeSheet") On Error Resume Next if not sh is nothing then ' With ActiveWorkbook.Sheets("Timesheet").UsedRange ' .Value = .Value ' End With wkbk.Sheets("Timesheet").Range("A10:AE" & _ Range("G20").End(xlUp).Row).Copy ThisWorkbook.Worksheets("Consol").Range("A" & _ Consol.Range("E65536").End(xlUp).Offset(1, 0).Row).PasteSpecial _ Paste:=xlPasteValues Else msgbox wkbk.Name & " has no timesheet" End if wkbk.Close Next iFiles End If 'Duplicate Test Here Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub -- Regards, Tom Ogilvy "Steph" wrote in message ... Hi. Every week I run a timesheet procedure that opens all files within a folder, and copies a specific section from a specific sheet within each file. Can I first run a procedure that makes sure that the sheet called "timesheet" exists in every file? I can't just add an on error resume next block, becasue I need to identify WHICH files do not have that particular sheet. Any help would be greatly appreciated! Cheers. My code: Sub OpenFiles() 'Opens Files in Folder Dim GetFiles As Variant Dim iFiles As Long Dim nFiles As Long Dim wkbk As Workbook Application.ScreenUpdating = False Application.DisplayAlerts = False GetFiles = Application.GetOpenFilename _ (FileFilter:="Text Files (*.*),*.*", _ Title:="Select Timesheets to Include in SAP PO Upload", MultiSelect:=True) If TypeName(GetFiles) = "Boolean" Then MsgBox "No Files Selected", vbOKOnly, "Nothing Selected" End Else For iFiles = LBound(GetFiles) To UBound(GetFiles) Workbooks.OpenText Filename:=GetFiles(iFiles) Set wkbk = ActiveWorkbook ' With ActiveWorkbook.Sheets("Timesheet").UsedRange ' .Value = .Value ' End With wkbk.Sheets("Timesheet").Range("A10:AE" & Range("G20").End(xlUp).Row).Copy ThisWorkbook.Worksheets("Consol").Range("A" & Consol.Range("E65536").End(xlUp).Offset(1, 0).Row).PasteSpecial Paste:=xlPasteValues wkbk.Close Next iFiles End If 'Duplicate Test Here Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
How to check to see if a sheet with a particular name exists? | Excel Worksheet Functions | |||
check if sheet exists | Excel Discussion (Misc queries) | |||
check if the sheet/tag exists | Excel Worksheet Functions | |||
Check whether data exists in Sheet.. | Excel Programming | |||
check if sheet exists | Excel Programming |