You are on page 1of 4

EXCEL MACRO 1 (Organize info from multiple files into 1) Sub MergeHorizontally() Dim MyPath As String, FilesInPath As String

Dim MyFiles() As String Dim SourceCcount As Long, FNum As Long Dim mybook As Workbook, BaseWks As Worksheet Dim sourceRange As Range, destrange As Range Dim Cnum As Long, CalcMode As Long ' Change this to the path\folder location of the files. MyPath = "C:\Users\Ron\test" ' Add a slash at the end of path if needed. If Right(MyPath, 1) <> "\" Then MyPath = MyPath & "\" End If ' If there are no Excel files in the folder, exit. FilesInPath = Dir(MyPath & "*.xl*") If FilesInPath = "" Then MsgBox "No files found" Exit Sub End If ' Fill in the myFiles array with the list of Excel files in ' the search folder. FNum = 0 Do While FilesInPath <> "" FNum = FNum + 1 ReDim Preserve MyFiles(1 To FNum) MyFiles(FNum) = FilesInPath FilesInPath = Dir() Loop ' Change the application properties. With Application CalcMode = .Calculation .Calculation = xlCalculationManual .ScreenUpdating = False .EnableEvents = False End With ' Add a new workbook with one sheet. Set BaseWks = Workbooks.Add(xlWBATWorksheet).Worksheets(1) Cnum = 1 ' Loop through all of the files in the myFiles array. If FNum > 0 Then For FNum = LBound(MyFiles) To UBound(MyFiles) Set mybook = Nothing On Error Resume Next Set mybook = Workbooks.Open(MyPath & MyFiles(FNum)) On Error GoTo 0 If Not mybook Is Nothing Then On Error Resume Next Set sourceRange = mybook.Worksheets(1).Range("A1:A10")

If Err.Number > 0 Then Err.Clear Set sourceRange = Nothing Else ' If the source range uses all of the rows ' then skip this file. If sourceRange.Rows.Count >= BaseWks.Rows.Count Then Set sourceRange = Nothing End If End If On Error GoTo 0 If Not sourceRange Is Nothing Then SourceCcount = sourceRange.Columns.Count If Cnum + SourceCcount >= BaseWks.Columns.Count Then MsgBox "There are not enough columns in the sheet." BaseWks.Columns.AutoFit mybook.Close savechanges:=False GoTo ExitTheSub Else ' Copy the file name in the first row. With sourceRange BaseWks.Cells(1, Cnum). _ Resize(, .Columns.Count).Value = MyFiles(FNu m) End With ' Set the destination range. Set destrange = BaseWks.Cells(2, Cnum) ' Copy the values from the source range ' to the destination range. With sourceRange Set destrange = destrange. _ Resize(.Rows.Count, .Columns.Count) End With destrange.Value = sourceRange.Value Cnum = Cnum + SourceCcount End If End If mybook.Close savechanges:=False End If Next FNum BaseWks.Columns.AutoFit End If ExitTheSub: 'Restore ScreenUpdating, Calculation and EnableEvents With Application .ScreenUpdating = True .EnableEvents = True .Calculation = CalcMode End With End Sub

EXCEL MACRO 2 (Pull data from generated sheet generated into master sheet) Sub Test() Dim SourceWorkSheet As Worksheet Dim Condition As String Set SourceWorkSheet = Application.InputBox("Select any cell on the source data s heet", , , , , , , 8).Parent ThisWorkbook.Activate Sheets("Encapsulation Data").Activate Condition = Application.InputBox("Select any cell in column 2 with the correct c ondition", , , , , , , 8).Value For N = 2 To SourceWorkSheet.Cells(SourceWorkSheet.Rows.Count, 1).End(xlUp).Row For M = 3 To Cells(Rows.Count, 1).End(xlUp).Row If Cells(M, 1) = SourceWorkSheet.Cells(N, 1) And Cells(M, 2) = Condition Then SourceWorkSheet.Range(SourceWorkSheet.Cells(N, 3), SourceWorkSheet.C ells(N, 12)).Copy Destination:=Cells(M, 4) End If Next M Next N End Sub

EXCEL MACRO 3 (Sort out values of 100) Sub aaa() Dim DataSH As Worksheet, OutSH As Worksheet Set DataSH = Sheets("Sheet1") Set OutSH = Sheets("Sheet2") OutSH.Cells.ClearContents DataSH.Activate For i = 2 To 14 Step 2 Set findit = Columns(i).Find(what:=100, lookat:=xlWhole) If Not findit Is Nothing Then firstadd = findit.Address Do outrow = OutSH.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row OutSH.Cells(outrow, 1).Value = Cells(1, i).Value OutSH.Cells(outrow, 2).Value = findit.Offset(0, -1).Value Set findit = Columns(i).Find(what:=100, lookat:=xlWhole, after:=findit) Loop Until findit.Address = firstadd End If Next i End Sub

You might also like