- Store millions of rows in PowerPivot
- Data can be pulled literally from any database/datasource like Oracle, DB2, Teradata, SQL, MS Access and even from Txt files and data mart like Azure.
- Create and manage relationships between these irrelative data sets.
- You avoid writing Lookup functions after creating relationships which is 100x faster.
- PowerPivot uses Data Analysis Expression (DAX) functions similarly like Excel functions.
MS Excel Tips and Tricks
This blog will feature MS Excel Tips and Tricks with some Basic VBA tips.
Ads by Google
Friday, December 28, 2012
PowerPivot in Excel 2010
Thursday, December 17, 2009
Prevent Macro from running on Open Event
Some of the macros written under Auto_Open or Workbook_Open procedure will run as the file is opened.
If you have set your macro security level to low, all the files tend to open without any notification and will run the macro on Open event.
Easy way to stop this is to hold "Shift" key while opening the file. This will disable them.
If you have set your macro security level to medium, then you can stop the macro from running by clicking on "Disable Macros" option in the notification on Open.
Please note that "Disable Macros" disable all the macros in the workbook.
Thursday, December 10, 2009
VBA to pull Access Data
Hi folks,
Below is the sample code written to pull data from MS Access database.
Option Explicit
Public Const sPASSWORD = "" 'Your DB Password here
Public Const sDBPath = "\Drive\DBPath" 'Your DB Path here
'I wrote this code to pull data from MS Access and to show up in a sheet called "Import Data"
'The code pulls data only for a particular week selected. Modify the query as per the requirement
'Some of the lines will be irrelevant but I still have them as I was testing the code with many options.
Sub importData()
Dim db As DAO.Database
Dim rs As DAO.Recordset
'New variables
Dim lRowCounter As Long 'Count rows to populate worksheet from query
Dim lastCell As Object
Dim endrow As Integer
Dim Ws As Worksheet
Dim i As Variant
Dim sWeek As String
'Turn off auto calculation to run the code faster
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
sWeek = Sheets("Admin").Range("K2").Value
'Clear column data
Set Ws = Sheets("ImportData")
Ws.Select
Set lastCell = Columns("A").Find("")
endrow = lastCell.Row
Range("A1:P" & endrow).Select
Selection.ClearContents
Range("A1").Select 'Set active cell
lRowCounter = 1
'Connect to DB
'DB exist
Set db = DBEngine.OpenDatabase(sDBPath, False, True, ";pwd=" & sPASSWORD)
'Set QueryDef = db.QueryDefs("qryReport")
'Set rs = QueryDef.OpenRecordset()
Set rs = db.OpenRecordset("SELECT tblUtilization.DATE_D, tblEmpDetails.E_NAME_T, tblUtilization.UNITS_N, tblUtilization.TIME_N, tblUtilization.ACCURACY_N, tblUtilization.ONTIME_N, tblUtilization.REMARKS_T, tblReports.TRANS_T, tblDate.Week_T, tblDate.Month_T FROM ((tblUtilization INNER JOIN tblEmpDetails ON tblUtilization.E_LANID_T = tblEmpDetails.E_LANID_T) INNER JOIN tblReports ON tblUtilization.REPORT_T = tblReports.REPORT_T) INNER JOIN tblDate ON tblUtilization.DATE_D = tblDate.Date_D WHERE (((tblDate.Week_T)=""" & sWeek & """))")
'This loop will collect the field names and place them in the first
'row starting at "A1."
For i = 0 To rs.Fields.Count - 1
Ws.Cells(1, i + 1).Value = rs.Fields(i).Name
Next
'This line simply sets the font to bold for the headers.
Ws.Range(Ws.Cells(1, 1), Ws.Cells(1, rs.Fields.Count)).Font.Bold _
= True
'The next line will get the data from the recordset and copy it
'into the Worksheet (Sheet1).
Ws.Range("A2").CopyFromRecordset rs
'This next code set will just select the data region and auto-fit
'the columns
Ws.Select
Range("A1").Select
Selection.CurrentRegion.Select
Selection.Columns.AutoFit
Range("A1").Select
rs.Close
db.Close
Application.Calculation = xlCalculationAutomatic
Sheets("Report").Select
End Sub
Tuesday, November 17, 2009
Access Query from MS Excel
In Microsoft Office 97, the default path for the Northwind database is \Program Files\Microsoft Office\Office\Samples\Northwind.mdb.
A QueryDef is created in Microsoft Access and saved with the database file. It consists of a query and may or may not include criteria.
NOTE: If you receive the "User-defined type not defined" error, activate a module sheet, click References on the Tools menu, and click Microsoft DAO 3.0 Object Library check box.
Retrieving the results of a QueryDef from Microsoft Access is a five step process as follows:
- Establish a Database object.
- Establish a QueryDef object.
- Establish a Recordset Object.
- Retrieve the Headers (if desired).
- Retrieve the data from the table.
After the data is retrieved, you should close all the objects that you opened by issuing .Close commands.
Sub GetQueryDef()
'This sub will get data from an Existing QueryDef in the Northwind
'database and place the data on sheet2.
Dim Db As Database
Dim Qd As QueryDef
Dim Rs As Recordset
Dim Ws As Object
Dim i As Integer
Dim Path as String
'Set the Path to the database. This line is useful because
'if your database is in another location, you just need to change
'it here and the Path Variable will be used throughout the code.
'
'If you're using Microsoft Office 97, the line should read:
'
'Path = "C:\Program Files\Microsoft
'Office\Office\Samples\Northwind.mdb"
'
Path = "C:\Msoffice\Access\Samples\Northwind.mdb"
'Set Ws
Set Ws = Sheets("Sheet1")
'This set of code will activate Sheet1 and clear any existing data.
'After clearing the data, it will select cell A1.
Ws.Activate
Range("A1").Activate
Selection.CurrentRegion.Select
Selection.ClearContents
Range("A1").Select
'Set the Database and QueryDef. This QueryDef exists in the
'database.
Set Db = Workspaces(0).OpenDatabase(Path, ReadOnly:=True, _
Exclusive:=False)
Set Qd = Db.QueryDefs("Invoices")
'Create a new Recordset from the Query based on the stored
'QueryDef.
Set Rs = Qd.OpenRecordset()
'This loop will collect the field names and place them in the first
'row starting at "A1."
For i = 0 To Rs.Fields.Count - 1
Ws.Cells(1, i + 1).Value = Rs.Fields(i).Name
Next
'This line simply sets the font to bold for the headers.
Ws.Range(Ws.Cells(1, 1), Ws.Cells(1, Rs.Fields.Count)).Font.Bold _
=True
'The next line will get the data from the recordset and copy it
'into the Worksheet (Sheet1).
Ws.Range("A2").CopyFromRecordset Rs
'This next code set will just select the data region and auto-fit
'the columns
Sheets("Sheet1").Select
Range("A1").Select
Selection.CurrentRegion.Select
Selection.Columns.AutoFit
Range("A1").Select
Qd.Close
Rs.Close
Db.Close
End Sub
Source: http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/ARTICLES/Q147/7/39.asp&NoWebContent=1
Sunday, September 27, 2009
Comment Box Shapes and Picture
Bored with the same rectangle yellow comment boxes on your file? Here is a way to change them to shapes of your choice with picture on it (I am Using Excel 2007)
- Select the cell with the comment
- Press Shift+F2 to edit the comment box
- Select any border of the comment box. You will notice that the box line has full of dots now.
- Right click and select Format comment
- Select "Color and Lines" tab
- Now select "Fill effects" from the color drop down
- Now from the Picture tab, select a picture from your local drive and add it to the comment box.
- Now the background of your comment box changes to the picture you have selected
- Before you proceed to change the shape of this comment box, make sure that you have "Change Shape" toolbar activated in the "Quick Access Toolbar". To do this, follow these steps:
- Select Office button on the top
- Select Excel Options
- Select Customize option and select All command from the drop down on the top of this window.
- Scroll down till you find "Change Shape" command. Add it to the Quick Access toolbar but selecting it and clicking on Add button
- Once you are done with it, you will be able to locate "Change shape" icon on the top left near the office button.
- Select Office button on the top
- Follow Steps 1 to 3
- Select a shape from the "Change Shape" options (remember which we added just now).
- You will notice that the comment box shape is changed now.
Monday, September 14, 2009
Get rid of GETPIVOTDATA Option
If you want to disable the Generate GetPivotData setting, follow these steps, as appropriate for the version of Excel that you are running.
Microsoft Excel 2003
- On the Tools menu, click Customize.
- Click the Toolbars tab, and then click to select the PivotTable check box. The PivotTable toolbar is displayed.
- Click Close.
- On the PivotTable toolbar, click the Toolbar Options arrow. This arrow appears on the right end of the toolbar.
- Click Add or Remove Buttons, click PivotTable, and then select Generate GetPivotData.
- Click in the worksheet.
- Click the Generate GetPivotData button that now appears on the PivotTable toolbar. When you click this button, it is turned on or off. If the button is selected, the GETPIVOTDATA formula is automatically generated.
Excel 2007
- Click the Microsoft Office Button, click Excel Options, and then click the Formulas tab.
- Make sure that the Use GetPivotData functions for PivotTable references check box is selected, and then click OK.
- Click in the worksheet.
- Click the Options tab, click Options in the PivotTable group, and then click to clear the Generate GetPivotData check box.
Friday, May 15, 2009
Code to export chart as Image to local drive
Sub exportChart()
Dim cht as chart
Set Cht = Worksheets("Charts").ChartObjects(1).Chart Cht.Export Filename:="C:\Temp\MyChart.gif", FilterName:="GIF"
End Sub
---------------------
I use this code to export chart and load them as image in Userform which looks pretty good for presentation.