Number format based on number format of another cell in another workbook

R

Rob

Excel 2000

I have two files, one master and one created by opening a text file. The
master file has a list of unique product codes and descriptions in two
columns, the text that is opened has the product codes and I add during the
opening process a look up to the product code to return the product
description, this all works fine. The text file after opening is 7 columns,
product code, product description and 5 columns of numbers.

What I need to do is format the cells (numbers) in the last 5 columns of the
newly opened text file. My thoughts are to add a third column to the master
file whereby I'll have 3 columns: product code, product description and
number format, in the number format column I would format the cell with the
required number format. My issue is, how using VBA do I format the cells in
the newly opened text file where the product code matches that of the
corresponding product code in the master file. The text file can have many
of the same product codes and in some instances, not all of the product
codes.

I had also thought of Conditioning Format but alas, this doesn't cover
number formatting.

Any pointers, snippets of code most welcome.

Thanks, Rob
 
R

Rob

Bob,

Great Add-In. However, not allowing the formula Vlookup to look up product
code and apply number format.
 
B

Bob Phillips

Rob,

Sorry, not exactly sure what you mean? It would be the add-in itself that
allows the number format. So, if you had a VLOOKUP in the cell, you would
apply the add-in just like normal CF to test the value, and set the format
accordingly.

--

HTH

RP
(remove nothere from the email address if mailing direct)
 
S

Sharad Naik

Thoug i did not understand fully when exactly you want to format the cell,
I assume that if the VLOOKUP succeeds you want to format that 5 column, else
you want to leave it as it is.
I also assume that presently you are doing VLOOKP in the sheet itself with
standard VLOOKUP formula
entered and drag-copied?
If this is true then where the VLOOUP did not succeed it will show "N#A"

So you can write code like below

For each c In Workbooks("Text").Worksheets("xyz").Range("B:B").Cells
If Not c.Text = "N#A" Then 'note: it should be c.Text not c.Value
c.Offset(0,5).NumberFormat = "whatever"
End If
Next
Ofcource you can refer to the column until the last used row, I just skipped
that part.

You can put it in workbook open event or make it a module macro and run
whenever
you feel.

But in case you are doing it different way and "N#A" does not appear in the
cell
( many times I suppress "N#A" adding IF( ISERR(VLOOKUP .. )
Then you can make code in VBA to check if VLOOKUP is an error
and if not then format the number. e.g.:

Dim c
On Error Resume Next
For Each c In Workbooks("Text").Worksheets("xyz").Range("A:A1")
If Not IsError(Application.WorksheetFunction.VLookup _
(c.Value, Workbooks("Master").Worksheets("xyz") _
.Range("A:B"), 2, False)) Then
c.Offset(0, 6).NumberFormat = "whatever"
End If
Next c

Note: I didn't refer to the ranges properly in above example.

Sharad
 
R

Rob

Bob,

I've tried again, this time adding a Vlookup column in my opened text file
that returns 2, the CF add-in is set up likewise to format the cell to 2
decimal places. However, there are c. 200 rows and using the CF add-in copy
and past function, the reference is always to the initial formula and as
such would take forever to setup each cell condition. That is unless
there's a VBA method of setting up for each cell.

Regards, Rob
 
R

Rob

Sharad,

The last example looks to have some possibilities, I'll set up and test in
my files. Now you've given the idea, I recall code CASE where I could set
up the criteria.

Thanks, Rob
 
B

Bob Phillips

Rob,

There is, the same as with normal CF.

Select all the cells, launch CFPlus, and then reference just the first cell
in the selection for the CFPLus formula.

--

HTH

RP
(remove nothere from the email address if mailing direct)
 
R

Rob

Bob,

Thank for that CF Plus does the job. I've recorded a macro which open the
CF application but is there any code that would for example after selecting
the range enter the formula =C3=2 and number format 2 decimal places?

Regards, Rob
 
B

Bob Phillips

Rob,

No there isn't I am afraid. Recording doesn't record the actions in a
dialog, and this is all dialog. But it shouldn't be necessary, as it is a
once-off action to select all the cells and add the formula and format.

--

HTH

RP
(remove nothere from the email address if mailing direct)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top