Extract Data and filename Macro

In a folder I have multiple files all with the same format

In each file i have a tab called "statement"

data have to be pulled from B,C,D,E,F and G columns

once file directory is selected
from all the files of statement tab
Copy Rows of B,C,D,E,F and G rows which is not 0.00 or copy all with values and 0.00 can be deleted in output file
In an output file copy file name and paste as values what has been copied in the above step

please let me know if I am not clear.
attached input file and sample output in the output tab

I Could see some help in below sites but do not know how put across



Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

in your sample workbook, there isn't much difference in the B:G cell data, relative to zero values.  What am I missing?
NirvanalearnerAuthor Commented:
I get this file every 15 days and the values in currency and combination changes for example i might receive values in AUD_SEK; GBP_SEK; HKD_SEK; NOK_SEK;  and SGD_SEK; NOK_SEK; PLN_SEK in other fortnight

while cell references are remain standard/same the values will be in different cells

and what i have provided here is the sample data. hope i am clear and if you are referring to the output file and file two sorry its my mistake the amount and currency might have changed
I'm a pretty visual person.  Please post a workbook or two that shows me the expected input and expected output.
Determine the Perfect Price for Your IT Services

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden with our free interactive tool and use it to determine the right price for your IT services. Download your free eBook now!

NirvanalearnerAuthor Commented:
Sure. in the attached file i have two tabs as input (2) and Input (3) where i have some number in income, cost, receivables and liabilities. what i would need is where ever the numbers are there for each of those categories (income, cost etc.,) have to be pulled into a sheet. please not input files are different workbooks in a directory

please do let me know if i am not clear still
Will these input files have exclusive categorical non-zero values?

If you have posted representative data, then I can expect that no two (or more) workbooks will ever have a non-zero value in any given category, such as I see in cell D12.
NirvanalearnerAuthor Commented:
If I understand correctly, it can be any combination of data. i will have more than 10 workbooks and some might have value in one category and might be zero in others

The only thing that i am looking is

File name:
Category (example income/revenue etc.,)
Currency (example EUR/SEK)
local and other currency
1. Do these values need to be summed?
2. Are all workbooks in the same folder?
NirvanalearnerAuthor Commented:
no these values need not be summed and yes all files in the same folder
these values need not be summed
Then how do we treat the non-zero data in light of
any combination of data
If not summed, then options are
* first value wins
* last value wins
* random value wins (three or more scenario)
* error message
NirvanalearnerAuthor Commented:
I need the data to be copy pasted in each row this a a consolidation report

here is how it works

i have folder named "Analysis"

       |->File 1
       |->File 2
       |->File 3

In File 1  sheet "statement" tab I have Income ,Costs, Receivables, Liabilities in col B, Currency combination in Col C (example) AUD_SEK and amount in column D:G

output will Category from Col B, Currency from Col C, and amounts from Col D:G

if it takes log time to pick only non zeros even if it can consolidate all files and only tab statmen to one sheet that also will be fine

Picking the non-zero values isn't the issue.  The issue is what to do if a cell has non-zero value in multiple workbooks.

For example, Workbook: File 1.xlsx, worksheet: Input, Cell D12 = 1234.56
Workbook: File 2.xlsx, worksheet: Input, Cell D12 = 789.00

What should the D12 cell value be in the output?
NirvanalearnerAuthor Commented:
those will come in different columns of the out put file

say Workbook: File 1.xlsx, worksheet: Input, Cell D12 = 1234.56 will come in Column D
and Workbook: File 2.xlsx, worksheet: Input, Cell D12 = 789.00 will come in Column E
You've completely lost me.  I haven't a clue what you are trying to do.
NirvanalearnerAuthor Commented:
its a simple thing dont know whats so complicated

get a data from different files into a single file by copy pasting values
At this point, I recommend you click the request attention link and ask for more expert involvement.  I won't get to visit this question until after the weekend.
Subodh Tiwari (Neeraj)Excel & VBA ExpertCommented:
Hi Uday,

You may try something like this.
In the attached, click the button called Extract Data to extract all the relevant data from Statement Sheets from all the files from a selected folder.
The code will prompt you to select a folder where files are saved.
Sub ExtractDataFromStatements()
Dim wb As Workbook, swb As Workbook
Dim ws As Worksheet, sws As Worksheet
Dim slr As Long, lr As Long, lc As Long, i As Long
Dim sRng As Range, sCell As Range
Dim fso As Object
Dim folder As Object
Dim file As Object
Dim SelectedFolder As String

Application.ScreenUpdating = False
Set wb = ThisWorkbook
Set ws = wb.Sheets("Sheet1")

Set fso = CreateObject("Scripting.FileSystemObject")

With Application.FileDialog(msoFileDialogFolderPicker)
   .Title = "Select A Folder!"
   .ButtonName = "Confirm"
   If .Show = -1 Then
      SelectedFolder = .SelectedItems(1)
      Set folder = fso.GetFolder(SelectedFolder)
      MsgBox "You didn't select a folder.", vbExclamation, "Folder Not Selected!"
      Exit Sub
   End If
End With
For Each file In folder.Files
   If InStr(file.Name, wb.Name) = 0 And Left(fso.GetExtensionName(file), 2) = "xl" Then
      Workbooks.Open file
      Set swb = ActiveWorkbook
      Set sws = swb.Sheets("Statement")
      slr = sws.Cells(Rows.Count, 2).End(xlUp).Row
      For i = slr To 10 Step -1
         If Application.Sum(sws.Range("D" & i & ":G" & i)) = 0 Then
         ElseIf sws.Range("D" & i).Value = 0 Then
            sws.Range("D" & i & ":E" & i).Delete shift:=xlToLeft
         ElseIf sws.Range("F" & i).Value = 0 Then
            sws.Range("F" & i & ":G" & i).Delete shift:=xlToLeft
         End If
      Next i
      slr = sws.Cells(Rows.Count, 2).End(xlUp).Row
      Set sRng = sws.Range("B9:E" & slr)
      lc = ws.Cells(4, Columns.Count).End(xlToLeft).Column
      If lc = 1 Then
         sRng.Copy ws.Cells(4, lc)
         ws.Cells(2, lc).Value = Left(file.Name, InStr(file.Name, ".") - 1)
         sRng.Copy ws.Cells(4, lc + 2)
         ws.Cells(2, lc + 2).Value = Left(file.Name, InStr(file.Name, ".") - 1)
      End If
      swb.Close False
   End If
   Set swb = Nothing
Next file
ws.Cells.WrapText = False
Application.ScreenUpdating = True
MsgBox "Task Completed.", vbInformation, "Done!"
End Sub

Open in new window


Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
NirvanalearnerAuthor Commented:
It worked brilliant. my files have some merged cells and formulas how can unmerge all files and paste specials as values in the result file.

You are a genius.
Subodh Tiwari (Neeraj)Excel & VBA ExpertCommented:
Thanks for the feedback.
Can you upload one such sample file?
NirvanalearnerAuthor Commented:
Simply Genius.Thank you so much
Subodh Tiwari (Neeraj)Excel & VBA ExpertCommented:
You're welcome Uday! Glad I could help. :)
Thanks for the feedback.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
.NET Programming

From novice to tech pro — start learning today.