MS EXCEL MACRO/VBA CODES & UTILITIES

MS EXCEL MACRO/VBA CODES & UTILITIES

PART I :

 Excel VBA/Macro/VBScript codes.

Introduction:

MS Excel is very widely used application over the world from many years. We found almost every application either uses it as a input or output reporting or mid processing spreadsheets or easy level databases. Some tools like QTP includes excel file as a integrated data input or data manipulations or reporting purpose. In addition to this, some frameworks drivers are excel utilities itself.

Hence get handle of MS Excel is very essential for a developer who is dealing with front end or backend of application with excel.

So, here is good start to learn “How to get handle of excel objects” (Below codes are VB Oriented/ used codes. intelisance is dependent on VB editor.)

Let’s start with basics of excel object.

Create Excel Object:

( Object is a instance of an class and need to be created to get handler for efficient/reusable programming.

If Excel file is not opened, and need to create new instance of excel.

Set objExcel = CreateObject(“Excel.Application”)

If excel file is allready opened and need to get handle for current opened excel file.

Set objExcel = GetObject(,”Excel.Application”)      ‘ First Paremeter is empty, it might give syntax error or warnings)

Display settings and alerts

To operate excel in invisible mode                                                 Visible Mode

objExcel.visible=False                                                            objExcel.visible=True

To prevent excel errors or alerts ( Some time it gives compatibility issues or version errors.)

objExcel.AlertBeforeOverwriting=False

objExcel.DisplayAlerts=False

Open Excel file from Path.

                Set workbook object to open excel file as current workbook.

Set objWorkBook = objExcel.Workbooks.Open (sFilePath)

Working with Worksheets

  • Create Object of WorkSheet

Set objSheet = objExcel.Sheets(“SheetName”)

  • Get Count and name of present worksheets.

iTotalSheets = oExcel.Sheets.Count

For iSheets = 1 to iTotalSheets

Excel.Sheets(iSheets).Name

Next

  • Delete all worksheets except specific sheet.

iTotalSheets = oExcel.Sheets.Count

For iSheets = 1 to iTotalSheets

If Trim(LCase(oExcel.Sheets(iSheets).Name)) <> “SheetName”  Then

oExcel.Sheets(iSheets).Delete

End If

Next

  • Activate specific sheet

objExcel.Worksheets(“SheetName”).Activate

  • Add New Worksheet to workbook.

oExcel.Sheets.Add

oExcel.Sheets(“Sheet1”).Select

oExcel.Sheets(“Sheet1”).Name = sWorkSheetName

  • Save Worksheet

objExcel.ActiveWorkbook.Save

  • Insert new row into Worksheet.

objExcel.ActiveCell.EntireRow.Insert                      – Select Cell firstly

Working with Cells

  • Resize Cells

oExcel.Sheets(sWorkSheetName).Columns(1).ColumnWidth = 20

oExcel.Sheets(sWorkSheetName).Columns(2).ColumnWidth = 40

  • Customizing Cells

oExcel.Sheets(sWorkSheetName).cells(1,iCell).Font.Name = “Arial”        – Set Font

oExcel.Sheets(sWorkSheetName).cells(1,iCell).Font.Size = “12”              – Set Font size

oExcel.Sheets(sWorkSheetName).cells(1,iCell).Font.Bold = True             – Bold

oExcel.Sheets(sWorkSheetName).cells(1,iCell).Interior.ColorIndex = “37”- Set Cell color

  • Insert values into Cells

oExcel.Sheets(sWorkSheetName).Select

oExcel.Sheets(sWorkSheetName).Cells(1,1).Value = “Text”

  • Erase Cell contents

oExcel.Sheets(sWorkSheetName)..Range (sCellPosition).ClearContents

  • Select Cell with cell position

objSheet.Range(sCellPosition).Select

  • Get Cell contents

Select cell and get contents

objExcel.ActiveCell.Value

objExcel.Range(Column&””&Row).Value

  • Get ‘n’ consecutive values in row from selected cell.

For iCnt =0 to n

objExcel.ActiveCell.Offset(0,iCnt).Value

Next

  • Get ‘n’ consecutive values in Column from selected cell.

For iCnt =0 to n

objExcel.ActiveCell.Offset(iCnt,0).Value

Next

Find Text in active worksheet

                                Set objvalueFind=objSheet.UsedRange.Find(“TextTOFind”)

If Not objvalueFind is Nothing  Then

‘Capture address

sAddress=objvalueFind.Address

End If

Find Text in active worksheet iteratively.

                Set objvalueFind=objSheet.UsedRange.Find(sDocumentName)           ‘ Find document

If Not objvalueFind is Nothing  Then

sFirstAddress =objvalueFind.Address                                     ‘ Capture addres

sCellPosition= Split address with $ , OR Replace $ with blanks

End If

If objExcel.Range(sCellPosition).Value = TextTOFind Then

‘Condition True

Else

Do Until  objvalueFind is Nothing AND objvalueFind.Address<> sFirstAddress

Set objvalueFind=objSheet.UsedRange.FindNext (objvalueFind)

If Not objvalueFind is Nothing  Then                                                                                                                                                       sAddress=objvalueFind.Address

sCellPosition= Split address with $ , OR Replace $ with blanks

If objExcel.Range(sCellPosition).Value = TextTOFind  Then

Exit Do

End If

End If

Find Merged area of selected cell.

If objExcel.ActiveCell.MergeCells Then                                            ‘ If cell has merged then

GroupRange=objExcel.ActiveCell.MergeArea.Address

End If

Calculate Merged column count

sGroupRange=

sStart= Cell Position of starting area                 ‘ start cell of merged area
sEnd= Cell Position of End area                       ‘ end cell of merged area
iMergedCol= CInt(objExcel.Range(sEnd).Column)-CInt(objExcel.Range(sStart).Column)

Part II …….

काचेचा लोलक

काचेचा लोलक

 कळून येता जगण्याची हि इवलीशी त्रिज्या, उडून जाती अत्तरापरी जगण्याच्या मौजा ….

दारी नाही फिरकत कुठला नवा छंद चाळा,राखण करीत बसतो येथे सदैव कंटाळा …..

कंटाळ्याचा ..देखील आता कंटाळा येतो ………..

अरे…वाजणारा भ्रमणध्वनी कसा काय बंद झाला ????? अरे….त्याला सुध्धा तेच ते गाणे वाजवायचा कंटाळा आला असणार बहुतेक ….

मी मात्र उठलो जागेवरून आणि म्हंटले काहीतरी स्वतासाठी केले पाहिजे यार !! रविवार हा छंद जोपासण्यासाठी आयोजित करून ठेवलाय असे वाटले …लगेच जाणवले कि कित्येक रविवार आपले पाऊलच  घरात नाहीये …. जवळ जवळ दर रविवार आपण दुर्गभ्रमंती साठी बाहेरच आहोत…मग म्हंटले चला  त्याचेच अनुभव शब्दांकित करूया ….म्हणून बसलो ब्लॉग  लिहायला …..

असे का?????

 खरेतर मलाही नाही माहित असे का… हे म्हणून ते   की  ते म्हणून हे …..पण …”If there is a cause, there is a effect”…. असे बरेच “असे का” मला भेडसावत असतात .. मी जेव्हा जेव्हा नाव्ह्याकडे केस कापायला जातो तेव्हा दर वेळेस न चुकता ‘आपके प्यार मी हम गुजरने का सवरने लगे ” असे काहीतरी टुकार गाणे का लागलेले असते? दरवेळी सांगूनही  न्हावी परत “साह्येब तुमचे कुच्या गावचे ?” असे का विचारतो ..आणि पुण्याचाच म्हंटल्यावर पुढचे काहीच न बोलता (स्वताच्या मनानीच) केस कापायला लागतो…( पु.ल. चे पुणेकर त्याने ऐकलेले  असावे बहुतेक…त्यात मी दुकानदार आहे हे हि त्यास ठाऊक असावे ….त्यामुळे पुणेरी बोली भाषे प्रमाणे किमान शब्दात कमाल अपमान करण्याची “कला ” मला अवगत असावी असे त्यास वाटत असणार बहुतेक….)

 

परवाच बाबांबरोबर जाताना काहीतरी विषय चालू होता मदत करण्याचा ….”आपण कोणासाठी काहीही करायची गरज नाहीये ..आपल्यासाठी कोण काय करते ??? कोणाला कोणाची पडलेली  नसते इथे …” हे वाक्य बोलतानाच मी समोर पहिले कि एक मध्यमवयीन कामगार श्रेणीतला  माणूस आपली सायकल रस्त्याच्या बाजूला उभी करून दुकानात  गेला..आणि एक बिस्कीट पुडा घेऊन आला. कामावरून घरी जाताना दमला असेल बहुतेक..लगेच  त्याच्याजवळ तीन चार कुत्री जमली आणि तो त्यांना ती बिस्किटे खाऊ घालू लागला….बऱ्याच  दिवसांची मैत्री असावी त्यांची बहुतेक..बिस्किटे संपल्यावर शांतपणे सायकल काढून तो गाणी म्हणत निघून गेला ..”कोणाला कोणाची पडलेली  नसते इथे” असे बोलेलेले वाक्य तोंडातच अडकून पडले ..हे मी कसे बोललो हे माझे मलाच आठवेना …. मी हे करू शकतो का ?? मी रस्त्यात थांबून त्या कुत्र्यांना खायचा घालेन का ? पैशाच्या मागे धावून आपण नक्की काय गमावतोय हाच प्रश्नाचा विचार करतो झोपले …त्याचे उत्तर मला अजून कसे सापडले नाही… असे का ????

 

मध्यंतरी मोठ्या दुर्गा भ्रमंतीस  गेलो होतो .. नाशकातल्या बागलाण जिल्ह्यातले उत्तुंग असे मोठे किल्ले माझ्या एका मित्राबरोबर धुंडाळून  काढले…तिथे जाताना ‘वाघाम्बे’ नावाच्या गावात आम्ही मुक्काम ठोकला .. गावात राहण्याची सोय विचारताच  २-३ माणसे पुढे आली आणि त्यांनी एका मंदिराचा आश्रय दिला .. कोणत्याही मोबदल्याशिवाय त्यांनी आमची  राहण्याची आणि पाण्याची व्यवस्था करून दिली..कोणाच्याही चेहऱ्यावर अपेक्षेचा लवलेश हि नव्हता .. गावात अजून माणुसकी शिल्लक आहे याचा प्रत्यय आला. आम्ही मात्र प्रत्येक गोष्ट  पैशात तोलण्याचा स्वभावाचे बळी .. किती घेणार? हा प्रश्न आम्हास सुटेना… किल्ला चढून गेल्यावर दरवेळी प्रमाणे वाट चुकल्यानंतर ( इथे पु.ल.चा एक विनोद आठवला …कि आमचे रिझर्वेशन खुद्द इंजिनात झाले असले तरी चुकून आम्ही पहिल्यांदी गार्डच्या डब्यातच शिरणार ..) आम्हास एक गुराखी भेटला ..पूर्णतः निर्मनुष्य अश्या डोंगर रांगा  मध्ये तो आम्हाला देवासारखा भेटला…त्याने आम्हाला पुढचा रस्ता दाखवला आणि परत आंम्ही जाऊन येइपर्यत आमच्या सामानाची  राखण केली…आम्ही त्याला आमच्याबरोबर जेवायला बसवले ..बरेच प्रश्न विचारले तरी तो मोजकीच उत्तरे देत होता ..त्याला संकोच वाटत असावा असे वाटले म्हणून मी त्याला “अरे खा रे पोटभर” असे म्हणत गुळाची पोळी दिली…गुळाची पोळी तो प्रथमच खात होता असे त्याच्या चेहऱ्यावर स्पष्ट जाणवले.. थोड्या वेळाने तो बोलता झाल्यावर म्हणाला कि तो ‘महाधर’ नावाच्या गावात राहतो आणि शेळ्या घेऊन डोंगरावर येतो .पोटापाण्यासाठी रोजंदारी करायला तालुक्याच्या गावास जातो काधीकाही..पण जायचे पैसे नसले कि उपाशीच बसून राहतो…”सकाळी भाकरी खाऊन आलों होतो रानात आणि संध्याकाळी ५ वाजता घरी परत गेल्यावर खाईन आता” …. आणि पाण्याचे काय ???? “गावामध्येच पिण्यासाठी पाणी नाही आमच्या . इथे कसे घेऊन येऊ ???गावात साधे किरणा  दुकानही नाही तर रोजचा काय शिधा आणणार? आणि कामही काय करणार ? आकाश पांघरून बसतो आणि आणि एखाद्या ओढ्याने तहान भागवतो … तुमचे बरे  असते कि तुम्हाला नोकरी असते”..हे  त्याचे वाक्य ऐकून  मी खरेच विचारात पडलो. रोजच्या टेन्शन मधून बाहेर पडायचे म्हणून असे फिरण्याचे उपाय अवलंबतो रे आम्ही…खरेच आमचे बरे आहे??? निसर्गाच्या सहवासाचा मागमूसही नाही रे आम्हाला??? चिवचिवणारी चिमणी मी कधी शेवटची बघितली बरे ??? आकाशात चंद्र आणि लुकलुकणारे तारे असतात याची आठवण होते आम्हाला घराच्या भिंतीवरचे रेडियम चे तारे बघून रे…. कपडे आणि बूट भिजतील म्हणून पावसाला किती वेळा डावलले आम्ही???  बहिणाबाई च्या कवितेची आजीची गोधडी अजून कशी ठीगळे  लावलेली ??? टायर खेळतानाची मजा आता फक्त कॅमेरात बंदिस्त करतो आम्ही …

व्ह्यर्र्र्र्र्र्र्र्र्र ……. अरे हा कुठला आवाज ?????  तो शेळ्या च्या मागे धावत केव्हाच गेला होता …..आमच्या करून कहाण्या ऐकण्यात  त्यालाही रस नसवा बहुतेक…जाताना म्हणाला कि माझे तेवढे मोबाईल चे रिचार्जे करता का तालुक्याच्या गावाला  गेल्यावर ?? नाहीतर मला तेवढ्यासाठी जावे लागेल तिथे ..आम्ही त्याचा क्रमांक घेतला आणि जातो म्हणालो पुढे किल्ल्यावर … उतरताना दुसरया  गावातून उतरीन म्हणतो किल्ला … असे म्हणत खिशाकडे हात टाकला …. नको  म्हणत तो जाऊ लागला ..तरीही ६० रुपये देऊ केले आम्ही .. तालुक्याच्या गावास गेल्यावर त्याचे २० रूपयांचे रिचार्जे केले तोच त्याचा फोन आला..धन्यवाद म्हणून….किल्ला उतरताना आमच्या गावाहून.. आमच्या घरी या  …हे त्याचे वाक्य मनात मात्र घर करून गेले .. ज्याला रोज या दोन वेळच्या जेवणा साठीची मारामार.. तरीही त्याचे मन मोठे होते … नंतर मात्र भटकंती झाल्यावर जाताना प्रवास हिशोब करताना आम्ही  दोघांनी ते ६० रुपये अर्धे अर्धे खर्च म्हणून वाटून घेतले ….

असे का ????

 

कित्येक दिवस बाहेरचे खायला न मिळाल्यामुळे मोर्चा Macdi कडे वळवला …शे पाचशे रुपडे असे उडले. येताना मात्र एक प्रसंग आठवला ..मुंबई ला गेलो असतानाचा.. आमचे खास मित्र आणि भ्रमंतीचे फोटोग्राफर कोतकर साहेब हे दिमतीला हजर होते. गेटवे ऑफ इंडिया ला जायचा प्लान करून आम्ही तिथे पोहोचलो .. खरेच हौशे आणी  गौशे दोघांसाठीची हे स्थान .. एक माणूस काकडी विकत उभा होता.. विकण्यासाठी त्याने काढलेल्या काकड्या च्या साली हि त्याने तिखट मीठ लाऊन विकण्याचा घाट  घातला होता.. १ रु च्या ५ साली …आणि खाणारी मंडळीही १ रु देऊन त्या ५ साली खात होती … मी वेडाच झालो हे बघून .. रोजचा संघर्ष म्हणजे काय असतो .. प्रत्येकाच्या पाजवी ला हा पुजलेला कसा ?

असे का ???

 

सर, आज मी शाळेतून लवकर घरी जाऊ  का?

आजीबात नाही का ???

सर माझे  पाय खूप दुखत आहेत हो सर.. मला उभे पण राहवत नाहीये ..तुम्ही प्लीज माझ्या घरी फोन करा सर ….

आता काही नाही मधल्या सुट्टीत बघू…गपचूप बस जागेवर ….

सर मला काहीच सुचत नाहीये …खूप पाय दुखातायेत हो सर ..पायातली शक्ती गेलीय …त्याचे डोळे पाणावले ..

आजीबात फालतूपणा नकोय….शाळा सुटेपर्यंत  थांब आणि जा मग .. आणि माझ्याकडे फोन साठी पैसे नाहीयेत मोबाईल मध्ये ….

अखेरीस शाळा सुटेपर्यंत त्याला मी थांबवलेच … मुलांना शिस्त नाहीये…

४-५ दिवसांनी …. अहो सर तुमच्या वर्गातला तो “…” नावाचा मुलगा येत नाही का हो???

नाही .. तो सध्या येत नाही..आणि आता येऊ शकेल असे वाटत नाही…..

का ????

पोलिओ झालाय त्याला .. ट्रीटमेंट  चालू आहे …

ओह्ह … जर मी त्याला लवकर सोडले असते त्या दिवशी तर त्याच्यावर हा प्रसंग ओढवला असता ??

शिस्त म्हणून त्याला आयुष्यभराचा नको असलेला सोबती मिळाला …

असे का ???

 

आपल्यातील चंचलता वाढली आहे .. घरी गरम वरण भात तूप लिंबू असताना आपण नाक्यावर जाऊन वडापाव खातो …वडापाव रोज खावा लागणाऱ्याची चेष्टा यात नाही ..पण कुठेतरी “चांगल्याला” सुरवात करण्याची गरज आहे असे जाणवले…

असे का ?

 

परवाच एका कार्यक्रमात सलील कुलकर्णी म्हणाला कि.. शांता शेळ्के यांच्या कवितेतला तो देवळातील झुंबरातील काचेचा लोलक (Prism) आपण आपल्या आयुष्यातून हरवत चाललोय…

देवळातील  झुंबरातुन सापडलेला काचेचा लोलक हरवला माझ्याकडून ….

आणि मग दिसू लागली माणसे पुन्हा माणसासारखी …गवत पुन्हा हिरवे आणि आकाश पुन्हा निळे ..

बऱ्याच वर्षांनी एक लहान मुलगी धावत आली आणि म्हणाली , आजी , गवत नसते नुसतेच  हिरवे आणि आकाश नसते नुसतेच निळेशार . आणि माणसे असतात इंद्रधनुष्याची बनलेली …

अरेच्चा माझा हरवलेला लोलक हिला कुठे सापडला बरे ??

त्या देवळातील झुंबराला अजून असे किती लोलक आहेत कुणास ठाऊक ?

 

 

 

उत्तराच्या शोधार्थ मी आहेच ….आपणास काही सुचते का याचे उत्तर ????