Announcement

Collapse
No announcement yet.

WebBrowser Design Issue: $10

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • WebBrowser Design Issue: $10



    http://www.excelforum.com/excel-prog...92#post2707892

    OK I've pasted the above URL here because the thread which I started kind of walks through the entire issue. Basically I have a macro which when run creates a new sheet labled "incident summary," places a WebBrowser control on the sheet, and is suppose to display a tag cloud created via some jscript code in the WebBrowser.

    Unfortunately in order to get the tag cloud to display I must click on "Design Mode" button exactly twice and then voila it magically appears. I can provide the three bits of code necessary for the tag cloud creation if it is necessary to figure out this issue.

    I tried recording myself clicking on the "Design Mode" button twice but the result was a blank macro for some reason. Please help, I want to just be done with this headache already.

  • #2
    Re: WebBrowser Design Issue: $10

    I'll have a look at this, and let you know if I would be able to help.
    Cheers,

    S M C

    Click To Read: How To Use Tags In Your Threads/Posts
    Please take time to read Forum Rules before posting
    Message To Cross Posters

    Comment


    • #3
      Re: WebBrowser Design Issue: $10

      Getting a bit late here. Wasn't able to work this out in a short time. Will be back in the morning. Until then, if anybody is interested, please go ahead.
      Cheers,

      S M C

      Click To Read: How To Use Tags In Your Threads/Posts
      Please take time to read Forum Rules before posting
      Message To Cross Posters

      Comment


      • #4
        Re: WebBrowser Design Issue: $10

        Thank you for the interest in working on this. Look forward to hopefully finding a solution! Thanks a bunch and as I said please let me know if you need the files that the Tag Cloud generation runs off of.

        Comment


        • #5
          Re: WebBrowser Design Issue: $10

          Alright so I take it that you only face an issue with the design mode needing to be evoked twice. Can you please post the entire error free code, except for the design mode issue.
          Cheers,

          S M C

          Click To Read: How To Use Tags In Your Threads/Posts
          Please take time to read Forum Rules before posting
          Message To Cross Posters

          Comment


          • #6
            Re: WebBrowser Design Issue: $10

            Awaiting the complete set of code....
            Cheers,

            S M C

            Click To Read: How To Use Tags In Your Threads/Posts
            Please take time to read Forum Rules before posting
            Message To Cross Posters

            Comment


            • #7
              Re: WebBrowser Design Issue: $10

              Hi Sorry about not getting back to this until now. The following is the entirety of my Macro:

              Code:
              Sub MakeTable3()
              
                  Dim CloudData As Range
                  Dim Pt As PivotTable
                  Dim strField As String
                  Dim oDic As Object
                  Dim varData
                  Dim varItems
                  Dim varKeys
                  Dim n As Long
                  Dim wksTable As Worksheet
                  Dim lngTop5Count As Long
              
              
                  Const cstrSHEET_NAME As String = "Incident Summary"
                  On Error Resume Next
              
              
                  ''Asks user to specify which column of data they wish to summarize
                  'Set CloudData = Application.InputBox("Please select a range with the incident information you wish to summarize.", _
                  '                                     "Specify Incident Information", Selection.Address, , , , , 8)
                  
                  Set CloudData = Selection
                  
                  On Error GoTo err_handle
                  Application.ScreenUpdating = False
              
              
                  If Not CloudData Is Nothing Then
                      Set oDic = CreateObject("Scripting.Dictionary")
                      strField = Cells(1, CloudData.Column).Value
                      With CloudData
                          If .Row = 1 Then
                              varData = .Resize(.Rows.Count - 1).Offset(1).Value
                          Else
                              varData = .Value
                          End If
                      End With
                      For n = 1 To UBound(varData, 1)
                          If Len(varData(n, 1)) > 0 Then
                              oDic(CStr(varData(n, 1))) = Val(oDic(CStr(varData(n, 1)))) + 1
                          End If
                      Next n
              
              
                      If oDic.Count > 0 Then
              
              
                          On Error Resume Next
                          Application.DisplayAlerts = False
                          Sheets(cstrSHEET_NAME).Delete
                          Application.DisplayAlerts = True
                          On Error GoTo err_handle
              
              
                          Set wksTable = Sheets.Add
                          With wksTable
                              .Name = cstrSHEET_NAME
                              .Range("A1:B1").Value = Array(strField, "Total")
                              varItems = oDic.Items
                              varKeys = oDic.Keys
                              If oDic.Count > 5 Then
                                 lngTop5Count = Application.Large(varItems, 5)
                              Else
                                 lngTop5Count = 0
                              End If
                              For n = LBound(varItems) To UBound(varItems)
                                  If varItems(n) >= lngTop5Count Then
                                      With .Cells(.Rows.Count, "A").End(xlUp).Offset(1)
                                          .Value = varKeys(n)
                                          .Offset(, 1).Value = varItems(n)
                                      End With
                                  End If
                              Next n
                              'Sorts frequency table descending.
                              With .Range("A1").CurrentRegion
                                  .Sort .Cells(1, 2), xlDescending
                              End With
                          End With
              
              
                      End If
                  End If
                  
              '    ActiveSheet.OLEObjects.Add(ClassType:="Shell.Explorer.2", Link:=False, _
              '        DisplayAsIcon:=False, Left:=383.25, Top:=45, Width:=324.75, Height:= _
              '        225).Select
              '    ActiveSheet.Shapes("WebBrowser1").ScaleWidth 1.480369515, msoFalse, _
              '        msoScaleFromTopLeft
              '    ActiveSheet.Shapes("WebBrowser1").ScaleHeight 1.3966666667, msoFalse, _
              '        msoScaleFromTopLeft
              
              
              With ActiveSheet.OLEObjects.Add(ClassType:="Shell.Explorer.2", Link:=False, _
                      DisplayAsIcon:=False, Left:=383.25, Top:=45, Width:=324.75, Height:= _
                      225).ShapeRange
                  .ScaleWidth 1.480369515, msoFalse, msoScaleFromTopLeft
                  .ScaleHeight 1.3966666667, msoFalse, msoScaleFromTopLeft
              End With
              
              
              leave:
                  Application.ScreenUpdating = True
                  
                  Call test(CloudData)
                  
                  Exit Sub
              err_handle:
                  MsgBox Err.Description
                  Resume leave
                  
              
              
              End Sub
              
              
              Public Sub test(rng As Range)
              'this subroutine produces a tag cloud and places it within the Web Browser contained
              'on "Incident Summary" (cstrSHEET_NAME) worksheet. It does this by calling WordCloud
              'subroutine which creates the tag cloud using a jscript file stored locally.
              
              
               'WordCloud Selection
               
               WordCloud rng
               
              End Sub
              
              
              
              
              Sub WordCloud(rngInput As Range)
              Dim wbString As String
              Dim myFile As String
              Dim rngVar As Variant
              Dim fnum As Integer
              Dim i As Integer
              
              
              'Set WordCloud = Selection
              rngVar = Application.Transpose(rngInput.Value)
              
              
              
              
              
              
              wbString = "<html>" & vbCr
              wbString = wbString & "  <head>"
              
              
              'wbString = wbString & "    <link rel=""stylesheet"" type=""text/css"" href=""http://visapi-gadgets.googlecode.com/svn/trunk/wordcloud/wc.css""></script>" & vbCr
              'wbString = wbString & "    <script type=""text/javascript"" src=""http://visapi-gadgets.googlecode.com/svn/trunk/wordcloud/wc.js""></script>" & vbCr
              'wbString = wbString & "    <script type=""text/javascript"" src=""http://www.google.com/jsapi""></script>" & vbCr
              
              
              wbString = wbString & "    <link rel=""stylesheet"" type=""text/css"" href=""wc.css""></script>" & vbCr
              wbString = wbString & "    <script type=""text/javascript"" src=""wcbackup3.js""></script>" & vbCr
              wbString = wbString & "    <script type=""text/javascript"" src=""jsapi""></script>" & vbCr
              
              
              wbString = wbString & "  </head>" & vbCr
              wbString = wbString & "  <body>" & vbCr
              wbString = wbString & "    <div id=""wcdiv""></div>" & vbCr
              wbString = wbString & "    <script type=""text/javascript"">" & vbCr
              wbString = wbString & "      google.load('visualization', '1');" & vbCr
              wbString = wbString & "      google.setOnLoadCallback(draw);" & vbCr
              wbString = wbString & "      function draw() {" & vbCr
              wbString = wbString & "        var data = new google.visualization.DataTable();" & vbCr
              wbString = wbString & "        data.addColumn('string', 'Text1');" & vbCr
              wbString = wbString & "        data.addRows(" & UBound(rngVar) & ");" & vbCr
              
              
              For i = 1 To UBound(rngVar)
                  wbString = wbString & "        data.setCell(" & i - 1 & ", 0,'" & rngVar(i) & "');" & vbCr
              Next i
              
              
              wbString = wbString & "        var outputDiv = document.getElementById('wcdiv');" & vbCr
              wbString = wbString & "        var wc = new WordCloud(outputDiv);" & vbCr
              wbString = wbString & "        wc.draw(data, null);" & vbCr
              wbString = wbString & "      }" & vbCr
              wbString = wbString & "    </script>" & vbCr
              wbString = wbString & "  </body>" & vbCr
              wbString = wbString & "</html>"
              
              
              
              
              myFile = ThisWorkbook.Path & "\WordCloud.htm"
              fnum = FreeFile()
              Open myFile For Output As fnum
              Print #fnum, wbString
              Close #fnum
              
              
              With Sheets("Incident Summary").OLEObjects("WebBrowser1").Object
              'With Sheets("Incident Summary").WebBrowser1
                  .Silent = True
                  .Navigate (myFile)
              '    Do
              '        DoEvents
              '    Loop Until .ReadyState = READYSTATE_COMPLETE
              
              
              Do
                      DoEvents
                  Loop While .Busy
                  
              '    .Document.body.Scroll = "no"
              End With
              
              
              
              
              
              
              MsgBox "Macro Finished."
              
              
              
              
              End Sub
              In order for this to work correctly and generate the tag cloud it requires three files to be kept within whatever folder you keep this workbook in. They are referenced within the macro here:

              Code:
              wbString = wbString & "    <link rel=""stylesheet"" type=""text/css"" href=""wc.css""></script>" & vbCrwbString = wbString & "    <script type=""text/javascript"" src=""wcbackup3.js""></script>" & vbCr
              wbString = wbString & "    <script type=""text/javascript"" src=""jsapi""></script>" & vbCr
              Here is the code for the three necessary files:

              wc.css
              This simply sets the font size and color.

              Code:
              .word-cloud {font-family: arial; font-size: 10px; }
              .word-cloud-1 {font-size: 12px; color: #00ff00; }
              .word-cloud-2 {font-size: 20px; color: #ffbf00; }
              .word-cloud-3 {font-size: 28px; color: #ffbf00; }
              .word-cloud-4 {font-size: 36px; color: #ff8000; }
              .word-cloud-5 {font-size: 42px; color: #ff8000; }
              .word-cloud-6 {font-size: 50px; color: #ff4000; }
              .word-cloud-7 {font-size: 58px; color: #ff4000; }
              .word-cloud-8 {font-size: 66px; color: #ff0000; }
              .word-cloud-9 {font-size: 72px; color: #ff0000; }
              wcbackup3.js
              This code actually does work behind the generation of the tag cloud

              Code:
              /*A list of words, where the size and color of each word is determined
              by the number of times it appears in the text.
              Uses the Google Visalization API.
              
              
              Data Format
                Any number of rows and columns.
                All string values are concatenated, other column types are ignored.
              
              
              Configuration options:
                none
              
              
              Methods
                none
              
              
              Events
                none
              
              
              */
              
              
              WordCloud = function(container) {
                this.container = container;
              }
              
              
              //stopWords Array...to replace BLANK/NULL neccessary to have the backslash (\) as an escape character in order for replace to work 
              WordCloud.stopWords= new Array();
              
              
              WordCloud.stopWords[0] = ",";
              WordCloud.stopWords[1] = "-";
              WordCloud.stopWords[2] = "noc";
              WordCloud.stopWords[3] = "blank\/null";
              
              
              // Add all word in a given text to a list and map.
              // list is a list of unique words.
              // map is a set of all found words.
              
              
              /*Commented out WordCloud.addWords because all it does is calls WordCloud.addWord
                 WordCloud.addWords = function(text, list, map) {
              
              
                      WordCloud.addWord(text, list, map);
              
              
                };
              */
                
              // Add a single word to a list and map.
              // list is a list of unique words.
              // map is a set of all found words.
              
              
              WordCloud.addWord = function(text, list, map) {
                var wl = text.toLowerCase();
               
                if (map[wl]) {
                  map[wl]++;
                } else {
                  map[wl] = 1;
                  list.push(text);
                }
              };
              
              
              WordCloud.MIN_UNIT_SIZE = 1;
              WordCloud.MAX_UNIT_SIZE = 7;
              WordCloud.RANGE_UNIT_SIZE = WordCloud.MAX_UNIT_SIZE - WordCloud.MIN_UNIT_SIZE;
              
              
              WordCloud.prototype.draw = function(data, options) {
              
              
              var wordMap = {};
                var wordList = [];
                  
              //for each row and column add one to the row and column counts
                  for (var rowInd = 0; rowInd < data.getNumberOfRows(); rowInd++) {
                  for (var colInd = 0; colInd < data.getNumberOfColumns(); colInd++) {
                  
              //if the column data is a string
                    if (data.getColumnType(colInd) == 'string') {
                    
                  //Set the variable "CellContents" equal to the value of the columns/rows
                  var CellContents = data.getValue(rowInd, colInd);
                  
                  //Convert all CellContents to lower case capitalization
                  CellContents = CellContents.toLowerCase();
                  
                  //Globally replace all commas with "" (nothing) i.e. remove them as to make seperation more easily discernable in the word cloud.
                  for (i=0; i<=WordCloud.stopWords.length;i++)
                  {
                  
                  MyRegExp = new RegExp(WordCloud.stopWords[i], "g");
                  CellContents = CellContents.replace(MyRegExp,"");
                  
                  }
                  
                  //The addwords of WordCloud are a function of CellContents, wordList, and wordMap
                      //WordCloud.addWords(CellContents, wordList, wordMap);
                      WordCloud.addWord(CellContents, wordList, wordMap);
                    }
                  }
                }
              
              
              // Compute frequency range...set max = 0 and min = 999999? 
                var minFreq = 999999;
                var maxFreq = 0;
                
              // for each word in wordMap 
                for (var word in wordMap) {
                  
                  //Set the variable f = wordMap function (which is a function of word)
                  var f = wordMap[word];
                  
                  //Set minFreq equal to whichever is less between minFreq and f
                  minFreq = Math.min(minFreq, f);
                  
                  //Set maxFreq equal to whichever is less between maxFreq and f
                  maxFreq = Math.max(maxFreq, f);
                }
                
              //Set the variable "range" equal to the difference between maxFreq and minFreq
                var range = maxFreq - minFreq;
                
                //By setting range - to the max of range and 4, if the range is less than 4 it will be set to 4
                range = Math.max(range, 4);
              
              
                // Idea: Add option to sort by text, freq or no sort
              
              
                //create empy html variable
                var html = [];
                
                //Initiate HTML push
                html.push('<div class="word-cloud">');
                
               
                for (var i = 0; i < wordList.length; i++) {
                  var word = wordList[i];
                  var text = word;
                  var freq = wordMap[word.toLowerCase()];
                  var size = WordCloud.MIN_UNIT_SIZE +
                       Math.round((freq - minFreq) / range * WordCloud.RANGE_UNIT_SIZE);
              
              
                   html.push('<span class="word-cloud-', size, '">', text, '</span> ');
              
              
              //Place a comma after the printed description as long as it is not the last description
               if (i < wordList.length-1) {
                    html.push('<font size="7">,</font>');
              }
              
              
                }
                
                //End HTML Push
                html.push('</div>');
              
              
                this.container.innerHTML = html.join('');
                
              };
              jsapi
              This portion of the code I'm actually pretty confused about but hey it seems to work

              Code:
              if(!window['googleLT_']){window['googleLT_']=(new Date()).getTime();}if (!window['google']) {window['google'] = {};
              }
              if (!window['google']['loader']) {
              window['google']['loader'] = {};
              google.loader.ServiceBase = 'http://www.google.com/uds';
              google.loader.GoogleApisBase = 'http://ajax.googleapis.com/ajax';
              google.loader.ApiKey = 'notsupplied';
              google.loader.KeyVerified = true;
              google.loader.LoadFailure = false;
              google.loader.Secure = false;
              google.loader.GoogleLocale = 'www.google.com';
              google.loader.ClientLocation = {"latitude":38.96,"longitude":-77.337,"address":{"city":"Reston","region":"VA","country":"USA","country_code":"US"}};
              google.loader.AdditionalParams = '';
              (function() {var d=void 0,g=!0,h=null,j=!1,k=encodeURIComponent,l=window,m=document;function n(a,b){return a.load=b}var p="push",q="replace",r="charAt",t="indexOf",u="ServiceBase",v="name",w="getTime",x="length",y="prototype",z="setTimeout",A="loader",B="substring",C="join",D="toLowerCase";function E(a){return a in F?F[a]:F[a]=-1!=navigator.userAgent[D]()[t](a)}var F={};function G(a,b){var c=function(){};c.prototype=b[y];a.S=b[y];a.prototype=new c}
              function H(a,b,c){var e=Array[y].slice.call(arguments,2)||[];return function(){var c=e.concat(Array[y].slice.call(arguments));return a.apply(b,c)}}function I(a){a=Error(a);a.toString=function(){return this.message};return a}function J(a,b){for(var c=a.split(/\./),e=l,f=0;f<c[x]-1;f++)e[c[f]]||(e[c[f]]={}),e=e[c[f]];e[c[c[x]-1]]=b}function K(a,b,c){a[b]=c}if(!L)var L=J;if(!M)var M=K;google[A].v={};L("google.loader.callbacks",google[A].v);var N={},O={};google[A].eval={};L("google.loader.eval",google[A].eval);
              n(google,function(a,b,c){function e(a){var b=a.split(".");if(2<b[x])throw I("Module: '"+a+"' not found!");if("undefined"!=typeof b[1])f=b[0],c.packages=c.packages||[],c.packages[p](b[1])}var f=a,c=c||{};if(a instanceof Array||a&&"object"==typeof a&&"function"==typeof a[C]&&"function"==typeof a.reverse)for(var i=0;i<a[x];i++)e(a[i]);else e(a);if(a=N[":"+f]){c&&!c.language&&c.locale&&(c.language=c.locale);if(c&&"string"==typeof c.callback&&(i=c.callback,i.match(/^[[\]A-Za-z0-9._]+$/)))i=l.eval(i),c.callback=
              i;if((i=c&&c.callback!=h)&&!a.s(b))throw I("Module: '"+f+"' must be loaded before DOM onLoad!");i?a.m(b,c)?l[z](c.callback,0):a.load(b,c):a.m(b,c)||a.load(b,c)}else throw I("Module: '"+f+"' not found!");});L("google.load",google.load);
              google.R=function(a,b){b?(0==P[x]&&(Q(l,"load",R),!E("msie")&&!E("safari")&&!E("konqueror")&&E("mozilla")||l.opera?l.addEventListener("DOMContentLoaded",R,j):E("msie")?m.write("<script defer onreadystatechange='google.loader.domReady()' src=//:><\/script>"):(E("safari")||E("konqueror"))&&l[z](T,10)),P[p](a)):Q(l,"load",a)};L("google.setOnLoadCallback",google.R);
              function Q(a,b,c){if(a.addEventListener)a.addEventListener(b,c,j);else if(a.attachEvent)a.attachEvent("on"+b,c);else{var e=a["on"+b];a["on"+b]=e!=h?aa([c,e]):c}}function aa(a){return function(){for(var b=0;b<a[x];b++)a[b]()}}var P=[];google[A].N=function(){var a=l.event.srcElement;if("complete"==a.readyState)a.onreadystatechange=h,a.parentNode.removeChild(a),R()};L("google.loader.domReady",google[A].N);var ba={loaded:g,complete:g};function T(){ba[m.readyState]?R():0<P[x]&&l[z](T,10)}
              function R(){for(var a=0;a<P[x];a++)P[a]();P.length=0}google[A].d=function(a,b,c){if(c){var e;if("script"==a)e=m.createElement("script"),e.type="text/javascript",e.src=b;else if("css"==a)e=m.createElement("link"),e.type="text/css",e.href=b,e.rel="stylesheet";(a=m.getElementsByTagName("head")[0])||(a=m.body.parentNode.appendChild(m.createElement("head")));a.appendChild(e)}else"script"==a?m.write('<script src="'+b+'" type="text/javascript"><\/script>'):"css"==a&&m.write('<link href="'+b+'" type="text/css" rel="stylesheet"></link>')};
              L("google.loader.writeLoadTag",google[A].d);google[A].O=function(a){O=a};L("google.loader.rfm",google[A].O);google[A].Q=function(a){for(var b in a)"string"==typeof b&&b&&":"==b[r](0)&&!N[b]&&(N[b]=new U(b[B](1),a[b]))};L("google.loader.rpl",google[A].Q);google[A].P=function(a){if((a=a.specs)&&a[x])for(var b=0;b<a[x];++b){var c=a[b];"string"==typeof c?N[":"+c]=new V(c):(c=new W(c[v],c.baseSpec,c.customSpecs),N[":"+c[v]]=c)}};L("google.loader.rm",google[A].P);google[A].loaded=function(a){N[":"+a.module].l(a)};
              L("google.loader.loaded",google[A].loaded);google[A].M=function(){return"qid="+((new Date)[w]().toString(16)+Math.floor(1E7*Math.random()).toString(16))};L("google.loader.createGuidArg_",google[A].M);J("google_exportSymbol",J);J("google_exportProperty",K);google[A].b={};L("google.loader.themes",google[A].b);google[A].b.H="//www.google.com/cse/style/look/bubblegum.css";M(google[A].b,"BUBBLEGUM",google[A].b.H);google[A].b.J="//www.google.com/cse/style/look/greensky.css";M(google[A].b,"GREENSKY",google[A].b.J);
              google[A].b.I="//www.google.com/cse/style/look/espresso.css";M(google[A].b,"ESPRESSO",google[A].b.I);google[A].b.L="//www.google.com/cse/style/look/shiny.css";M(google[A].b,"SHINY",google[A].b.L);google[A].b.K="//www.google.com/cse/style/look/minimalist.css";M(google[A].b,"MINIMALIST",google[A].b.K);function V(a){this.a=a;this.o=[];this.n={};this.e={};this.f={};this.j=g;this.c=-1}
              V[y].g=function(a,b){var c="";b!=d&&(b.language!=d&&(c+="&hl="+k(b.language)),b.nocss!=d&&(c+="&output="+k("nocss="+b.nocss)),b.nooldnames!=d&&(c+="&nooldnames="+k(b.nooldnames)),b.packages!=d&&(c+="&packages="+k(b.packages)),b.callback!=h&&(c+="&async=2"),b.style!=d&&(c+="&style="+k(b.style)),b.noexp!=d&&(c+="&noexp=true"),b.other_params!=d&&(c+="&"+b.other_params));if(!this.j){google[this.a]&&google[this.a].JSHash&&(c+="&sig="+k(google[this.a].JSHash));var e=[],f;for(f in this.n)":"==f[r](0)&&e[p](f[B](1));
              for(f in this.e)":"==f[r](0)&&this.e[f]&&e[p](f[B](1));c+="&have="+k(e[C](","))}return google[A][u]+"/?file="+this.a+"&v="+a+google[A].AdditionalParams+c};V[y].t=function(a){var b=h;a&&(b=a.packages);var c=h;if(b)if("string"==typeof b)c=[a.packages];else if(b[x]){c=[];for(a=0;a<b[x];a++)"string"==typeof b[a]&&c[p](b[a][q](/^\s*|\s*$/,"")[D]())}c||(c=["default"]);b=[];for(a=0;a<c[x];a++)this.n[":"+c[a]]||b[p](c[a]);return b};
              n(V[y],function(a,b){var c=this.t(b),e=b&&b.callback!=h;if(e)var f=new X(b.callback);for(var i=[],o=c[x]-1;0<=o;o--){var s=c[o];e&&f.A(s);if(this.e[":"+s])c.splice(o,1),e&&this.f[":"+s][p](f);else i[p](s)}if(c[x]){b&&b.packages&&(b.packages=c.sort()[C](","));for(o=0;o<i[x];o++)s=i[o],this.f[":"+s]=[],e&&this.f[":"+s][p](f);if(!b&&O[":"+this.a]!=h&&O[":"+this.a].versions[":"+a]!=h&&!google[A].AdditionalParams&&this.j){c=O[":"+this.a];google[this.a]=google[this.a]||{};for(var S in c.properties)S&&":"==
              S[r](0)&&(google[this.a][S[B](1)]=c.properties[S]);google[A].d("script",google[A][u]+c.path+c.js,e);c.css&&google[A].d("css",google[A][u]+c.path+c.css,e)}else(!b||!b.autoloaded)&&google[A].d("script",this.g(a,b),e);if(this.j&&(this.j=j,this.c=(new Date)[w](),1!=this.c0))this.c=-1;for(o=0;o<i[x];o++)s=i[o],this.e[":"+s]=g}});
              V[y].l=function(a){if(-1!=this.c)ca("al_"+this.a,"jl."+((new Date)[w]()-this.c),g),this.c=-1;this.o=this.o.concat(a.components);google[A][this.a]||(google[A][this.a]={});google[A][this.a].packages=this.o.slice(0);for(var b=0;b<a.components[x];b++){this.n[":"+a.components[b]]=g;this.e[":"+a.components[b]]=j;var c=this.f[":"+a.components[b]];if(c){for(var e=0;e<c[x];e++)c[e].B(a.components[b]);delete this.f[":"+a.components[b]]}}};V[y].m=function(a,b){return 0==this.t(b)[x]};V[y].s=function(){return g};
              function X(a){this.D=a;this.q={};this.r=0}X[y].A=function(a){this.r++;this.q[":"+a]=g};X[y].B=function(a){this.q[":"+a]&&(this.q[":"+a]=j,this.r--,0==this.r&&l[z](this.D,0))};function W(a,b,c){this.name=a;this.C=b;this.p=c;this.u=this.h=j;this.k=[];google[A].v[this[v]]=H(this.l,this)}G(W,V);n(W[y],function(a,b){var c=b&&b.callback!=h;c?(this.k[p](b.callback),b.callback="google.loader.callbacks."+this[v]):this.h=g;(!b||!b.autoloaded)&&google[A].d("script",this.g(a,b),c)});W[y].m=function(a,b){return b&&b.callback!=h?this.u:this.h};W[y].l=function(){this.u=g;for(var a=0;a<this.k[x];a++)l[z](this.k[a],0);this.k=[]};
              var Y=function(a,b){return a.string?k(a.string)+"="+k(b):a.regex?b[q](/(^.*$)/,a.regex):""};W[y].g=function(a,b){return this.F(this.w(a),a,b)};
              W[y].F=function(a,b,c){var e="";a.key&&(e+="&"+Y(a.key,google[A].ApiKey));a.version&&(e+="&"+Y(a.version,b));b=google[A].Secure&&a.ssl?a.ssl:a.uri;if(c!=h)for(var f in c)a.params[f]?e+="&"+Y(a.params[f],c[f]):"other_params"==f?e+="&"+c[f]:"base_domain"==f&&(b="http://"+c[f]+a.uri[B](a.uri[t]("/",7)));google[this[v]]={};-1==b[t]("?")&&e&&(e="?"+e[B](1));return b+e};W[y].s=function(a){return this.w(a).deferred};W[y].w=function(a){if(this.p)for(var b=0;b<this.p[x];++b){var c=this.p[b];if(RegExp(c.pattern).test(a))return c}return this.C};function U(a,b){this.a=a;this.i=b;this.h=j}G(U,V);n(U[y],function(a,b){this.h=g;google[A].d("script",this.g(a,b),j)});U[y].m=function(){return this.h};U[y].l=function(){};U[y].g=function(a,b){if(!this.i.versions[":"+a]){if(this.i.aliases){var c=this.i.aliases[":"+a];c&&(a=c)}if(!this.i.versions[":"+a])throw I("Module: '"+this.a+"' with version '"+a+"' not found!");}return google[A].GoogleApisBase+"/libs/"+this.a+"/"+a+"/"+this.i.versions[":"+a][b&&b.uncompressed?"uncompressed":"compressed"]};
              U[y].s=function(){return j};var da=j,Z=[],ea=(new Date)[w](),ca=function(a,b,c){da||(Q(l,"unload",fa),da=g);if(c){if(!google[A].Secure&&(!google[A].Options||google[A].Options.csi===j))a=a[D]()[q](/[^a-z0-9_.]+/g,"_"),b=b[D]()[q](/[^a-z0-9_.]+/g,"_"),l[z](H($,h,"//gg.google.com/csi?s=uds&v=2&action="+k(a)+"&it="+k(b)),1E4)}else Z[p]("r"+Z[x]+"="+k(a+(b?"|"+b:""))),l[z](fa,5<Z[x]?0:15E3)},fa=function(){if(Z[x]){var a=google[A][u];0==a[t]("http:")&&(a=a[q](/^http:/,"https:"));$(a+"/stats?"+Z[C]("&")+"&nc="+(new Date)[w]()+"_"+
              ((new Date)[w]()-ea));Z.length=0}},$=function(a){var b=new Image,c=$.G++;$.z[c]=b;b.onload=b.onerror=function(){delete $.z[c]};b.src=a;b=h};$.z={};$.G=0;J("google.loader.recordStat",ca);J("google.loader.createImageForLogging",$);
              
              
              }) ();google.loader.rm({"specs":["feeds","spreadsheets","gdata","visualization",{"name":"sharing","baseSpec":{"uri":"http://www.google.com/s2/sharing/js","ssl":null,"key":{"string":"key"},"version":{"string":"v"},"deferred":false,"params":{"language":{"string":"hl"}}}},"search","orkut","ads","elements",{"name":"books","baseSpec":{"uri":"http://books.google.com/books/api.js","ssl":null,"key":{"string":"key"},"version":{"string":"v"},"deferred":true,"params":{"callback":{"string":"callback"},"language":{"string":"hl"}}}},{"name":"friendconnect","baseSpec":{"uri":"http://www.google.com/friendconnect/script/friendconnect.js","ssl":null,"key":{"string":"key"},"version":{"string":"v"},"deferred":false,"params":{}}},"identitytoolkit","ima",{"name":"maps","baseSpec":{"uri":"http://maps.google.com/maps?file\u003dgoogleapi","ssl":"https://maps-api-ssl.google.com/maps?file\u003dgoogleapi","key":{"string":"key"},"version":{"string":"v"},"deferred":true,"params":{"callback":{"regex":"callback\u003d$1\u0026async\u003d2"},"language":{"string":"hl"}}},"customSpecs":[{"uri":"http://maps.googleapis.com/maps/api/js","ssl":"https://maps.googleapis.com/maps/api/js","version":{"string":"v"},"deferred":true,"params":{"callback":{"string":"callback"},"language":{"string":"hl"}},"pattern":"^(3|3..*)$"}]},"payments","wave","annotations_v2","earth","language",{"name":"annotations","baseSpec":{"uri":"http://www.google.com/reviews/scripts/annotations_bootstrap.js","ssl":null,"key":{"string":"key"},"version":{"string":"v"},"deferred":true,"params":{"callback":{"string":"callback"},"language":{"string":"hl"},"country":{"string":"gl"}}}},"picker"]});
              google.loader.rfm({":search":{"versions":{":1":"1",":1.0":"1"},"path":"/api/search/1.0/c635244b28d6c397d2d5ccc22fd3126d/","js":"default+en.I.js","css":"default+en.css","properties":{":JSHash":"c635244b28d6c397d2d5ccc22fd3126d",":NoOldNames":false,":Version":"1.0"}},":language":{"versions":{":1":"1",":1.0":"1"},"path":"/api/language/1.0/57e8a5e8a66c850696b5c616d4a4fdb1/","js":"default+en.I.js","properties":{":JSHash":"57e8a5e8a66c850696b5c616d4a4fdb1",":Version":"1.0"}},":feeds":{"versions":{":1":"1",":1.0":"1"},"path":"/api/feeds/1.0/efe8f95c5756111c3e36c06dab50fd12/","js":"default+en.I.js","css":"default+en.css","properties":{":JSHash":"efe8f95c5756111c3e36c06dab50fd12",":Version":"1.0"}},":spreadsheets":{"versions":{":0":"1",":0.4":"1"},"path":"/api/spreadsheets/0.4/87ff7219e9f8a8164006cbf28d5e911a/","js":"default.I.js","properties":{":JSHash":"87ff7219e9f8a8164006cbf28d5e911a",":Version":"0.4"}},":ima":{"versions":{":1":"1",":1.7":"1"},"path":"/api/ima/1.7/9fd415db3bb953707e811e4827fe957b/","js":"default.I.js","properties":{":JSHash":"9fd415db3bb953707e811e4827fe957b",":Version":"1.7"}},":wave":{"versions":{":1":"1",":1.0":"1"},"path":"/api/wave/1.0/3b6f7573ff78da6602dda5e09c9025bf/","js":"default.I.js","properties":{":JSHash":"3b6f7573ff78da6602dda5e09c9025bf",":Version":"1.0"}},":annotations":{"versions":{":1":"1",":1.0":"1"},"path":"/api/annotations/1.0/ad1565d879cca9982c9467668024f1ac/","js":"default+en.I.js","properties":{":JSHash":"ad1565d879cca9982c9467668024f1ac",":Version":"1.0"}},":earth":{"versions":{":1":"1",":1.0":"1"},"path":"/api/earth/1.0/109c7b2bae7fe6cc34ea875176165d81/","js":"default.I.js","properties":{":JSHash":"109c7b2bae7fe6cc34ea875176165d81",":Version":"1.0"}},":picker":{"versions":{":1":"1",":1.0":"1"},"path":"/api/picker/1.0/b7e9eb7fd8c0e098a7173ce367b2b5c1/","js":"default.I.js","css":"default.css","properties":{":JSHash":"b7e9eb7fd8c0e098a7173ce367b2b5c1",":Version":"1.0"}}});
              google.loader.rpl({":scriptaculous":{"versions":{":1.8.3":{"uncompressed":"scriptaculous.js","compressed":"scriptaculous.js"},":1.9.0":{"uncompressed":"scriptaculous.js","compressed":"scriptaculous.js"},":1.8.2":{"uncompressed":"scriptaculous.js","compressed":"scriptaculous.js"},":1.8.1":{"uncompressed":"scriptaculous.js","compressed":"scriptaculous.js"}},"aliases":{":1.8":"1.8.3",":1":"1.9.0",":1.9":"1.9.0"}},":yui":{"versions":{":2.6.0":{"uncompressed":"build/yuiloader/yuiloader.js","compressed":"build/yuiloader/yuiloader-min.js"},":2.9.0":{"uncompressed":"build/yuiloader/yuiloader.js","compressed":"build/yuiloader/yuiloader-min.js"},":2.7.0":{"uncompressed":"build/yuiloader/yuiloader.js","compressed":"build/yuiloader/yuiloader-min.js"},":2.8.0r4":{"uncompressed":"build/yuiloader/yuiloader.js","compressed":"build/yuiloader/yuiloader-min.js"},":2.8.2r1":{"uncompressed":"build/yuiloader/yuiloader.js","compressed":"build/yuiloader/yuiloader-min.js"},":2.8.1":{"uncompressed":"build/yuiloader/yuiloader.js","compressed":"build/yuiloader/yuiloader-min.js"},":3.3.0":{"uncompressed":"build/yui/yui.js","compressed":"build/yui/yui-min.js"}},"aliases":{":3":"3.3.0",":2":"2.9.0",":2.7":"2.7.0",":2.8.2":"2.8.2r1",":2.6":"2.6.0",":2.9":"2.9.0",":2.8":"2.8.2r1",":2.8.0":"2.8.0r4",":3.3":"3.3.0"}},":swfobject":{"versions":{":2.1":{"uncompressed":"swfobject_src.js","compressed":"swfobject.js"},":2.2":{"uncompressed":"swfobject_src.js","compressed":"swfobject.js"}},"aliases":{":2":"2.2"}},":ext-core":{"versions":{":3.1.0":{"uncompressed":"ext-core-debug.js","compressed":"ext-core.js"},":3.0.0":{"uncompressed":"ext-core-debug.js","compressed":"ext-core.js"}},"aliases":{":3":"3.1.0",":3.0":"3.0.0",":3.1":"3.1.0"}},":webfont":{"versions":{":1.0.2":{"uncompressed":"webfont_debug.js","compressed":"webfont.js"},":1.0.1":{"uncompressed":"webfont_debug.js","compressed":"webfont.js"},":1.0.0":{"uncompressed":"webfont_debug.js","compressed":"webfont.js"},":1.0.19":{"uncompressed":"webfont_debug.js","compressed":"webfont.js"},":1.0.6":{"uncompressed":"webfont_debug.js","compressed":"webfont.js"},":1.0.18":{"uncompressed":"webfont_debug.js","compressed":"webfont.js"},":1.0.5":{"uncompressed":"webfont_debug.js","compressed":"webfont.js"},":1.0.17":{"uncompressed":"webfont_debug.js","compressed":"webfont.js"},":1.0.4":{"uncompressed":"webfont_debug.js","compressed":"webfont.js"},":1.0.16":{"uncompressed":"webfont_debug.js","compressed":"webfont.js"},":1.0.3":{"uncompressed":"webfont_debug.js","compressed":"webfont.js"},":1.0.9":{"uncompressed":"webfont_debug.js","compressed":"webfont.js"},":1.0.21":{"uncompressed":"webfont_debug.js","compressed":"webfont.js"},":1.0.12":{"uncompressed":"webfont_debug.js","compressed":"webfont.js"},":1.0.22":{"uncompressed":"webfont_debug.js","compressed":"webfont.js"},":1.0.13":{"uncompressed":"webfont_debug.js","compressed":"webfont.js"},":1.0.14":{"uncompressed":"webfont_debug.js","compressed":"webfont.js"},":1.0.15":{"uncompressed":"webfont_debug.js","compressed":"webfont.js"},":1.0.23":{"uncompressed":"webfont_debug.js","compressed":"webfont.js"},":1.0.10":{"uncompressed":"webfont_debug.js","compressed":"webfont.js"},":1.0.11":{"uncompressed":"webfont_debug.js","compressed":"webfont.js"}},"aliases":{":1":"1.0.23",":1.0":"1.0.23"}},":mootools":{"versions":{":1.2.3":{"uncompressed":"mootools.js","compressed":"mootools-yui-compressed.js"},":1.3.1":{"uncompressed":"mootools.js","compressed":"mootools-yui-compressed.js"},":1.1.1":{"uncompressed":"mootools.js","compressed":"mootools-yui-compressed.js"},":1.2.4":{"uncompressed":"mootools.js","compressed":"mootools-yui-compressed.js"},":1.3.0":{"uncompressed":"mootools.js","compressed":"mootools-yui-compressed.js"},":1.2.1":{"uncompressed":"mootools.js","compressed":"mootools-yui-compressed.js"},":1.2.2":{"uncompressed":"mootools.js","compressed":"mootools-yui-compressed.js"},":1.3.2":{"uncompressed":"mootools.js","compressed":"mootools-yui-compressed.js"},":1.2.5":{"uncompressed":"mootools.js","compressed":"mootools-yui-compressed.js"},":1.4.0":{"uncompressed":"mootools.js","compressed":"mootools-yui-compressed.js"},":1.1.2":{"uncompressed":"mootools.js","compressed":"mootools-yui-compressed.js"},":1.4.1":{"uncompressed":"mootools.js","compressed":"mootools-yui-compressed.js"}},"aliases":{":1":"1.1.2",":1.11":"1.1.1",":1.4":"1.4.1",":1.3":"1.3.2",":1.2":"1.2.5",":1.1":"1.1.2"}},":jqueryui":{"versions":{":1.6.0":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.8.0":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.8.2":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.8.1":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.8.9":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.8.15":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.8.14":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.8.7":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.8.13":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.8.8":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.8.12":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.8.11":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.7.2":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.8.5":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.7.3":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.8.10":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.8.6":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.7.0":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.7.1":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.8.4":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.5.3":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.5.2":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.8.16":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"}},"aliases":{":1.8":"1.8.16",":1.7":"1.7.3",":1.6":"1.6.0",":1":"1.8.16",":1.5":"1.5.3",":1.8.3":"1.8.4"}},":chrome-frame":{"versions":{":1.0.2":{"uncompressed":"CFInstall.js","compressed":"CFInstall.min.js"},":1.0.1":{"uncompressed":"CFInstall.js","compressed":"CFInstall.min.js"},":1.0.0":{"uncompressed":"CFInstall.js","compressed":"CFInstall.min.js"}},"aliases":{":1":"1.0.2",":1.0":"1.0.2"}},":jquery":{"versions":{":1.6.2":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.3.1":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.6.1":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.3.0":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.6.4":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.6.3":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.3.2":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.6.0":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.2.3":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.7.0":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.7.1":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.2.6":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.4.3":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.4.4":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.5.1":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.5.0":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.4.0":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.5.2":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.4.1":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.4.2":{"uncompressed":"jquery.js","compressed":"jquery.min.js"}},"aliases":{":1.7":"1.7.1",":1.6":"1.6.4",":1":"1.7.1",":1.5":"1.5.2",":1.4":"1.4.4",":1.3":"1.3.2",":1.2":"1.2.6"}},":dojo":{"versions":{":1.3.1":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"},":1.1.1":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"},":1.3.0":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"},":1.6.1":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"},":1.3.2":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"},":1.6.0":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"},":1.2.3":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"},":1.4.3":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"},":1.5.1":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"},":1.5.0":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"},":1.2.0":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"},":1.4.0":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"},":1.4.1":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"}},"aliases":{":1":"1.6.1",":1.6":"1.6.1",":1.5":"1.5.1",":1.4":"1.4.3",":1.3":"1.3.2",":1.2":"1.2.3",":1.1":"1.1.1"}},":prototype":{"versions":{":1.7.0.0":{"uncompressed":"prototype.js","compressed":"prototype.js"},":1.6.0.2":{"uncompressed":"prototype.js","compressed":"prototype.js"},":1.6.1.0":{"uncompressed":"prototype.js","compressed":"prototype.js"},":1.6.0.3":{"uncompressed":"prototype.js","compressed":"prototype.js"}},"aliases":{":1.7":"1.7.0.0",":1.6.1":"1.6.1.0",":1":"1.7.0.0",":1.6":"1.6.1.0",":1.7.0":"1.7.0.0",":1.6.0":"1.6.0.3"}}});
              }

              Comment


              • #8


                Re: WebBrowser Design Issue: $10

                I can probably make those three files myself and keep it with the workbook, but it seems I may need the range of cells / column data that needs to be summarized. I'll send you my email id via PM. Can you send me all the 4 files?
                Cheers,

                S M C

                Click To Read: How To Use Tags In Your Threads/Posts
                Please take time to read Forum Rules before posting
                Message To Cross Posters

                Comment

                Working...
                X