Version 1 link: http://naumankhan.blogspot.com/2010/09/vbamacro-code-for-excel-2010-to-combine.html
Upgrades in Version 2:
· Auto save of all output excel files
· Text File generation and auto save for all output files
· Detection for already existing files
· One Button Execution
1: Sub PSR()
2: '
3: ' PSR Macro
4: '
5: Application.DisplayAlerts = False ' disabling popup alerts
6: Application.ScreenUpdating = False ' disabling screen updating
7:
8: Dim Week1 As String ' path of the input/output files
9: Dim Path1 As String ' path of the input/output files
10: Dim Filename1 As String ' name of PSR input file 1
11: Dim Filename2 As String ' name of PSR input file 2
12: Dim Filename3 As String ' name of PSR output file
13:
14: Windows("Dashboard Macros.xlsm").Activate ' activate dashboard window
15: Sheets("Macros").Select ' activate dashboard sheet
16: Path1 = Range("C6").Text ' read path, filenames and week
17: Filename1 = Range("C8").Text
18: Filename2 = Range("C9").Text
19: Filename3 = Range("C10").Text
20: Week1 = Range("C5").Text
21:
22: On Error Resume Next
23: If Workbooks(Filename3) Is Nothing Then ' checking if output file is not already open
24: If Dir(Path1 + Filename3) = vbNullString Then ' checking if file already doesn't exists
25: 'File doesn't exist then Create PSR output file
26: Dim MyXL As Object 'Excel Application Object
27: Set MyXL = CreateObject("Excel.Application") 'Create the Excel Application Object
28: MyXL.Workbooks.Add 'Create new Excel Workbook
29: MyXL.Worksheets(1).SaveAs (Path1 + Filename3) 'Save the Excel File
30: MyXL.Quit 'Close the Excel Window and / or Application in background
31: Else ' if file exists, display msg and exit macro
32: MsgBox "Output file already exists! please delete it before executing this macro"
33: Exit Sub
34: End If
35: Else
36: MsgBox "Output file already exists! please delete it before executing this macro"
37: Exit Sub
38: End If
39:
40: Workbooks.Open Filename:=Path1 + Filename1 ' open PSR input file 1
41: Sheets("Sheet1").Select ' activate sheet
42: Range("A10").Select ' select fixed cell
43: Range(Selection, Selection.End(xlToRight)).Select ' selecting all columns
44: Range(Selection, Selection.End(xlDown)).Select ' selecting all rows
45: Selection.Copy ' copying selection
46:
47: Workbooks.Open Filename:=Path1 + Filename3 ' open PSR output file
48: Windows(Filename3).Activate ' activating output file
49: Sheets("Sheet1").Select ' activate sheet
50: Range("A1").Select ' select cell
51: ActiveSheet.Paste ' pasting PSR input file 1 values in output file
52:
53: Workbooks.Open Filename:=Path1 + Filename2 ' open PSR input file 2
54: Sheets("Sheet1").Select ' activate sheet
55: Range("A11").Select ' select cell
56: Range(Selection, Selection.End(xlToRight)).Select ' selecting all columns
57: Range(Selection, Selection.End(xlDown)).Select ' selecting all rows
58: Application.CutCopyMode = False ' disabling copy/paste popup msgs
59: Selection.Copy ' copying selection
60:
61: Windows(Filename3).Activate ' activating output file
62: Sheets("Sheet1").Select ' activating sheet
63: Cells(Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row, 1).Select ' selecting first empty cell in 1st column
64: ActiveSheet.Paste ' pasting PSR input file 2 values in output file
65:
66: Workbooks(Filename1).Close SaveChanges:=False ' closing PSR input file 1
67: Workbooks(Filename2).Close SaveChanges:=False ' closing PSR input file 2
68:
69: Columns("A:A").Select ' select 1st column
70: Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
71: TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
72: Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
73: :=Array(Array(1, 4), Array(2, 2)), TrailingMinusNumbers:=True ' dividing 1st column into 2 columns containing date and time, setting first column's datetype = date
74: Range("A1").FormulaR1C1 = "Date" ' Setting 1st column's header = Date
75: Columns("B:B").Select ' select 2nd column
76: Selection.NumberFormat = "h:mm:ss;@" ' setting datatype = time
77: Columns("D:D").Select ' selecting 4th column
78: Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove ' inserting a new blank column
79: Columns("C:C").Select ' selecting 3rd column
80: Selection.TextToColumns Destination:=Range("C1"), DataType:=xlDelimited, _
81: TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
82: Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
83: :="/", FieldInfo:=Array(Array(1, 2), Array(2, 2)), TrailingMinusNumbers:=True ' dividing 3rd column into 2 columns containing msc name and node, setting datetypes = txt
84: Range("C1").FormulaR1C1 = "MSC" ' Setting 3rd column's header = MSC
85: Range("D1").FormulaR1C1 = "Node" ' Setting 4th column's header = Node
86:
87: Columns("A:A").Select ' select 1st column
88: Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove ' inserting a new blank column
89: Range("A1").FormulaR1C1 = "Week" ' Setting 1st column's header = Week
90: Range("A2").FormulaR1C1 = Week1 ' Setting 1st column's 2nd value = Week from macros sheet
91: Range("A2").Select ' selecting 1st column's 2nd cell
92: Selection.AutoFill Destination:=Range(Cells(2, 1), Cells(ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row, 1)), Type:=xlFillCopy ' filling 1st column with week from macros sheet
93:
94: Range("R1").FormulaR1C1 = "Voice PSR" ' Setting 18th column's header = Voice PSR
95: Range("S1").FormulaR1C1 = "SMS PSR" ' Setting 19th column's header = SMS PSR
96:
97: Range("R2").FormulaR1C1 = "=IF(RC[-10]<>0,((RC[-4]+RC[-3])/RC[-10]%),"""")" ' inserting Voice PSR formula in 18th Column's 2nd cell
98: Range("S2").FormulaR1C1 = "=IF(RC[-9]<>0,((RC[-3]+RC[-2])/RC[-9]%),"""")" ' inserting SMS PSR formula in 19th Column's 2nd cell
99:
100: Range("R2").Select ' coping formula in whole 18th column
101: Selection.AutoFill Destination:=Range(Cells(2, 18), Cells(ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row, 18))
102: Range("S2").Select ' coping formula in whole 19th column
103: Selection.AutoFill Destination:=Range(Cells(2, 19), Cells(ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row, 19))
104:
105: Windows(Filename3).Activate 'activating output file
106: ActiveWorkbook.Close SaveChanges:=True 'saving and closing output file
107: Workbooks.Open Filename:=Path1 + Filename3 'opening output file again
108: Windows(Filename3).Activate 'activating output file
109: ActiveWorkbook.SaveAs Path1 + "PSR.txt", FileFormat:=-4158 'saving output file as txt file
110: Windows("PSR.txt").Activate 'activating txt file
111: ActiveWindow.Close SaveChanges:=True 'saving and closing txt file
112: Workbooks.Open Filename:=Path1 + Filename3 'opening output file
113: Windows("Dashboard Macros.xlsm").Activate ' activate dashboard window
114:
115: Application.DisplayAlerts = True ' enabling popup alerts
116: Application.ScreenUpdating = True ' enabling screen updating
117: End Sub
1: Sub Execute() 'calling all macros
2: Call PSR
3: Call HOSR
4: Call SMS
5: Call MASR
6: Call CSSR
7: Call LUSR
8: Call CM_AUTH_CIPHER
9: Call VLR
10: Call MOCSR
11: Call MTCSR
12: End Sub
References:
Saving Excel file as txt or other extensions:
http://msdn.microsoft.com/en-us/library/ff458119%28office.11%29.aspx
http://blogs.msdn.com/b/excel/archive/2009/07/07/use-the-vba-saveas-method-in-excel-2007.aspx
http://www.techonthenet.com/excel/formulas/dir.php
http://www.thezcorp.com/VBACodeSamples.aspx
Deleting a file
http://www.exceltip.com/st/Basic_file_and_folder_examples_using_VBA_in_Microsoft_Excel/443.html
http://zo-d.com/blog/archives/programming/vba-writing-to-a-text-file-ms-project-excel.html
Calling multiple macros
http://www.ozgrid.com/forum/showthread.php?t=40993&page=1
-urShadow
WOW just what I was searching for. Came here by
ReplyDeletesearching for h
Here is my blog post ... homepage ()
This site really has all of the information and facts I needed about
ReplyDeletethis subject and didn't know who to ask.
my web page ... website ()
Great site you have got here.. It's hard to find good quality writing
ReplyDeletelike yours these days. I seriously appreciate individuals like you!
Take care!!
Feel free to surf to my blog post - web site ()
I'm really impressed with your writing skills and also with the layout on your weblog.
ReplyDeleteIs this a paid theme or did you modify it yourself? Anyway keep up
the nice quality writing, it is rare to see a nice
blog like this one nowadays.
my web blog; web site []
I know this if off topic but I'm looking into starting my own blog and was curious what all is needed to get set
ReplyDeleteup? I'm assuming having a blog like yours would cost a pretty penny?
I'm not very web savvy so I'm not 100% certain. Any tips
or advice would be greatly appreciated. Appreciate it
Also visit my web page :: homepage, ,
I was curious if you ever considered changing
ReplyDeletethe layout of your blog? Its very well written; I love
what youve got to say. But maybe you could a little more in the way of content so people could connect
with it better. Youve got an awful lot of text for only having one or 2
pictures. Maybe you could space it out better?
Here is my web site; web site []
At this time it appears like Drupal is the best blogging platform
ReplyDeleteavailable right now. (from what I've read) Is that what
you are using on your blog?
my webpage; homepage ()
It's an awesome post in support of all the internet viewers; they will get benefit from it I am sure.
ReplyDeleteMy web site: site ()
Amazing! This blog looks just like my old one! It's on a completely different topic but it has pretty much
ReplyDeletethe same layout and design. Wonderful choice of colors!
my web page web page, ,
You really make it seem so easy with your presentation but I find this topic to be really something that I think I would never understand.
ReplyDeleteIt seems too complicated and very broad for me. I'm looking forward
for your next post, I will try to get the hang of it!
Here is my website :: homepage ()
Have you ever considered publishing an ebook or guest authoring on other sites?
ReplyDeleteI have a blog based on the same ideas you discuss and would love to have you share some
stories/information. I know my viewers would appreciate your work.
If you are even remotely interested, feel free
to send me an e mail.
Look at my web blog; web site ()
I have been exploring for a little for any high-quality articles or blog posts on this kind of house .
ReplyDeleteExploring in Yahoo I finally stumbled upon this website.
Reading this information So i'm glad to convey that I have an incredibly excellent uncanny feeling I came
upon exactly what I needed. I such a lot surely will make sure to do not overlook this site and provides it a glance
on a relentless basis.
Also visit my web site :: web page []
Thankfulness to my father who shared with me about this webpage, this weblog is really amazing.
ReplyDeleteMy web blog - homepage - -