Friday, September 25, 2009
How to export Word Range as RTF using VBA
The following snippet saves the selected Range as RTF using VBA (Word 2007)
Sub Export_Selection_As_RTF()
Selection.Range.ExportFragment "C:\Users\comp\AppData\Local\Temp\Sample.rtf", wdFormatRTF
End Sub
Friday, August 21, 2009
How to add Format Conditions using Excel VBA
Conditional Formatting using Excel VBA
Here is a small snippet for FormatConditions.
Sub Format_Condition_Example()
Dim oFc As FormatCondition
Dim oRange As Range
Set oRange = Range("B2:B5")
Set oFc = oRange.FormatConditions.Add(xlCellValue, xlLess, "0.5")
oFc.Interior.ColorIndex = 3
Set oFc = oRange.FormatConditions.Add(xlCellValue, xlBetween, "0.5", "0.80")
oFc.Interior.ColorIndex = 6
Set oFc = oRange.FormatConditions.Add(xlCellValue, xlGreater, "0.80")
oFc.Interior.ColorIndex = 4
End Sub
How to Hide the PivotTable Fields List using VBA
Excel VBA - Hide Pivot Table Fields List
If you are developing some pivot table as part of the report and feel the Pivot Fields list at the right corner is bit distracting, you can turn it off as shown below:
Sub Hide_PivotTable_Fields()
ActiveWorkbook.ShowPivotTableFieldList = False 'Dont Show the Pivot Table List
End Sub
Update Word Document with Excel Information using VBA
Excel Range to Word Template using VBA
Most often we maintain list of contacts in Excel workbook and it needs to be transferred to Word document (made from some template). Here is a simple snippet that can help:
The code is used to copy the content from Excel range shown below to a Word document:
Name | ContactNo | Address | Email |
Christina | 516 418 1234 | Cincinatti | |
Girish Kutty | 516 418 6752 | Cincinatti | |
Ravichand Koneru | 777 213 213 | Boston |
Sub CopY_Data_To_Word()
Dim oWA As Word.Application
Dim oWD As Word.Document
Set oWA = New Word.Application
Set oWD = oWA.Documents.Add("C:\Users\comp\Documents\Doc2.dot") ' Replace with your template here
For i1 = 2 To Cells.SpecialCells(xlCellTypeLastCell).Row
oWD.Bookmarks("Name").Range.Text = Cells(i1, 1)
oWD.Bookmarks("ContactNo").Range.Text = Cells(i1, 2)
oWD.Bookmarks("Address").Range.Text = Cells(i1, 3)
oWD.Bookmarks("Email").Range.Text = Cells(i1, 4)
'Code for saving the document
Next i1
' Releasing objects etc
End Sub
Bookmarks are added to the Word template and whenever a new document is created from the template, the document has those bookmarks.
The code above places the information from the Excel sheet to the specific Bookmark ranges
Saturday, August 08, 2009
How to Login to Website Using VBA
Here is a simple code that will login to Google accounts with the provided user-name and password.
The program requires references to the following:
1 Microsoft Internet Controls
2. Microsoft HTML Object Library
The Internet control is used to browse the webpage and the HTML Objects are used to identify the username and password textboxes and submit the text using the control button.
Dim HTMLDoc As HTMLDocument
Dim oBrowser As InternetExplorer
Sub Login_2_Website()
Dim oHTML_Element As IHTMLElement
Dim sURL As String
On Error GoTo Err_Clear
sURL = "https://www.google.com/accounts/Login"
Set oBrowser = New InternetExplorer
oBrowser.Silent = True
oBrowser.timeout = 60
oBrowser.navigate sURL
oBrowser.Visible = True
Do
' Wait till the Browser is loaded
Loop Until oBrowser.readyState = READYSTATE_COMPLETE
Set HTMLDoc = oBrowser.Document
HTMLDoc.all.Email.Value = "sample@vbadud.com"
HTMLDoc.all.passwd.Value = "*****"
For Each oHTML_Element In HTMLDoc.getElementsByTagName("input")
If oHTML_Element.Type = "submit" Then oHTML_Element.Click: Exit For
Next
' oBrowser.Refresh ' Refresh If Needed
Err_Clear:
If Err <> 0 Then
Debug.Assert Err = 0
Err.Clear
Resume Next
End If
End Sub
See Also : http://vbadud.blogspot.com/2008/05/google-search-using-vba.html
Monday, July 27, 2009
How to change the Source of Pivot Table using VBA
How to configure Pivot Table source data externally through VBA
A Pivot Table is linked to a particular source data. If for some reasons, you need that to be configured by users the following code will give some hint:
Sub Change_Pivot_TableDataSource()
Dim oPT As PivotTable
Dim oPC As PivotCache
Dim ORange As Range
Set oPT = ActiveSheet.PivotTables(1)
Set oPC = oPT.PivotCache
Set ORange = Application.InputBox(Prompt:="Select the New DataRange", Type:=8)
oPC.SourceData = "Sheet1!" & Application.ConvertFormula(ORange.Address, xlA1, xlR1C1)
oPT.RefreshTable
If Not oPT Is Nothing Then Set oPT = Nothing
If Not oPC Is Nothing Then Set oPC = Nothing
End Sub
The code gets the new data range through Input Box and modifies the SourceData of the Pivot Table. Change the Sheet name accordingly before you use the code.
How to Check the Source Type of Pivot Table using VBA
Excel VBA Check Pivot Source
The following snippet could help in getting the source type of the Pivot Table
Sub CheckSourceConnection()
Dim pvtCache As PivotCache
Set pvtCache = Application.ActiveWorkbook.PivotCaches.Item(1)
On Error GoTo No_Connection
If pvtCache.SourceType = xlDatabase Then
MsgBox "The data source connection is: " & _
pvtCache.SourceData, vbInformation, "Pivot Table Source"
ElseIf pvtCache.SourceType = xlExternal Then
MsgBox "The data source connection is: " & _
pvtCache.SourceDataFile, vbInformation, "Pivot Table Source"
End If
Exit Sub
No_Connection:
MsgBox "Pivot Table source cannot be determined.", vbInformation, "Pivot Table Source"
End Sub
How to Add Popup Menu Item in Excel/Word using VBA
Create Popup Menu (Right Click menu) using VBA
Here is a simple snippet that will add a menu item to the popup menu and assign a macro to it
Public Const APP_SHORTNAME = "VBADUD_POPUP"
Sub Add_To_Popup_Menu()
Dim ctlNewMenu As CommandBarControl
Dim ctlNewGroup As CommandBarControl
Dim ctlNewItem As CommandBarControl
On Error GoTo Err_Trap
On Error Resume Next
Application.CommandBars("Cell").Controls(APP_SHORTNAME).Delete
On Error GoTo 0
Set ctlNewMenu = Application.CommandBars("Cell").Controls.Add(Type:=msoControlPopup)
ctlNewMenu.Caption = APP_SHORTNAME
'--- Button - Load Raw Data ------------
Set ctlNewItem = ctlNewMenu.Controls.Add(Type:=msoControlButton)
ctlNewItem.Caption = "Process Data"
ctlNewItem.OnAction = "ProcessData"
Err_Trap:
If Err <> 0 Then
Err.Clear
Resume Next
End If
End Sub
The above will create a new Group and add the “Process Data” control to it.
Wednesday, July 22, 2009
How to Create PDF from Word Document using VBA
Convert Word to PDF using VBA
Word 2007 has a new method - Document.ExportAsFixedFormat, which saves the document as PDF or XPS format
The following code will save the current document as PDF in the same path
Sub Convert_2_PDF()
ActiveDocument.ExportAsFixedFormat OutputFileName:= _
ActiveDocument.Path & "\" & ActiveDocument.Name & ".pdf", ExportFormat:= _
wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
wdExportOptimizeForPrint, Range:=wdExportAllDocument, _
Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
BitmapMissingFonts:=True, UseISO19005_1:=False
End Sub
Saturday, July 18, 2009
Welcome Office 2010
"Microsoft® Office 2010 gives you rich and powerful new ways to deliver your best work - whether you’re at work, home, or school - on a computer, Web browser, or Smartphone. Grab your audience’s attention and inspire them with your ideas using enhanced tools, customizable templates, and photo editing capabilities. Work with multiple people from different locations at the exact same time using new co-authoring capabilities. By offering more ways to access your files from virtually anywhere, Office 2010 puts you in control. "
For more info -->
http://www.microsoft.com/office/2010/
Feel free to post your views on Office 2010
Office 2010 Downloads are available on request (https://microsoft.crgevents.com/Office2010TheMovie/Content/Default.aspx?p=Home&)
Thursday, July 16, 2009
VBA Additional Contols not enabled in Tools menu

Enable the Toolbox --> View -->Toolbox and it becomes enabled
