<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Macro, Copy chart to clipboard doesn't work! in QlikView</title>
    <link>https://community.qlik.com/t5/QlikView/Macro-Copy-chart-to-clipboard-doesn-t-work/m-p/340522#M576650</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello &lt;SPAN class="jiveTT-hover-user jive-username-link"&gt;quintenl&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ActiveDocument.GetApplication.WaitForIdle doesn't need the parameter 500, its not kinda Sleep() method.&lt;/P&gt;&lt;P&gt;It waits until the last group of commands to an object are done!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Actually it should be like bellow:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ActiveDocument.GetSheetObject(x).GetSheet().Activate()&lt;/P&gt;&lt;P&gt;ActiveDocument.GetApplication.WaitForIdle&lt;/P&gt;&lt;P&gt;ActiveDocument.GetSheetObject(x).CopyBitmapToClipboard()&lt;/P&gt;&lt;P&gt;ExcelSheet.Paste ExcelSheet.Range(ArrayObjectPos(counter))&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope it works for you&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 04 Oct 2012 13:51:10 GMT</pubDate>
    <dc:creator>Hatus</dc:creator>
    <dc:date>2012-10-04T13:51:10Z</dc:date>
    <item>
      <title>Macro, Copy chart to clipboard doesn't work!</title>
      <link>https://community.qlik.com/t5/QlikView/Macro-Copy-chart-to-clipboard-doesn-t-work/m-p/340521#M576649</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hey all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a problem with the code "copybitmaptoclipboard". If i want to copy a chart to my clipboard it just takes the previous copy (not a chart, that's a table).&lt;/P&gt;&lt;P&gt;As you can see I used a for loop to itterate trough my arrays from objectID's, Object positions and excel sheets.&lt;/P&gt;&lt;P&gt;So my question is, how I can copy the chart and paste it in my excel sheet and it doesn't paste the last copied table?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Content array's:&lt;/P&gt;&lt;P&gt;ArrayObjectPos: ("A1","B6")&lt;/P&gt;&lt;P&gt;ArrayObjectID: ("TB23","CH125")&lt;/P&gt;&lt;P&gt;ArrayObjectSheet: (1,2)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;ArrayObjectPos = Split(Macro_Table.GetCell(row+1,13).text,",") &lt;SPAN style="color: #008000;"&gt;'array with positions of the tables and charts (in order)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;ArrayObjectID = Split(Macro_Table.GetCell(row+1,12).text,",") &lt;SPAN style="color: #008000;"&gt;'array with the object id's from the dashboard&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;ArrayObjectSheet = Split(Macro_Table.GetCell(row+1,14).text,",") &lt;SPAN style="color: #008000;"&gt;'array with worksheets in excel&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;counter = 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #008000;"&gt;'Paste tables and charts in excel sheets&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff;"&gt;for each &lt;/SPAN&gt;x in ArrayObjectID &lt;SPAN style="color: #008000;"&gt;'loop trough every objectID&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;for &lt;/SPAN&gt;i = 0 to ActiveDocument.NoOfSheets - 1 '&lt;SPAN style="color: #008000;"&gt;loop trough every sheet in my qlikview file&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ActiveDocument.GetSheet(i).Activate&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;if &lt;/SPAN&gt;not isnull(ActiveDocument.GetSheetObject(x)) &lt;SPAN style="color: #0000ff;"&gt;then&lt;/SPAN&gt;&lt;SPAN style="color: #008000;"&gt; 'Check if the object x is on the active sheet&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;if &lt;/SPAN&gt;left(x,1) = "T" then '&lt;SPAN style="color: #008000;"&gt;Check if it is a table object&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set ExcelSheet = ExcelDocument.Worksheets(Cint(ArrayObjectSheet(counter)))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ActiveDocument.GetSheetObject(x).CopyTableToClipboard(True)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ExcelSheet.Paste ExcelSheet.Range(ArrayObjectPos(counter))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;else &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set ExcelSheet = ExcelDocument.Worksheets(Cint(ArrayObjectSheet(counter)))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'ActiveDocument.GetApplication.Waitforidle 500 &lt;SPAN style="color: #008000;"&gt;'THIS DOESN'T WORK, don't know if this is the problem?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ActiveDocument.GetSheetObject(x).CopyBitmapToClipboard()&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ExcelSheet.Paste ExcelSheet.Range(ArrayObjectPos(counter))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;end if&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;exit for &lt;SPAN style="color: #008000;"&gt;'exit loop to get next objectid&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;end if&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;next&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; counter = counter + 1&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff;"&gt;next&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I searched a long time to find a solution and probably it is a simple solution &lt;IMG src="https://community.qlik.com/legacyfs/online/emoticons/silly.png" /&gt;, but I didn't found it yet&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Apr 2012 08:21:38 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Macro-Copy-chart-to-clipboard-doesn-t-work/m-p/340521#M576649</guid>
      <dc:creator />
      <dc:date>2012-04-06T08:21:38Z</dc:date>
    </item>
    <item>
      <title>Re: Macro, Copy chart to clipboard doesn't work!</title>
      <link>https://community.qlik.com/t5/QlikView/Macro-Copy-chart-to-clipboard-doesn-t-work/m-p/340522#M576650</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello &lt;SPAN class="jiveTT-hover-user jive-username-link"&gt;quintenl&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ActiveDocument.GetApplication.WaitForIdle doesn't need the parameter 500, its not kinda Sleep() method.&lt;/P&gt;&lt;P&gt;It waits until the last group of commands to an object are done!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Actually it should be like bellow:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ActiveDocument.GetSheetObject(x).GetSheet().Activate()&lt;/P&gt;&lt;P&gt;ActiveDocument.GetApplication.WaitForIdle&lt;/P&gt;&lt;P&gt;ActiveDocument.GetSheetObject(x).CopyBitmapToClipboard()&lt;/P&gt;&lt;P&gt;ExcelSheet.Paste ExcelSheet.Range(ArrayObjectPos(counter))&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope it works for you&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 04 Oct 2012 13:51:10 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Macro-Copy-chart-to-clipboard-doesn-t-work/m-p/340522#M576650</guid>
      <dc:creator>Hatus</dc:creator>
      <dc:date>2012-10-04T13:51:10Z</dc:date>
    </item>
  </channel>
</rss>

