<?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 to Assign Formatting Values to Object Properties in QlikView</title>
    <link>https://community.qlik.com/t5/QlikView/Macro-to-Assign-Formatting-Values-to-Object-Properties/m-p/1246997#M395248</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;If I look on this example from the APIGuide.qvw:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;rem create new shortcut button - clear except locked&lt;/P&gt;&lt;P&gt;set newbutton = ActiveDocument.ActiveSheet.CreateButton&lt;/P&gt;&lt;P&gt;set prop = newbutton.GetProperties&lt;/P&gt;&lt;P&gt;prop.Text.v = "Clear"&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;prop.BkgColor.PrimaryCol.Col = RGB(78,99,15)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;prop.BkgMode = 1&lt;/P&gt;&lt;P&gt;prop.Type = 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;prop.ShortcutFunction = 4&lt;/P&gt;&lt;P&gt;newbutton.SetProperties prop&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it seems that your "&lt;STRONG&gt;.v&lt;/STRONG&gt;" on the end from property is wrong. Beside them - do you really need macros for all the formatting-stuff?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- Marcus&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 30 Nov 2016 12:21:39 GMT</pubDate>
    <dc:creator>marcus_sommer</dc:creator>
    <dc:date>2016-11-30T12:21:39Z</dc:date>
    <item>
      <title>Macro to Assign Formatting Values to Object Properties</title>
      <link>https://community.qlik.com/t5/QlikView/Macro-to-Assign-Formatting-Values-to-Object-Properties/m-p/1246995#M395246</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have been working with the API Guide to develop a macro for automating the process of updating the formatting of objects (charts, tables, buttons, etc.) on our company's applications.&amp;nbsp; One specific and representative example of the trouble we are having is given here.&amp;nbsp; I am trying to assign a variable to the background color property of each button on a given sheet.&amp;nbsp; It looks like the code is in line with the API Guide's suggestions and examples regarding this, but the code does not work and an error keeps preventing its execution.&amp;nbsp; However, I can't seem to figure out what is wrong with the code, even after further research and changes.&amp;nbsp; Here is the code in its present form:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sub ButtonColors()&lt;/P&gt;&lt;P&gt;&amp;nbsp; Dim buttonVars()&lt;/P&gt;&lt;P&gt;&amp;nbsp; index = 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; Set vars = ActiveDocument.GetVariableDescriptions&lt;/P&gt;&lt;P&gt;&amp;nbsp; For i = 0 To vars.Count - 1&lt;/P&gt;&lt;P&gt;&amp;nbsp; Set tempVar = vars.Item(i)&lt;/P&gt;&lt;P&gt;&amp;nbsp; varName = Trim(tempVar.Name)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; ' Get name of formatting variable and add it to the buttonVars array&lt;/P&gt;&lt;P&gt;&amp;nbsp; If InStr(UCase(varName), "_VLAYOUT_BUTTON") &amp;lt;&amp;gt; 0 Then&lt;/P&gt;&lt;P&gt;&amp;nbsp; Redim Preserve buttonVars(i)&lt;/P&gt;&lt;P&gt;&amp;nbsp; buttonVars(i) = varName&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; Set thisVar = ActiveDocument.Variables(varName)&lt;/P&gt;&lt;P&gt;&amp;nbsp; varContent = thisVar.GetRawContent&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;' msgBox(varName)&lt;/P&gt;&lt;P&gt;&amp;nbsp; End If&lt;/P&gt;&lt;P&gt;&amp;nbsp; Next&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; For j = 0 To ActiveDocument.NoOfSheets - 1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ActiveDocument.Sheets(j).Activate&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set MySheet = ActiveDocument.GetSheet(j)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Objects = MySheet.GetSheetObjects&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For k = lBound(Objects) To uBound(Objects)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Objects(k).GetObjectType = 5 Then ' Buttons&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set prop = Objects(k).GetProperties ' Open the properties of the currently selected button&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; prop.Layout.BkgColor.PrimaryCol.IsCalculated = True ' The background color uses a variable calculation&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; prop.Layout.BkgColor.PrimaryCol.Col.v = "$(_vLayout_Button)" ' Set the calculated field to the button layout variable value&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Objects(k).SetProperties prop ' Set the background property for the currently selected button&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;/P&gt;&lt;P&gt;&amp;nbsp; Next&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;End Sub&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Nov 2016 16:06:37 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Macro-to-Assign-Formatting-Values-to-Object-Properties/m-p/1246995#M395246</guid>
      <dc:creator />
      <dc:date>2016-11-29T16:06:37Z</dc:date>
    </item>
    <item>
      <title>Re: Macro to Assign Formatting Values to Object Properties</title>
      <link>https://community.qlik.com/t5/QlikView/Macro-to-Assign-Formatting-Values-to-Object-Properties/m-p/1246996#M395247</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Eugene,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I just did some small changes in your code. The below code will enable the calculated base color option for all the buttons in your application. But I am really not sure what you are trying to assign in the calculated base color. Do you have more than one color variable for each button? If you can create one small sample file (two sheets with button)&amp;nbsp; and explain us what is your requirement, It would be easy for us to guide you further. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sub ButtonColors()&lt;/P&gt;&lt;P&gt;&amp;nbsp; Dim buttonVars()&lt;/P&gt;&lt;P&gt;&amp;nbsp; index = 0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; Set vars = ActiveDocument.GetVariableDescriptions&lt;/P&gt;&lt;P&gt;&amp;nbsp; For i = 0 To vars.Count - 1&lt;/P&gt;&lt;P&gt;&amp;nbsp; Set tempVar = vars.Item(i)&lt;/P&gt;&lt;P&gt;&amp;nbsp; varName = Trim(tempVar.Name)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; ' Get name of formatting variable and add it to the buttonVars array&lt;/P&gt;&lt;P&gt;&amp;nbsp; If InStr(UCase(varName), "_VLAYOUT_BUTTON") &amp;lt;&amp;gt; 0 Then&lt;/P&gt;&lt;P&gt;&amp;nbsp; Redim Preserve buttonVars(i)&lt;/P&gt;&lt;P&gt;&amp;nbsp; buttonVars(i) = varName&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; Set thisVar = ActiveDocument.Variables(varName)&lt;/P&gt;&lt;P&gt;&amp;nbsp; varContent = thisVar.GetRawContent&lt;/P&gt;&lt;P&gt;'msgBox(varName)&lt;/P&gt;&lt;P&gt;&amp;nbsp; End If&lt;/P&gt;&lt;P&gt;&amp;nbsp; Next&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; For j = 0 To ActiveDocument.NoOfSheets - 1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ActiveDocument.Sheets(j).Activate&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Objects = ActiveDocument.ActiveSheet.GetSheetObjects&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For k = lBound(Objects) To uBound(Objects)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If Objects(k).GetObjectType = 5 Then ' Buttons&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msgbox "Button"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set prop = Objects(k).GetProperties ' Open the properties of the currently selected button&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; prop.BkgColor.PrimaryCol.IsCalculated = True ' The background color uses a variable calculation&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;&amp;nbsp; ' prop.BkgColor.PrimaryCol.Col.v = "$(_vLayout_Button)" ' Set the calculated field to the button layout variable value &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #ff0000;"&gt; ' Kindly explain us this part&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Objects(k).SetProperties prop ' Set the background property for the currently selected button&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End If&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;Next &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;End Sub&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Nov 2016 18:05:34 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Macro-to-Assign-Formatting-Values-to-Object-Properties/m-p/1246996#M395247</guid>
      <dc:creator>tamilarasu</dc:creator>
      <dc:date>2016-11-29T18:05:34Z</dc:date>
    </item>
    <item>
      <title>Re: Macro to Assign Formatting Values to Object Properties</title>
      <link>https://community.qlik.com/t5/QlikView/Macro-to-Assign-Formatting-Values-to-Object-Properties/m-p/1246997#M395248</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;If I look on this example from the APIGuide.qvw:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;rem create new shortcut button - clear except locked&lt;/P&gt;&lt;P&gt;set newbutton = ActiveDocument.ActiveSheet.CreateButton&lt;/P&gt;&lt;P&gt;set prop = newbutton.GetProperties&lt;/P&gt;&lt;P&gt;prop.Text.v = "Clear"&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;prop.BkgColor.PrimaryCol.Col = RGB(78,99,15)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;prop.BkgMode = 1&lt;/P&gt;&lt;P&gt;prop.Type = 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;prop.ShortcutFunction = 4&lt;/P&gt;&lt;P&gt;newbutton.SetProperties prop&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it seems that your "&lt;STRONG&gt;.v&lt;/STRONG&gt;" on the end from property is wrong. Beside them - do you really need macros for all the formatting-stuff?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- Marcus&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Nov 2016 12:21:39 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Macro-to-Assign-Formatting-Values-to-Object-Properties/m-p/1246997#M395248</guid>
      <dc:creator>marcus_sommer</dc:creator>
      <dc:date>2016-11-30T12:21:39Z</dc:date>
    </item>
  </channel>
</rss>

