473,405 Members | 2,310 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,405 software developers and data experts.

Excel VBA problem

63
--------------------------------------------------------------------------------

I have a bit of visual basic code in an excel spreadsheet that I need some help with. I am attempting to search a file called "TO Cancellations2.xls" for names and for each name that it finds that matches the list of names on the "counterparties" sheet of a file called Time Option Template WIP.xls I want the whole line copied and pasted into a new excel worksheet that should have the counterparty name and then FXTOX.xls after it.

The TO Cancellation2.xls file looks like this

Counterparty
Oy AB 109385 H2 07
Oy AB 109389 H1 08
Oy AB 109390 H2 08
Oy AB 109387 H2 07
Oy AB 109388 H1 08
AB (Sweden) 109391 H2 08

The code below works ok but if the TO Cancellations2.xls file has the same counterparty more than once (as in this case with 5 different records against Oy AB) then instead of saving all 5 records into one file it overwrites the file each time with each of these 5 instances - only keeping the last record. Can anyone suggest any ideas on how to alter this code so that if there is more than one row countaining the same counterparty name it saves all of the rows to the same file and doesn't keep overwriting like it is currently doing?


Sheets("Counterparties").Select

' Initialise Counter
Countz = 0
For Each c In Range("A1:A100")
If c.Value = "" Then
Exit For
Else
Countz = Countz + 1
End If
Next c

Sheets("Data2").Select (NB data2 is a sheet in the Time Option Template WIP.xls file)
Range("A1").Select

For Counter = 1 To Countz

Set Matching = Worksheets("Counterparties").Cells(Counter, 1)
Set Matching2 = Worksheets("Counterparties").Cells(Counter + 1, 1)
Set Matching3 = Worksheets("Counterparties").Cells(Counter + 2, 1)
Set Matching4 = Worksheets("Counterparties").Cells(Counter + 3, 1)
Set Matching5 = Worksheets("Counterparties").Cells(Counter + 4, 1)
Set Matching6 = Worksheets("Counterparties").Cells(Counter + 5, 1)
Set Matching7 = Worksheets("Counterparties").Cells(Counter + 6, 1)

For Each c In Range("A1:A5001")

If c.Value = Matching.Value Then
If c.Offset(0, 0).Value = Matching2.Value Or c.Offset(0, 0).Value = Matching3.Value Or c.Offset(0, 0).Value = Matching4.Value Or c.Offset(0, 0).Value = Matching5.Value Or c.Offset(0, 0).Value = Matching6.Value Or c.Offset(0, 0).Value = Matching7.Value Then
Else
c.EntireRow.Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Cells(2, 1).Select
stdocname = "Q:\Dealing Room\Dealing room administration\Admin Things\Batch Report Masters\Outputs\" & Matching.Value & " FXTOX.xls"
ActiveWorkbook.SaveAs Filename:=stdocname _
, FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Windows("Time Option Template WIP.xls").Activate
stdocname = Matching.Value & " FXTOX.xls"
Counti = 2
Do Until c.Offset(Counti, 0).Value = Matching2 Or c.Offset(Counti, 0).Value = Matching3 Or c.Offset(Counti, 0).Value = Matching4 Or c.Offset(Counti, 0).Value = Matching5 Or c.Offset(Counti, 0).Value = Matching6 Or c.Offset(Counti, 0).Value = Matching7 Or c.Offset(Counti, 0).Value = "Contact RG"
c.Offset(Counti, 0).EntireRow.Select
Selection.Copy
Windows(stdocname).Activate
Cells(Counti + 1, 1).Select
ActiveSheet.Paste
Windows("Time Option Template WIP.xls").Activate
Counti = Counti + 1
Loop
Apr 20 '09 #1
2 1678
When I have multiple rows that I need in a worksheet, I usually send them to a separate function as a recordset or dictionary item (you could use a collection also), and write them to the workbook.

I'm a little confused. Are you trying to write each type of data to a different Worksheet within the same Workbook or does each type of data go into a separate Workbook?
Apr 20 '09 #2
grego9
63
Thanks for the response. I am trying to save all the lines that have the same counterparty against them into the same workbook. The code I currently have takes each line and keeps saving over the previous record (by creating a new workbook each time). I really just the need the code to recognise that there may be more than one line item against each counterparty.

So as an example:

OY AB 545454545
AB SWEDEN 11313131
AB SWEDEN 65648787

I would want both AB Sweden entries saving in the AB Sweden spreadsheet. Currently the last entry saves over the first entry leaving me with just one record on the file

How would I send the items to a separate Function./Recordset - I don't know how to do this

thanks
Apr 27 '09 #3

Sign in to post your reply or Sign up for a free account.

Similar topics

8
by: mytfein | last post by:
Hi Everyone, Background: Another department intends to ftp a .txt file from the mainframe, for me to process. The objective is to write a vb script that would be scheduled to run daily to...
0
by: Mike Knight | last post by:
(I've also posted this problem on microsoft.public.excel.programming) I have a MS Access 2003 Database named "AS400 Fields.mdb". This database contains links to tables on an AS400. In MS...
2
by: Praveen K | last post by:
I have a problem in communicating between the C# and the Excel Interop objects. The problem is something as described below. I use Microsoft Office-XP PIA dll’s as these dll’s were been...
0
by: rhett | last post by:
howdy folks, first off, I'd like to not that I have browsed the forums and thanks to what I've found there I'm 80% through this problem, but the last part seems to be a profound obstacle and any...
4
by: msnnews.msn.com | last post by:
hi there, i've got a form that populates a datagrid, and a button that calls a function to export to an excel file. All is well with the export, no errors are returned, but the Excel instance...
18
by: lgbjr | last post by:
Hi All, I have a VB.NET app that, among other things, writes data to Excel. I am having trouble getting the Excel process to terminate after I quit Excel. I found an article related to this...
1
by: Randall Arnold | last post by:
I'm converting a vbscript program to vb.net. Witht he exception of .net idiosyncrasies, most of it is working well with the same code. My only problem is that some properties and methods are...
6
by: Darrell Wesley | last post by:
A VB2003 application upgraded to VB2005 that builds an Excel spreadsheet. Everything appears to work correctly except that the Excel object does not go away it is still in the Process list in task...
2
by: James | last post by:
I am doing some Excel 2000 automaton using Vb 2005. I am referencing the Excel 9.0 COM Object Library. The following code was working fine: Dim xlApp as new Excel.Application Dim xlWb as...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.