Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Greetings
I need to modify this code slightly. The change I need to make is as follows... The file that that will be opened has only 1 sheet (as opposed to several) that is named datayyyymmdd. I need to modify the reference from Forecast to looking at the first 4 characters of the sheetname or to sheet1. I tried changing "forecast" to sheet1 and I got a Type Mismatch. Private Sub CommandButton1_Click() Dim myCell As Range Dim myBook As Workbook Dim i As Long Dim r As Range, r1 As Range With Application .DisplayAlerts = False .EnableEvents = False .ScreenUpdating = False End With With Application.FileSearch .NewSearch 'Copy or move this workbook to the folder with 'the files that you want to summarize .LookIn = ThisWorkbook.Path .FileType = msoFileTypeExcelWorkbooks If .Execute() 0 Then For i = 1 To .FoundFiles.Count If .FoundFiles(i) < ThisWorkbook.FullName Then If InStr(1, .FoundFiles(i), "A.xls", vbTextCompare) Then Set myBook = Workbooks.Open(.FoundFiles(i)) myBook.Worksheets("Forecast").Select Set r = myBook.Worksheets("Forecast").Range("BP18:BU18") Set r1 = ThisWorkbook.Worksheets(1). _ Range("B65536").End(xlUp) If r1.Row = 1 Then Set r1 = r1.Offset(1, 0) If Not IsEmpty(r1) Then Set r1 = r1.Offset(1, 0) r.Copy Destination:=r1 myBook.Close SaveChanges:=False End If ' Instr End If ' not thisworkbook Next i End If End With With Application .DisplayAlerts = True .EnableEvents = True .ScreenUpdating = True End With ThisWorkbook.SaveAs Application.GetSaveAsFilename End Sub Thanks!!! |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Sandy
You can use something like this Dim sh As Worksheet For Each sh In mybook.Worksheets If Left(sh, 4) = "data" Then ' code Else 'do nothing End If Next -- Regards Ron de Bruin http://www.rondebruin.nl "Sandy" wrote in message ... Greetings I need to modify this code slightly. The change I need to make is as follows... The file that that will be opened has only 1 sheet (as opposed to several) that is named datayyyymmdd. I need to modify the reference from Forecast to looking at the first 4 characters of the sheetname or to sheet1. I tried changing "forecast" to sheet1 and I got a Type Mismatch. Private Sub CommandButton1_Click() Dim myCell As Range Dim myBook As Workbook Dim i As Long Dim r As Range, r1 As Range With Application .DisplayAlerts = False .EnableEvents = False .ScreenUpdating = False End With With Application.FileSearch .NewSearch 'Copy or move this workbook to the folder with 'the files that you want to summarize .LookIn = ThisWorkbook.Path .FileType = msoFileTypeExcelWorkbooks If .Execute() 0 Then For i = 1 To .FoundFiles.Count If .FoundFiles(i) < ThisWorkbook.FullName Then If InStr(1, .FoundFiles(i), "A.xls", vbTextCompare) Then Set myBook = Workbooks.Open(.FoundFiles(i)) myBook.Worksheets("Forecast").Select Set r = myBook.Worksheets("Forecast").Range("BP18:BU18") Set r1 = ThisWorkbook.Worksheets(1). _ Range("B65536").End(xlUp) If r1.Row = 1 Then Set r1 = r1.Offset(1, 0) If Not IsEmpty(r1) Then Set r1 = r1.Offset(1, 0) r.Copy Destination:=r1 myBook.Close SaveChanges:=False End If ' Instr End If ' not thisworkbook Next i End If End With With Application .DisplayAlerts = True .EnableEvents = True .ScreenUpdating = True End With ThisWorkbook.SaveAs Application.GetSaveAsFilename End Sub Thanks!!! |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Sandy
Sorry, I see that I forgot .Name If Left(sh.Name, 4) = "data" Then -- Regards Ron de Bruin http://www.rondebruin.nl "Ron de Bruin" wrote in message ... Hi Sandy You can use something like this Dim sh As Worksheet For Each sh In mybook.Worksheets If Left(sh, 4) = "data" Then ' code Else 'do nothing End If Next -- Regards Ron de Bruin http://www.rondebruin.nl "Sandy" wrote in message ... Greetings I need to modify this code slightly. The change I need to make is as follows... The file that that will be opened has only 1 sheet (as opposed to several) that is named datayyyymmdd. I need to modify the reference from Forecast to looking at the first 4 characters of the sheetname or to sheet1. I tried changing "forecast" to sheet1 and I got a Type Mismatch. Private Sub CommandButton1_Click() Dim myCell As Range Dim myBook As Workbook Dim i As Long Dim r As Range, r1 As Range With Application .DisplayAlerts = False .EnableEvents = False .ScreenUpdating = False End With With Application.FileSearch .NewSearch 'Copy or move this workbook to the folder with 'the files that you want to summarize .LookIn = ThisWorkbook.Path .FileType = msoFileTypeExcelWorkbooks If .Execute() 0 Then For i = 1 To .FoundFiles.Count If .FoundFiles(i) < ThisWorkbook.FullName Then If InStr(1, .FoundFiles(i), "A.xls", vbTextCompare) Then Set myBook = Workbooks.Open(.FoundFiles(i)) myBook.Worksheets("Forecast").Select Set r = myBook.Worksheets("Forecast").Range("BP18:BU18") Set r1 = ThisWorkbook.Worksheets(1). _ Range("B65536").End(xlUp) If r1.Row = 1 Then Set r1 = r1.Offset(1, 0) If Not IsEmpty(r1) Then Set r1 = r1.Offset(1, 0) r.Copy Destination:=r1 myBook.Close SaveChanges:=False End If ' Instr End If ' not thisworkbook Next i End If End With With Application .DisplayAlerts = True .EnableEvents = True .ScreenUpdating = True End With ThisWorkbook.SaveAs Application.GetSaveAsFilename End Sub Thanks!!! |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Open Excel file from VB and open MACRO | Excel Discussion (Misc queries) | |||
2007 Macro to Open File, Delete Contents, Save New File | Excel Discussion (Misc queries) | |||
Open a file do a macro ( made) and open next succesive file | Excel Programming | |||
Macro to call a file that has a auto open macro in the file itself | Excel Programming | |||
Automate open file, update links, run macro, close and save file | Excel Programming |