Thnx Alan Elston Sir (Doc Sir)
Thnx Alan Elston Sir (Doc Sir)
vba is placed in a seperate file macro.xlsm
there are two files 1.xlsx & 2.xlsx
all files are located in a different place
2.xlsx file is blank file it doesn't have any data
in 1.xlsx i have data (i have attached the sample pic of the same)
now what i want is see the yellow highlighted colour data and if yellow highlighted colour data is greater than 5 or equal to 5 then copy the stock name and paste it to 2.xlsx
i have attached the sample pic of the result it will be pasted to 2.xlsx from 1.xlsx
so plz have a look sir and help me out in solving this problem sir
Hi
There are very many different ways to do something like this.
So this solution would be just one of many ways.
Example:
Before:
_____ Workbook: 1.xlsx ( Using Excel 2007 32 bit )
Worksheet: Sheet1 (2)
Row\Col A B C D E F G H I J K L M 1Stock Name Data Data Data Data Data Data Data Data Data Data Data Data 2ACC 800 700 600 500 400 300 200 100 90 80 70 3ADANIENT 800 700 600 500 400 300 200 100 90 80 70 4ADANIPORTS 800 700 600 500 400 300 200 100 90 80 70 5ADANIPOWER 800 700 600 500 400 3 200 100 90 80 70 6AMARAJABAT 800 700 600 500 400 300 200 100 90 80 70 7AMBUJACEM 800 700 600 500 400 300 200 100 90 80 70 8ONGC 800 700 600 500 400 300 200 100 90 80 70 9
run macro here: http://www.excelfox.com/forum/showth...ll=1#post13059
Output results After running macro
_____ Workbook: 2.xlsx ( Using Excel 2007 32 bit )
Worksheet: Tabelle2
Row\Col A B C 1ACC 500 2ADANIENT 700 3AMARAJABAT 400 4
macro is here : https://imgur.com/Rs0EaVf , and also in uploaded file.
macro is here.JPG
Last edited by DocAElstein; 04-16-2020 at 09:49 PM.
….If you are my competitor, I will try all I can to beat you. But if I do, I will not belittle you. I will Salute you, because without you, I am nothing.
If you are my enemy, we will try to kick the fucking shit out of you…..
Winston Churchill, 1939
Save your Forum..._
_...KILL A MODERATOR!!
Thnx Alot Doc Sir for helping me in solving this problem
All files are located in different path
vba will be placed in a macro.xlsm
i have a file name 1.xls & 2.xls
match column I of 1.xls with column B of 2.xls
If column I of 1.xls matches with column B of 2.xls then do nothing &
if column I of 1.xls doesnt matches with column B of 2.xls then copy and paste the column B & Column I of 1.xls to column A & column B of sheet2 of 2.xls
sheet name can be anything
plz see the sample pic & help me in solving this problem by vba
the bigger pic is 1.xls
the smallest pic is sheet2 of 2.xls (result)
Moderator notice...
Yet again another cross post
https://www.excelguru.ca/forums/show...-condition-met
Last edited by DocAElstein; 05-30-2020 at 03:21 PM. Reason: Yet another cross post
I think you have not explained correctly what you want.
Your question explanation does not match you sample data.
Once again you have incorrectly explained what you want.
This is wrong!!!
If column I of 1.xls matches with column B of 2.xls then do nothing &
if column I of 1.xls doesnt matches with column B of 2.xls then copy and paste the column B & Column I of 1.xls to column A & column B of sheet2 of 2.xls
It is rubbish. It does not explain your test data.
Once again I must try to guess what you want!
This is my guess:
Consider the value in each row of column I of 1.xls, starting from row 2
If the value from that row of column I of 1.xls is also in any row of column B of the first worksheet in 2.xls , then
do nothing.
Else If the value from that row of column I of 1.xls is not to be found in any row of column B of the first worksheet in 2.xls, then do the following:
Copy the value from columns B and I for that row of 1.xls and paste them to columns A and B of the second worksheet of 2.xls
Before:
_____ Workbook: 2.xls ( Using Excel 2007 32 bit )
Worksheet: Sheet1 (2)
Row\Col A B 1Exchange 2NSE 25 3NSE 10583 4NSE 17388 5NSE 100
_____ Workbook: 2.xls ( Using Excel 2007 32 bit )
Worksheet: Sheet2
Row\Col A B C 1 2 3
_____ Workbook: 1.xls ( Using Excel 2007 32 bit )
Worksheet: 1-Sheet1
Row\Col A B C D E F G H I 1Exchange Symbol Series/Expiry Open High Low Prev Close LTP 2NSE ADANIENT EQ 1087 1030 955.5 998.45 1079.9 25 3NSE ACC EQ 148.05 27.75 25.65 25.65 146.5 22 4NSE DLF EQ 265 419.7 350.05 387.25 267.15 10583 5NSE AMBUJACEM EQ 30.4 155.8 142.55 145.85 29.95 17388 6NSE AMARAJABAT EQ 502 514.85 502 499.05 507.45 100
After results
_____ Workbook: 2.xls ( Using Excel 2007 32 bit )
Worksheet: Sheet2
Row\Col A B C 1ACC 22 2
Macro:
Code:Sub Step11() ' http://www.excelfox.com/forum/showthread.php/2421-copy-and-paste-by-VBA-based-on-criteria?p=13110&viewfull=1#post13110 http://www.excelfox.com/forum/showthread.php/2458-Copy-and-paste-the-data-if-condition-met Rem 1 Worksheets info Dim Wb1 As Workbook, Wb2 As Workbook ' If the workbook is already open , then we can refer to it using the workbooks collection object of open workbooks, Workbooks(" ") Set Wb1 = Workbooks("1.xls") ' Workbooks("1.xlsx") ' Workbooks("sample1.xlsx") ' Set Wb1 = Workbooks.Open(ThisWorkbook.Path & "\1.xls") ' w1 = Workbooks.Open("C:\Users\WolfieeeStyle\Desktop\1.xls") ' change the file path If the workbook is already open , then we can refer to it using the workbooks collection object of open workbooks, Workbooks(" ") Set Wb2 = Workbooks("2.xls") ' Workbooks("2.xlsx") ' Workbooks("sample2.xlsx") ' Set Wb2 = Workbooks.Open(ThisWorkbook.Path & "\FundsCheck.xlsb") ' w2 = Workbooks.Open("C:\Users\WolfieeeStyle\Desktop\FundsCheck.xlsb") ' change the file path If the workbook is already open , then we can refer to it using the workbooks collection object of open workbooks, Workbooks(" ") Dim Ws1 As Worksheet, Ws2 As Worksheet, Ws22 As Worksheet Set Ws1 = Wb1.Worksheets.Item(1) ' Set Ws1 = Wb1.Worksheets("anything") ' sheet name can be anything Set Ws2 = Wb2.Worksheets.Item(1) ' ' Set Ws2 = Wb2.Worksheets("anything") Set Ws22 = Wb2.Worksheets.Item(2) Dim Lr1 As Long, Lr2 As Long, Lr As Long, Lr22 As Long Let Lr1 = Ws1.Range("A" & Ws1.Rows.Count).End(xlUp).Row ' http://www.excelfox.com/forum/showthread.php/2345-Appendix-Thread-(-Codes-for-other-Threads-HTML-Tables-etc-)?p=11466&viewfull=1#post11466 Making Lr dynamic ( using rng.End(XlUp) for a single column. ) Let Lr2 = Ws2.Range("A" & Ws1.Rows.Count).End(xlUp).Row ' Let Lr = IIf(Lr2 > Lr1, Lr2, Lr1) Rem 2 do it Dim cnt For cnt = 2 To Lr2 Dim VarMtch As Variant Let VarMtch = Application.Match(CStr(Ws1.Range("I" & cnt & "").Value), Ws2.Range("B2:B" & Lr2 & ""), 0) ' We look for the string value from each row in column I of Ws1 in the range of column B in Ws2 If Not IsError(VarMtch) Then ' If we have a match, then Application.Match will return an integer of the position along(down) where the match is found ' do nothing Else ' Application.Match will return a VB error string if no match could be found Ws1.Range("B" & cnt & ",I" & cnt & "").Copy ' if ranges are "in line" - that is to say have the same "width" ( in this example a single row width ) , then VBA lets us copy this to the clipboard Let Lr22 = Lr22 + 1 ' next free row in second worksheet of 2.xls Ws22.Range("A" & Lr22 & "").PasteSpecial Paste:=xlPasteValues ' Pasting of copied values which were "in line" allows us to paste out, but the missing in between bits ( columns in this example ) are missed out - the ranges are put together. Co incidentally we want this output in this example End If Next cnt End Sub
Last edited by DocAElstein; 04-23-2020 at 04:09 PM.
….If you are my competitor, I will try all I can to beat you. But if I do, I will not belittle you. I will Salute you, because without you, I am nothing.
If you are my enemy, we will try to kick the fucking shit out of you…..
Winston Churchill, 1939
Save your Forum..._
_...KILL A MODERATOR!!
Copy and Paste based on comparisons and calculations of cells in two excel files, 1 might be .csv file .Opened in Excel=Fail Chaos
Moderator Notice:
This is the start of two months of wasting everybodies time going around in circles making a total mess in posts everywhere because he refuses to understand anything at all about Text files.
The biggest problem is in using an Excel object to open a .csv File, which is usually not a good idea.
Sometimes you might get the impression he is understanding at least a small part of the problem, but wither it is just co incidence that what he has pasted infers that and he has no idea what he is writing, or two seconds later he forgets and we are back to the starting point and he starts again duplicating cross posting the same question… - I think there is a good chance the OP is insane, and certainly a total dim pig shit for brains. Physical violence is I think the only hope for him, and if all else fails then he should be put to death
3 Bans and he still just goes off and starts again at another forum, gets no where , annoys everyone, then comes back here again and starts agin here making exactly the same mistakes...
All files are located in a different path
vba code will be placed in a macro.xlsm
i have two files 1.xls & 2.csv
check wheather column H of 1.xls is greater or lower than column D of 1.xls
if column H of 1.xls is greater than column D of 1.xls then match column I of 1.xls with column B of 2.csv & if it matches then put this symbol "<" in column D of 2.csv & copy paste the data of column K of 1.xls in column E of 2.csv
or
if column H of 1.xls is lower than column D of 1.xls then match column I of 1.xls with column B of 2.csv & if it matches then put this symbol ">" in column D of 2.csv & copy paste the data of column K of 1.xls in column E of 2.csv
save and close both the file
plz help me in solving this problem by vba
i have a vba code but has a little error plz have a look sir
Code:Sub STEP8() Dim Wb1 As Workbook, Wb2 As Workbook Dim Ws1 As Worksheet, Ws2 As Worksheet Dim rg1 As Range, i As Long, c As Range Set Wb1 = Workbooks.Open("C:\Users\WolfieeeStyle\Desktop\1.xls") Set Wb2 = Workbooks.Open("C:\Users\WolfieeeStyle\Desktop\Alert..csv") Set Ws1 = Wb1.Worksheets.Item(1) Set Ws2 = Wb2.Worksheets.Item(1) Set rg1 = Ws1.Cells(1, 1).CurrentRegion With rg1 For i = 2 To rg1.Rows.Count If .Cells(i, 8) > .Cells(i, 4) Then Set c = Ws2.Columns(2).Find(.Cells(i, 9)) If Not c Is Nothing Then 'if match found c.Offset(, 2).Value = "<" c.Offset(, 3).Value = .Cells(i, 11) End If Else Set c = Ws2.Columns(2).Find(.Cells(i, 9)) If Not c Is Nothing Then 'if match found c.Offset(, 2).Value = ">" c.Offset(, 3).Value = .Cells(i, 11) End If End If Next i End With End Sub
I was unable to upload alert..csv so i am uploading a pic of the same sir So plz have a look and help me out in solving this problem Sir
Last edited by DocAElstein; 06-25-2020 at 12:18 PM.
The test data in 1.xls is much too large for help in a forum. There are too many rows to post.
We just need enough data to test macro.
It is difficult in a forum to work with many rows.
Reduce the rows
We need just enough data to test.
Pick your test data carefully.
Just use a few rows. But pick your test data carefully so that it test all scenarios
What does this mean? You must give more details
From where do you have this macro(vba code)?
Alan
….If you are my competitor, I will try all I can to beat you. But if I do, I will not belittle you. I will Salute you, because without you, I am nothing.
If you are my enemy, we will try to kick the fucking shit out of you…..
Winston Churchill, 1939
Save your Forum..._
_...KILL A MODERATOR!!
https://www.ozgrid.com/forum/index.p...38#post1234138
I have uploaded the sample file plz have a relook Doc sir
highlighted colour is only for understanding purpose in actual file there will not be aby highlighted colour
I see no problem with the macro from dangelor
It seems to work when I test – See here:- : http://www.excelfox.com/forum/showth...ll=1#post13124
http://www.excelfox.com/forum/showth...ll=1#post13127
I see no problem.. I get the correct results.
Or maybe this is problem in your macro …..
https://imgur.com/cfLWkz6Code:Workbooks.Open("C:\Users\WolfieeeStyle\Desktop\Alert..csv")
Two Dots.JPG
Alan
Last edited by DocAElstein; 04-26-2020 at 03:59 PM.
….If you are my competitor, I will try all I can to beat you. But if I do, I will not belittle you. I will Salute you, because without you, I am nothing.
If you are my enemy, we will try to kick the fucking shit out of you…..
Winston Churchill, 1939
Save your Forum..._
_...KILL A MODERATOR!!
Bookmarks