[AccessD] Export to Excel via VBA, Naming Cells

Lawrence Mrazek lmrazek at lcm-res.com
Fri Mar 17 10:43:20 CST 2006


Forgot to add that this is on Access XP, Excel XP. 

Larry Mrazek
LCM Research, Inc.
www.lcm-res.com
lmrazek at lcm-res.com
ph. 314-432-5886
fx. 314-432-3304

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Lawrence Mrazek
Sent: Friday, March 17, 2006 10:37 AM
To: 'Access Developers discussion and problem solving'
Subject: [AccessD] Export to Excel via VBA, Naming Cells

Hi: 

I'm working on a fairly complex routine that exports sales data from Access
into Excel. 

Basically, the Excel report will have multiple worksheets, each containing a
salesman's summary sales data (about 15-20 salesmen), plus one worksheet
with company totals. 

The client wants all calculations to happen in Excel, and since I can't
predict where the data will end up in Excel, I can't really hard code any
formulas that refer to the sales data. 

I haven't had any trouble creating the worksheets/exporting the raw data via
a VBA routine, but I'm stuck on the calculation front.

Can I dynamically name cells/ranges as build the Excel report? I I'd like to
be able to use named ranges for these calculations, as I'll need to refer to
them to build my totals, but have been having a bit of trouble getting them
to work. 

I'd like to be able to assign the names as I build the spreadsheet, but I'm
not quite "getting" the syntax of the naming convention or something.

I've added a sample below:

                While Not rsSales.EOF
                    xlWs.Cells(rownum, 1) = rsSales.Fields("SalesRP")
                    xlWs.Cells(rownum, 2) = rsSales.Fields("salesrepName")
                    xlWs.Cells(rownum, 3) = rsSales.Fields("ProductGroup")
                    xlWs.Cells(rownum, 4) = rsSales.Fields("Item")
                    xlWs.Cells(rownum, 5) =
rsSales.Fields("itemdescription")
                    xlWs.Cells(rownum, 6) = rsSales.Fields("month")
                    RangeName = rsSales.Fields("SalesRP") &
rsSales.Fields("item") & rsSales.Fields("month")
                    CellLocation = rownum & 6 & ":" & rownum & 6
' Just testing to see if I can get the naming working.                   
xlWb.Names.Add Name:=RangeName, RefersTo:=CellLocation, Visible:=True    '
"=" & "!$" & rownum & "$" & 6 & ":" & rownum & "$" & 6
                    xlWs.Cells(rownum, 7) = rsSales.Fields("KGsLastYr")
                    xlWs.Cells(rownum, 8) = rsSales.Fields("KgsCurrYr")
                    xlWs.Cells(rownum, 9) = rsSales.Fields("SalesCurrYr")
                    xlWs.Cells(rownum, 10) = rsSales.Fields("SalesLastYr")
                    xlWs.Cells(rownum, 11) = rsSales.Fields("marginCurrYr")
                    xlWs.Cells(rownum, 12) = rsSales.Fields("MarginLastYr")
                    rownum = rownum + 1
                    rsSales.MoveNext
                Wend

Any suggestions? Also, if anyone specializes in this sort of thing (Access
to Excel automation), I might need to farm this out. 

Thanks in advance. 

Larry Mrazek
LCM Research, Inc.
www.lcm-res.com
lmrazek at lcm-res.com
ph. 314-432-5886
fx. 314-432-3304



--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com






More information about the AccessD mailing list