Need File Name at the Time of Consolidate

ie6799u

New Member
Joined
Mar 21, 2017
Messages
17
Hi Team,

Please help me how to get the file name when I use a macro at the time of consolidate.
Example, I have Book1, Book2 and Book3 and MasterBook in a same folder.
At the time of consolidate, i need from which file the data has been copied to the MasterBook?

Is it possible? Please advise.

I'm new to VBA macro. So please help me.
 
Last edited:

Excel Facts

Repeat Last Command
Pressing F4 adds dollar signs when editing a formula. When not editing, F4 repeats last command.
Hi Team,

Please help me how to get the file name when I use a macro at the time of consolidate.
Example, I have Book1, Book2 and Book3 and MasterBook in a same folder.
At the time of consolidate, i need from which file the data has been copied to the MasterBook?

Is it possible? Please advise.

I'm new to VBA macro. So please help me.

When seeking assistance with coding problems, please post the code you need help with, or at least the part of the code that you need help with.
 
Upvote 0
I Have the below code.

Code:
Public strFileName As String
Public currentWB As Workbook
Public dataWB As Workbook
Public strCopyRange As String


Sub GetData()
    Dim strWhereToCopy As String, strStartCellColName As String
    Dim strListSheet As String
    
    strListSheet = "List"
    
    On Error GoTo ErrH
    Sheets(strListSheet).Select
    Range("B2").Select
    
    'this is the main loop, we will open the files one by one and copy their data into the masterdata sheet
    Set currentWB = ActiveWorkbook
    GetFileNames
    Do While ActiveCell.Value <> ""
        
        strFileName = ActiveCell.Offset(0, 1) & ActiveCell.Value
        strCopyRange = ActiveCell.Offset(0, 2) & ":" & ActiveCell.Offset(0, 3)
        strWhereToCopy = ActiveCell.Offset(0, 4).Value
        strStartCellColName = Mid(ActiveCell.Offset(0, 5), 2, 1)
        
        Application.Workbooks.Open strFileName, UpdateLinks:=False, ReadOnly:=True
        Set dataWB = ActiveWorkbook
        
        Range(strCopyRange).Select
        sbUnMergeRange
        Selection.Copy
        currentWB.Activate
        Sheets(strWhereToCopy).Select
        lastRow = LastRowInOneColumn(strStartCellColName)
        Cells(lastRow + 1, 1).Select
        
        Selection.PasteSpecial xlPasteValues, xlPasteSpecialOperationNone
        Application.CutCopyMode = False
        dataWB.Close False
        Sheets(strListSheet).Select
        ActiveCell.Offset(1, 0).Select
    Loop
    Worksheets(ActiveSheet.Index + 1).Select
    MoveData
    Rows(1).EntireRow.Delete
    Rows(1).EntireRow.Delete
    Rows(1).EntireRow.Delete
    Rows(1).EntireRow.Delete
    Exit Sub
    
ErrH:
    MsgBox "It seems some file was missing. The data copy operation is not complete."
    Exit Sub
    
   
    
End Sub


Public Function LastRowInOneColumn(col)
    'Find the last used row in a Column: column A in this example
    'http://www.rondebruin.nl/last.htm
    Dim lastRow As Long
    With ActiveSheet
    lastRow = .Cells(.Rows.Count, col).End(xlUp).Row
    End With
    LastRowInOneColumn = lastRow
End Function


Sub GetFileNames()
    Dim sPath As String
    Dim sFile As String
    Dim iRow As Integer
    Dim iCol As Integer
    Dim splitFile As Variant


    'specify directory to use - must end in "\"
    sPath = "U:\Srikanth\PCM\Charges\Next\"


    iRow = 1
    sFile = Dir(sPath)
    Do While sFile <> ""
        iRow = iRow + 1
        splitFile = Split(sFile, "-")
        For iCol = 0 To UBound(splitFile)
            Sheet1.Cells(iRow, iCol + 2) = splitFile(iCol)
        Next iCol
        sFile = Dir     ' Get next filename
    Loop
End Sub


Sub sbUnMergeRange()
Range("A1:O1000").UnMerge
End Sub
Sub MoveData()
Dim rng As Range
Application.ScreenUpdating = False
On Error Resume Next
Set rng = [J:J].SpecialCells(xlCellTypeBlanks)
On Error GoTo 0
If Not rng Is Nothing Then
  rng.FormulaR1C1 = "=IF(RC[-1]="""","""",RC[-1])"
  [J:J] = [J:J].Value
End If
rng.Offset(0, -1).ClearContents
End Sub

It will consolidate the files from the mentioned path.
My requirement is to get the file name in the "MasterData" Sheet in ColumnP.
 
Upvote 0
I think you can just insert the line that is highlighted as shown below to put the file name in column P

Code:
lastRow = LastRowInOneColumn(strStartCellColName)
Cells(lastRow + 1, 1).Select        
Selection.PasteSpecial xlPasteValues, xlPasteSpecialOperationNone
[COLOR=#ff8c00]Selection.Offset(, 15) = strFileName[/COLOR]
Application.CutCopyMode = False
 
Last edited:
Upvote 0

Forum statistics

Threads
1,215,064
Messages
6,122,937
Members
449,094
Latest member
teemeren

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