Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
pgrs4219
Contributor III
Contributor III

difficulties with macros

Hi Qlik community,

Am running Macros for "copy object" , Export Excel and Export email using the following script. copy object is working in my local the moment when i published into the server (AJAX) none of them are working .please help me

"Copy object"

Sub copy()

ActiveDocument.GetSheetObject("CH12").CopyBitmapToClipboard

End Sub   


"Export Excel"

FUNCTION ExcelExport(objID)

  set obj = ActiveDocument.GetSheetObject( objID )

  w = obj.GetColumnCount

  if obj.GetRowCount>1001 then

    h=1000

  else h=obj.GetRowCount

  end if

  Set objExcel = CreateObject("Excel.Application")

  objExcel.Workbooks.Add

  objExcel.Worksheets(1).select()

  objExcel.Visible = True

  set CellMatrix = obj.GetCells2(0,0,w,h)

  column = 1

  for cc=0 to w-1

   objExcel.Cells(1,column).Value = CellMatrix(0)(cc).Text

   objExcel.Cells(1,column).EntireRow.Font.Bold = True

   column = column +1

  next

  c = 1

  r =2

  for RowIter=1 to h-1

    for ColIter=0 to w-1

      objExcel.Cells(r,c).Value = CellMatrix(RowIter)(ColIter).Text

      c = c +1

    next

   r = r+1

   c = 1

next

END FUNCTION

SUB CallExample

   ExcelExport( "CH12" )

END SUB

Here i use CallExample as the macro Action name

Export email


sub mSendMail

          Dim objOutlk 'Outlook

          Dim objMail 'Email item

          Dim strMsg

          dim strMailTo

          dim sString

          dim oldFormat

          Dim Rng

          Const olMailItem = 0

          Const CdoReferenceTypeName = 1

          Set objOutlk = CreateObject("Outlook.Application")

          Set objMail = objOutlk.createitem(olMailItem)

          Set Rng = Nothing

          objMail.To = "amit.kumar@teamcomputers.com"

          objMail.subject = "OMS DASHBOARD"

          ActiveDocument.GetSheetObject("CH12").CopyBitmapToClipboard.CopyBitmapToClipboard true

          ActiveDocument.Sheets("Dashboard-email").ExportBitmapToFile "\\172.16.11.211\Documents\OMS DASHBOARD.jpeg"

          objMail.attachments.add("\\172.16.11.211\Documents\OMS DASHBOARD.jpeg")

          strMsg = "This is an automatic generated email from QlikView for OMS DASHBOARD."

          objMail.body = strMsg

    objMail.HTMLBODY = "<HTML><BODY><img align=baseline border=0 hspace=0 src='cid:\\172.16.11.211\Documents\OMS DASHBOARD.jpeg'</BODY></HTML>"

            objMail.Send

          Set objMail = Nothing

          Set objOutlk = Nothing

    Msgbox " Mail delivered"

end sub


Please help me with This

6 Replies
Gysbert_Wassenaar

the moment when i published into the server (AJAX) none of them are working

Macro's like that don't work on the server. The ajax client runs in a browser. It can't run the macro code to create an excel instance or an outlook instance. You can try using IE and the IE plugin. Perhaps that combination works.


talk is cheap, supply exceeds demand
pgrs4219
Contributor III
Contributor III
Author

Hi Wassenaar,

Thanks for the Quick Reply, i just uploaded QVW into Access point,its not working.Please reply here

rubenmarin

Hi, if installing desktop version is an option, users with the need to use the macro can open the document in server using desktop.

Note that users must allow system access to macro security, wich is not the default option.

pgrs4219
Contributor III
Contributor III
Author

Hi Ruben marin,

Thanks for your reply, i didn't get you.But my problem is the script which i posted earlier is not working in Access point. One of the script which is copy object is Working at desktop ,but not in Access point.

Thanks in Advance

rubenmarin

Hi, as Gysbert saids, it won't work on Access Point, AJAX won't allow the macro to access the hard drive (so you can't create the excel or the mail), I don't know if there is a way of make that work using IE plugin, it will be good (or worrisome for security reasons) to know a way.

Sorry to say but the only option I know to use macros that requires system access is using desktop, I just was trying to give a workaround in case some remote users needs to use the macro, wich is open the documents in server using desktop, not using Access Point.

pgrs4219
Contributor III
Contributor III
Author

Thanks for you reply Ruben.