Excel macro example

Hi,
I have found in  LabVIEW in the Menu   Help --> Find Example-->Excel Macro Example     a possibility to crate an Excel sheet with a chart. But I cannot find the Sub VI (Set Cell Value with Range.vi) in this example. Can someone send it to me?

Somebody posted the examples recently in this http://forums.ni.com/ni/board/message?board.id=170​&message.id=212255&query.id=467035 thread

Similar Messages

  • Excel Macro Plotter

    Hello All,
    I am having a challenge in implementing a macro in excel that plots the waveform graph. I have made use of the LabVIEW Excel macro Example with modifications. The challenges are:
    1.       In Excel, both x and y values do not start from zero.
    2.       The scale of the graph is narrow
    3.       The program should stop running after the log switch is pressed and the graph is plotted in excel.
    Note: project.xls sheet should be in same directory as VI before running.
      Thanks.
    Attachments:
    ExcelExamples.llb ‏97 KB

    maxidivine wrote:1.       In Excel, both x and y values do not start from zero.
     I'm not sure I understand what you mean by this.
    2.       The scale of the graph is narrow
    I don't understand what this means either. I assume you're referring to the fact that you're only seeing a "zoomed in" version of the graph. The reason for this is that the macro in the workbook has the range to graph hard-coded in it. It's only plotting the first six rows. You can either modify the macro so it determines the range based on the data (see Excel help on how to write macros), or have it so that you feed in the number of rows as an argument. 
    3.       The program should stop running after the log switch is pressed and the graph is plotted in excel.
    It should already do this, and it does. I suspect the problem you're having is when you're running it with the large array. Writing out 25000 cells one at a time using ActiveX will take forever. 
    As an aside: What's wrong with the LabVIEW graphs?

  • Excel macros y labview

    Hola 
    Saludos
    Mi duda es como puedo cambiar el macro y el excel que debe abrir el EXCEL MACRO EXAMPLE.VI
    PORFAVOR AYUDENEM
    gracias por la atencion  
    ¡Resuelto!
    Ir a solución.

    Hola Ramos2
    Buen día!
    Para modificar por ejemplo el libro de excel debes cambiar la ruta (la ruta por default es la misma ubicación en la que se encuentra en la misma carpeta del VI; pero esta se puede modificar por una rutar constante); lo mismo para elegir el macro que deseas correr
    Exito en tu aplicación

  • How do I make an Excel macro and Labview push to copy Labview calculated data into a cell on demand?

    Hey there, I am a chemist so Labview and programming aren't exactly my strong point. 
    We have a Labview program that we run to control and automated valve manifold that has a thermocouple and pressure transducer that displays the temperature and pressure on the "front panel" of the labview file we run.  The temperature and pressure of the manifold changes in real time while the labview is running.  We must attach a sample to the manifold, take the pressure and temperature, then record those values in an excel spread sheet, one at a time.
    What I would like to do is make a key board macro in excel to automatically type in the current read out of the temperature (and another for pressure) into which ever selected excel cell you are on, so that you don't have to switch back to the labview window to look at it.  I have a very basic understanding of macros in VB but I don't know how to get the labview to make the read outs available for the excel macros to find it.
    Thanks for the help, Here is a screen shot of the block layout of the program.
    Attachments:
    back.JPG ‏79 KB

    Why not have LV put the data in Excel for you?  You can use Actvie X to do this.  There is plenty of information on the forum and knowledge base on how to use Active X and reporting to Excel.  Plus you have the example finder.  Do you have the Report Generation Toolkit?  LV7 is quite old, so I don't know if this is an option for you.
    Reese, (former CLAD, future CLD)
    Some people call me the Space Cowboy!
    Some call me the gangster of love.
    Some people call me MoReese!
    ...I'm right here baby, right here, right here, right here at home

  • Export to Excel - Macro problems

    I have moved this to the Discoverer forum. Exporting to Excel - Macro Problems
    Message was edited by:
    user385142

    Hello Denes.
    Excuse me for send you a message in this way , but I dont find other way to contact with you.
    Im using the export_excel_pkg, and really it work good.
    I have only one problem, I tell you.
    When, in one item, data is very long and numeric, by example a EAN code, without any class of format, by default it give me the value ###, Im studing the package and trying to resolve this, but if you can send me any idea it can help me a lot.
    Thanks in advanced.
    You are doing a great work for us.

  • Excel Macro to click on publish button of Master Data Services Add-in

    I am creating an excel macro to perform extra validation and defaults whilst the user is editing the MDS entity. It will be added as a workbook add-in. At the end of the macro I would like to be able to launch publish. The MDS addin is a ribbon.
    Does anyone have an example of how I can simulate a click on the Publish button or what the call that the button does is?
    David Roseneder

    Hi David
    here is a code sample to add mds actions with excel Buttons
    you can find the connection class separately, by downloading my sample project (C#) on codeplex :
    http://mdsmanager.codeplex.com
    (I use this MDS connection class for many projects)
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Xml.Linq;
    using Microsoft.VisualStudio.Tools.Applications.Runtime;
    using Excel = Microsoft.Office.Interop.Excel;
    using Office = Microsoft.Office.Core;
    using System.Xml;
    using System.Collections.ObjectModel;
    using Common.ServiceReference1;
    namespace ExcelToMDS
    public partial class Sheet1
    public const string mdsEndPoint = "http://yourMDSEndpointUrl:4040/Service/Service.svc";
    ServiceClient c = null;
    International intl = new International();
    OperationResult or = new OperationResult();
    Metadata md = null;
    private void Sheet1_Startup(object sender, System.EventArgs e)
    using (var c = Common.MDS_WSConnect.CreateMdsProxy("yourdomain", "yourlogin", "yourpassword", mdsEndPoint))
    c.Open();
    International intl = new International();
    OperationResult or = new OperationResult();
    md = GetMetaData(intl, ref or);
    cbModels.Items.Clear();
    foreach (Model mo in md.Models)
    cbModels.Items.Add(mo.Identifier);
    cbModels.DisplayMember = "Name";
    cbEntities.Visible = true;
    private Metadata GetMetaData(International intl, ref OperationResult or)
    MetadataResultOptions mro = new MetadataResultOptions();
    MetadataSearchCriteria msc = new MetadataSearchCriteria();
    msc.Models = new Collection<Identifier>() { new Identifier() };
    msc.Versions = new Collection<Identifier>() { new Identifier() };
    msc.SearchOption = SearchOption.UserDefinedObjectsOnly;
    mro.Models = ResultType.Identifiers;
    mro.Versions = ResultType.Identifiers;
    cbModels.Items.Clear();
    Metadata md = c.MetadataGet(intl, mro, msc, out or);
    return md;
    private void Sheet1_Shutdown(object sender, System.EventArgs e)
    if (c != null && c.State != System.ServiceModel.CommunicationState.Closed)
    c.Close();
    #region VSTO Designer generated code
    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InternalStartup()
    this.btGetMDSData.Click += new System.EventHandler(this.btGetMDSData_Click);
    this.btGetTransactions.Click += new System.EventHandler(this.btGetTransactions_Click);
    this.btUpdateAttribute.Click += new System.EventHandler(this.btUpdateAttribute_Click);
    this.cbModels.SelectedIndexChanged += new System.EventHandler(this.cbModels_SelectedIndexChanged);
    this.cbMembers.SelectedIndexChanged += new System.EventHandler(this.cbMembers_SelectedIndexChanged);
    this.cbEntities.SelectedIndexChanged += new System.EventHandler(this.cbEntities_SelectedIndexChanged);
    this.cbVersions.SelectedIndexChanged += new System.EventHandler(this.cbVersions_SelectedIndexChanged);
    this.cbAttributes.SelectedIndexChanged += new System.EventHandler(this.cbAttributes_SelectedIndexChanged);
    this.btReverseTran.Click += new System.EventHandler(this.btReverseTran_Click);
    this.Shutdown += new System.EventHandler(this.Sheet1_Shutdown);
    this.Startup += new System.EventHandler(this.Sheet1_Startup);
    #endregion
    private void btGetMDSData_Click(object sender, EventArgs e)
    Cursor.Current = Cursors.WaitCursor;
    DisplayEntityMembers(c);
    Cursor.Current = Cursors.Default;
    private void DisplayEntityMembers(ServiceClient c)
    EntityMembers em = GetEntityMembers(c);
    if (em != null)
    Member[] members = em.Members.ToArray();
    ((Excel.Range)this.Cells[2, 2]).Value2 = "MemberName";
    ((Excel.Range)this.Cells[2, 3]).Value2 = "AttributeName";
    ((Excel.Range)this.Cells[2, 4]).Value2 = "AttributeValue";
    for (int i = 0; i < members.Length; i++)
    ((Excel.Range)this.Cells[i + 3, 2]).Value2 = members[i].MemberId.Name;
    int cptAtt = 0;
    foreach (Common.ServiceReference1.Attribute att in members[i].Attributes)
    ((Excel.Range)this.Cells[i + 3, cptAtt + 3]).Value2 = att.Identifier.Name.ToString();
    ((Excel.Range)this.Cells[i + 3, cptAtt + 4]).Value2 = att.Value != null ? att.Value.ToString() : "";
    cptAtt += members[i].Attributes.Count();
    private EntityMembers GetEntityMembers(ServiceClient c)
    if (cbModels.SelectedItem != null && cbEntities.SelectedItem != null && cbVersions.SelectedItem != null)
    EntityMembersGetCriteria emGetCrit = new EntityMembersGetCriteria();
    emGetCrit.ModelId = new Identifier() { Name = ((Identifier)cbModels.SelectedItem).Name };
    emGetCrit.EntityId = new Identifier() { Name = ((Identifier)cbEntities.SelectedItem).Name };
    emGetCrit.VersionId = new Identifier() { Name = ((Identifier)cbVersions.SelectedItem).Name };
    //ExportView[] ev = c.ExportViewListGet(new International(), out or);
    EntityMembersInformation emi = new EntityMembersInformation();
    emGetCrit.DisplayType = DisplayType.CodeName;
    EntityMembers em = c.EntityMembersGet(intl, emGetCrit, out emi, out or);
    return em;
    else
    MessageBox.Show("Please select model, version and entity in comboboxes");
    return null;
    private void btGetTransactions_Click(object sender, EventArgs e)
    if (cbModels.SelectedItem != null)
    this.Rows.Clear();
    using (var c = Common.MDS_WSConnect.CreateMdsProxy("yourdomain", "yourlogin", "yourpassword", mdsEndPoint))
    c.Open();
    DisplayTransactions(c);
    c.Close();
    else
    MessageBox.Show("Please select Model in combos");
    private void DisplayTransactions(ServiceClient c)
    string versionName = "VERSION_1";
    if (cbVersions.SelectedItem != null)
    versionName = ((Identifier)cbVersions.SelectedItem).Name;
    TransactionSearchCriteria trSrchCrit = new TransactionSearchCriteria();
    trSrchCrit.ModelId = new Identifier() { Name = ((Identifier)cbModels.SelectedItem).Name };
    //trSrchCrit.EntityId = new Identifier() { Name = ((Identifier)cbEntities.SelectedItem).Name };
    trSrchCrit.EntityId = new Identifier();
    trSrchCrit.VersionId = new Identifier() { Name = versionName };
    //ExportView[] ev = c.ExportViewListGet(new International(), out or);
    EntityMembersInformation emi = new EntityMembersInformation();
    int totalTranCount = 0;
    Collection<Transaction> transactions = new Collection<Transaction>();
    OperationResult or = c.TransactionsGet(intl, trSrchCrit, out totalTranCount, out transactions);
    int startY = 4;
    int startDataY = startY + 1;
    int startX = 4;
    ((Excel.Range)this.Cells[startY, startX]).Value2 = "TransactionID";
    ((Excel.Range)this.Cells[startY, startX + 1]).Value2 = "Code";
    ((Excel.Range)this.Cells[startY, startX + 2]).Value2 = "Name";
    ((Excel.Range)this.Cells[startY, startX + 3]).Value2 = "MemberType";
    ((Excel.Range)this.Cells[startY, startX + 4]).Value2 = "Date";
    ((Excel.Range)this.Cells[startY, startX + 5]).Value2 = "AttributeName";
    ((Excel.Range)this.Cells[startY, startX + 6]).Value2 = "PriorValue";
    ((Excel.Range)this.Cells[startY, startX + 7]).Value2 = "NewValue";
    for (int i = 0; i < transactions.Count(); i++)
    ((Excel.Range)this.Cells[i + startDataY, startX]).Value2 = transactions[i].Id.ToString();
    ((Excel.Range)this.Cells[i + startDataY, startX + 1]).Value2 = transactions[i].MemberId.Code;
    ((Excel.Range)this.Cells[i + startDataY, startX + 2]).Value2 = transactions[i].MemberId.Name;
    ((Excel.Range)this.Cells[i + startDataY, startX + 3]).Value2 = transactions[i].MemberId.MemberType.ToString();
    ((Excel.Range)this.Cells[i + startDataY, startX + 4]).Value2 = transactions[i].Date.ToString();
    ((Excel.Range)this.Cells[i + startDataY, startX + 5]).Value2 = transactions[i].AttributeId.Name;
    ((Excel.Range)this.Cells[i + startDataY, startX + 6]).Value2 = transactions[i].PriorValue;
    ((Excel.Range)this.Cells[i + startDataY, startX + 7]).Value2 = transactions[i].NewValue;
    private void btUpdateAttribute_Click(object sender, EventArgs e)
    Cursor.Current = Cursors.WaitCursor;
    using (var c = Common.MDS_WSConnect.CreateMdsProxy("yourdomain", "yourlogin", "yourpassword", mdsEndPoint))
    c.Open();
    EntityMembers em = GetEntityMembers(c);
    Member[] members = em.Members.ToArray();
    for (int i = 0; i < members.Length; i++)
    ((Excel.Range)this.Cells[i + 3, 2]).Value2 = members[i].MemberId.Name;
    foreach (Common.ServiceReference1.Attribute att in members[i].Attributes)
    if (att.Identifier.Name == "ValidDandT")
    att.Value = DateTime.Now;
    c.EntityMembersUpdate(intl, em);
    DisplayEntityMembers(c);
    c.Close();
    Cursor.Current = Cursors.Default;
    private void cbModels_SelectedIndexChanged(object sender, EventArgs e)
    Identifier i = (Identifier)cbModels.SelectedItem;
    if (md != null)
    cbVersions.Items.Clear();
    foreach (Common.ServiceReference1.Version v in md.Versions)
    if (v.Identifier.ModelId.Id == i.Id)
    cbVersions.Items.Add(v.Identifier);
    cbVersions.DisplayMember = "Name";
    private void cbVersions_SelectedIndexChanged(object sender, EventArgs e)
    Identifier iVer = (Identifier)cbVersions.SelectedItem;
    ModelMembersGetCriteria mmgc = new ModelMembersGetCriteria();
    mmgc.Models = new Collection<Identifier>() { new Identifier() { Name = ((Identifier)cbModels.SelectedItem).Name } };
    ModelMembersResultCriteria mmrc = new ModelMembersResultCriteria();
    mmgc.Versions = new Collection<Identifier>() { new Identifier() { Id = iVer.Id } };
    mmrc.IncludeLeafMembers = true;
    cbEntities.Items.Clear();
    cbMembers.Items.Clear();
    Collection<EntityMembers> colEm = c.ModelMembersGet(intl, mmgc, mmrc, out or);
    foreach (EntityMembers em in colEm)
    cbEntities.Items.Add(em.EntityId);
    cbEntities.DisplayMember = "Name";
    private void cbEntities_SelectedIndexChanged(object sender, EventArgs e)
    DisplayEntityAttributesCombo(c);
    DisplayEntityAttributesAndMembersInSheet();
    private void DisplayEntityAttributesAndMembersInSheet()
    EntityMembers em = GetEntityMembers(c);
    Member[] members = em.Members.ToArray();
    ((Excel.Range)this.Cells[2, 2]).Value2 = "MemberName";
    ((Excel.Range)this.Cells[2, 3]).Value2 = "AttributeName";
    ((Excel.Range)this.Cells[2, 4]).Value2 = "AttributeValue";
    if (members.Count() > 0)
    int ii = 0;
    //attributes name on header line
    foreach (Common.ServiceReference1.Attribute att in members[0].Attributes)
    ((Excel.Range)this.Cells[3, ii + 3]).Value2 = att.Identifier.Name.ToString();
    ii++;
    //members Data
    int cptnbAttributes = members[0].Attributes.Count();
    for (int i = 0; i < members.Length; i++)
    for (int j = 0; j < cptnbAttributes - 1; j++)
    ((Excel.Range)this.Cells[i + 4, j + 3]).Value2 = members[i].MemberId.MemberType;
    private void DisplayEntityAttributesCombo(ServiceClient c)
    EntityMembers em = GetEntityMembers(c);
    Member[] members = em.Members.ToArray();
    if (members.Count() > 0)
    cbAttributes.Items.Clear();
    foreach (Common.ServiceReference1.Attribute a in members[0].Attributes)
    cbAttributes.Items.Add(a.Identifier);
    cbAttributes.DisplayMember = "Name";
    cbAttributes.Visible = true;
    private void cbMembers_SelectedIndexChanged(object sender, EventArgs e)
    Identifier idMember = (Identifier)cbMembers.SelectedItem;
    EntityMembers em = GetEntityMembers(c);
    Member[] members = em.Members.ToArray();
    Member m = members.FirstOrDefault(p => p.MemberId.Id == idMember.Id);
    cbAttributes.Items.Clear();
    foreach (Common.ServiceReference1.Attribute att in m.Attributes)
    cbAttributes.Items.Add(att.Identifier);
    cbAttributes.DisplayMember = "Name";
    cbAttributes.Visible = true;
    private void cbAttributes_SelectedIndexChanged(object sender, EventArgs e)
    private void btReverseTran_Click(object sender, EventArgs e)
    using (var c = Common.MDS_WSConnect.CreateMdsProxy("yourdomain", "yourlogin", "yourpassword", mdsEndPoint))
    c.Open();
    UpdateTransaction(c);
    DisplayTransactions(c);
    c.Close();
    private void UpdateTransaction(ServiceClient c)
    string versionName = "VERSION_1";
    if (cbVersions.SelectedItem != null)
    versionName = ((Identifier)cbVersions.SelectedItem).Name;
    TransactionSearchCriteria trSrchCrit = new TransactionSearchCriteria();
    trSrchCrit.ModelId = new Identifier() { Name = ((Identifier)cbModels.SelectedItem).Name };
    //trSrchCrit.EntityId = new Identifier() { Name = ((Identifier)cbEntities.SelectedItem).Name };
    trSrchCrit.EntityId = new Identifier();
    trSrchCrit.VersionId = new Identifier() { Name = versionName };
    //ExportView[] ev = c.ExportViewListGet(new International(), out or);
    EntityMembersInformation emi = new EntityMembersInformation();
    int totalTranCount = 0;
    Collection<Transaction> transactions = new Collection<Transaction>();
    OperationResult or = c.TransactionsGet(intl, trSrchCrit, out totalTranCount, out transactions);
    Collection<ReplacementId> transactionReversed = new Collection<ReplacementId>();
    or = c.TransactionsReverse(intl, new Collection<int>() { transactions.First().Id }, out transactionReversed);
    Xavier Averbouch
    Microsoft Community Contributor
    Avanade , FRANCE
    If a post answers your question, please click "Mark As Answer" on that post and "Vote as Helpful".

  • How to run excel macros using lookout

    Hi,
    I want use Excel macros for generating custom reports.Is it possible to run macros using run object in lookout
    thanks

    Hi,
    I am pretty sure you can activate macros in Excel using the Run object in Lookout. I can think of two ways you can do this:
    1. You can setup your Excel to run macros on startup using the Auto_Activate method. In this case, you will just launch excel with your workbook using the Run object and that should run the macros automatically. No brainer!
    2. To better control as to when the macros are run we can assign in Excel some shortcut keys for their launching. We then would need to simulate these keystrokes to launch our macros. This can be done using the SendKeys method and some scripting, WHS Scripting for instance. See this pos
    t for a scripting example which simulates Alt+Tab keys to bring-to-front an app.
    You will launch the script from the Run object and this in turn launches Excel and then simulates the keys for luanching the appropriate macros. I admit this is kinda involved, but hey it works!
    Hope this helps,
    Khalid

  • Calling a Siebel Business Service from an Excel Macro

    Hi Everyone !!
    I have a requirement where i have to call a siebel Business Service from an excel macro. Please help me with the code.
    Regards,
    Abhi

    Here's a starter for one:
    Private Function ConnectToSiebel(sConnectString As String, sUserName As String, sPassword As String, _
    oSiebel As SiebelDataControl) As Boolean
    On Error GoTo ErrorHandler
    ' Uses the specified parameters to connect to the Data Control
    Dim iErrCode As Integer
    Set oSiebel = CreateObject("SiebelDataControl.SiebelDataControl.1")
    oSiebel.Login sConnectString, sUserName, sPassword
    If (oSiebel.GetLastErrCode <> 0) Then GoTo ErrorHandler
    ConnectToSiebel = True
    Exit Function
    ErrorHandler:
    MsgBox oSiebel.GetLastErrCode
    ConnectToSiebel = False
    End Function
    The connect string passed takes the format:
    host="siebel://<SERVER_HOST>/<SERVER_NAME>/PSCcObjMgr_enu"
    You can then use the 'oSiebel' object as if it was the Application(). For example, Set oService = oSiebel.GetBusService("Blah")
    Regards,
    mroshaw

  • Execute Excel Macro Through DIAdem

    Hi All,
      I am currently trying to run a script in DIAdem which exports certain material properties to an Excel Macro-enabled workbook.  Inside the Excel workbook the user executes a macro to perform some calculations.  The results of that calculation will then be re-imported into a DIAdem report.  I have the import/export data part down, but the million dollar question is how can I execute an Excel macro from DIAdem's VBScript?
      I know some are going to say this makes no sense, just do the calculation in DIAdem.  I know this, but the file/calculations are an industry accepted toolbox and it must be done this way. 
      Thanks in advance and here is some dumbed down code to showcase the example:
    Option Explicit 'Forces the explicit declaration of all the variables in a script.
    Dim excel
    Dim excelbook
    Dim a
    Set Excel = CreateObject("Excel.Application")
    Excel.Visible = True
    Set excelbook=Excel.Workbooks.Open("My File")
    excelbook.Sheets("InputResults").range("B5").value = Data.Root.ChannelGroups(ChanGrp#).Properties("myProp").Value
    'Call 'My_Macro' !!!!!!!!!!!!!!!!!!!!
    Msgbox("Result is: " & excelbook.Sheets("InputResults").range("B5").value)
    Solved!
    Go to Solution.

    Hi GT_Mark
    You simply can use the methode Run
    Call Excel.Run("MyMacro")
    Of course you have to make sure that you refer only to data that are available in Excel.
    To obtain CodeCompletion for Excel in the script editor select Microsoft Excel x.x Objects Library in the "Registed Type Libraries" dialog box. The x.x value depends on your installed Excel version.  To open this dialog box, select Script»Type Libraries in DIAdem SCRIPT.
    Hope this helps
    Winfried

  • Does anyone an Excel macro to display units/currencies next to its KF?

    Hello,
    I need to change my BEX-display in the following way:
    Current:
    Order#           Amount (loc.Currcy)            Quanitity (BUOM)
    12345             1000 EUR                             5 ST
    My idea is to have it as follows:
    Order#           Amount            Loc.Currcy         Quanitity        Base Unit Of Measure
    12345             1000                EUR                     5                   ST
    Ok, I know how to supress the units/currencies for the Key Figures. I also was thinking of using the units/currencies as characteristics but then they would be display right to Order #.  I want to have it in a new column right of its associated Key Figure.
    I think I can do this with an Excel macro. As I'm not an Expert here, I'm wondering if someone already had done the effort to code such a macro and would be willing to share it with us.
    Thanks

    Use the "Index Array" primitave under the "Array" sub-palette of the functions Palette. The array wires into the top input, and the index of the element you want wires into the bottom input - then the element of the array at the index is returned out the right hand side of the primative (I've attached an example VI).
    cheers,
    Christopher
    Copyright © 2004-2015 Christopher G. Relf. Some Rights Reserved. This posting is licensed under a Creative Commons Attribution 2.5 License.
    Attachments:
    Index_Array_Example.vi ‏12 KB

  • Acrobat have features similar to excel macros?

    Does acrobat have a feature similar to excel macros? Example, clicking a button on title page starts a new form page with logo and questions already in place? The problem is the number of forms per customer is different so I would need the title page to have a built in function that generates new form pages.

    Acrobat uses the JavaScript scripting language to provide automation code.
    Acrobat also has the ability to edit the tool bars.
    There is a built in tool to insert or add a new blank page.
    One can also create a template that can be used create a new page from itself and it can include images and form fields. And if you program it correctly the fields will be renamed for each page and the scripts for performing the calculations will automatically adjust for the added page.

  • Executing Excel Macros from SAP

    Hi all Experts,
    I have created a program which tranfers data from different internal tables into Different Worksheets of a single workbook.
    Now, Can some one please tell me how to Execute macros from SAP.
    Regards,
    AJ

    To execute an Excel macro follow these steps.
    1. Create macro inside Excel Workbook where you transferred your information.
    2. Use following instruction to execute the desired macro you create:
        DATA: EXCEL TYPE OLE2_OBJECT.
        CREATE OBJECT EXCEL 'Excel.Application'.
        CALL METHOD OF EXCEL 'Run' EXPORTING #1 = 'WRITE_SHEET_CELL'
                                                                            #2 = 'VALUE1'
                                                                            #3 = 'VALUE2'
                                                                            #4 = 'VALUE3'.
    In previous example, macro WRITE_SHEET_CELL was created first. The macro name must be in uppercase.
    Regards.
    Rafael Rojas.

  • Running Excel macros from ABAP

    Hello everyone,
    I am trying to execute an Excel macro from an ABAP program.  We are currently on a 46C system.  While doing some research on help.sap.com I came across the method execute_macro in class i_oi_document_proxy.  I’ve never used methods in ABAP before and I’m not really sure what I’m doing.  Has anyone got this to work?  When I try to run the program it dumps with error OBJECTS_OBJREF_NOT_ASSIGNED.
    Thanks,
    Becky
    Here is the program:
    REPORT ztest_program.
    INCLUDE ole2incl.
    DATA gs_excel TYPE ole2_object .
    DATA gs_wbooks TYPE ole2_object .
    DATA gs_wbook TYPE ole2_object .
    DATA gs_application TYPE ole2_object .
    DATA: h_sheet TYPE ole2_object.
    DATA: document TYPE REF TO i_oi_document_proxy.
    *Name of the macro in Excel
    DATA: macro_string(50) TYPE c
                     VALUE 'FB03process.FromTheBeginning',
          no_flush TYPE c,
          param_count TYPE i VALUE 0,
          script_name TYPE c VALUE 'X',
          error TYPE REF TO i_oi_error
                OCCURS 0 WITH HEADER LINE,
          retcode TYPE soi_ret_string,
          error_string(50) TYPE c,
          retvalue(30) TYPE c.
    CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
       EXPORTING
             text       = text-007
         EXCEPTIONS
              OTHERS     = 1.
    CREATE OBJECT gs_excel 'EXCEL.APPLICATION' .
    SET PROPERTY OF gs_excel 'Visible' = 1 .
    GET PROPERTY OF gs_excel 'Workbooks' = gs_wbooks .
    GET PROPERTY OF gs_wbooks 'Application' = gs_application .
    *--Opening the existing document
    CALL METHOD OF gs_wbooks 'Open' = gs_wbook
         EXPORTING #1 = 'D:\temp\FB03process.xls' .
    tell user what is going on
    CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
       EXPORTING
              PERCENTAGE = 0
             text       = text-009
         EXCEPTIONS
              OTHERS     = 1.
    GET PROPERTY OF gs_excel 'ACTIVESHEET' = h_sheet.
    CALL METHOD document->execute_macro
         EXPORTING macro_string  = macro_string
                   param_count   = param_count
                   script_name   = script_name
                   no_flush      = no_flush
         IMPORTING error         = error
                   retcode       = retcode
         CHANGING  error_string  = error_string
                   retvalue      = retvalue.
    disconnect from Excel
    FREE OBJECT gs_excel.
    PERFORM err_hdl.
    FORM err_hdl.
      IF sy-subrc <> 0.
        WRITE: / 'Fehler bei OLE-Automation:'(010), sy-subrc.
        STOP.
      ENDIF.
    ENDFORM.                    " ERR_HDL

    Hi,
    Please correct me if I am wrong but it seems that you have not fetched a handle to the document object before issuing the statement CALL METHOD document->execute_macro. Hence the error OBJECTS_OBJREF_NOT_ASSIGNED is being dislayed. If you want to use SAP Desktop Office Integration using ABAP Objects, take a look at this article at http://www.intelligenterp.com/feature/archive/ or http://www.sapinfo.net/public/en/index.php4/article/comvArticle-193333c63b4bd807d2/en/articleStatistic
    Hope this helps.
    Regards
    Message was edited by: Shehryar Khan

  • How to call excel macros programmatically in C#?

    Hi,
    I have a requirement where i need to call excel (2003) macros in C# program. Can anyone help me with a code snippet to do the same?
    The excel macro function takes two input parameters? how can the parameters be passed?
    Any code snippet to do the same in C# would be helpful.
    Thanks.

    Hey there, Sid.  I am tryin gto run your code, but I couldn't even gte it to fire.  Here's what I ahve now:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using Excel = Microsoft.Office.Interop.Excel;
    namespace WindowsFormsApplication2
        public partial class Form1 : Form
            private void button1_Click(object sender, EventArgs e)
                //~~> Define your Excel Objects
                Excel.Application xlApp = new Excel.Application();
                Excel.Workbook xlWorkBook;
                //~~> Start Excel and open the workbook.
                xlWorkBook = xlApp.Workbooks.Open("C:\\Users\\Ryan\\Desktop\\Coding\\Microsoft Excel\\Work Samples\\Work Samples\\Historical Stock Prices.xlsb");
                //~~> Run the macros by supplying the necessary arguments
                xlApp.Run("ShowMsg", "Hello from C# Client", "Demo to run Excel macros from C#");
                //~~> Clean-up: Close the workbook
                xlWorkBook.Close(false);
                //~~> Quit the Excel Application
                xlApp.Quit();
                //~~> Clean Up
                releaseObject(xlApp);
                releaseObject(xlWorkBook);
            //~~> Release the objects
            private void releaseObject(object obj)
                try
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
                    obj = null;
                catch (Exception ex)
                    obj = null;
                finally
                    GC.Collect();
    When I hit the play button nothing happens.  When I hot F5 nothing happens.  Do you ahve any idea what I'm doing wrong.  I'd appreciate any advice with this!! 
    Thanks!!
    Knowledge is the only thing that I can give you, and still retain, and we are both better off for it.

  • Revised "Generate Excel Report" Example

    I recently answered a question from a Forum user about an error encountered when trying to generate an Excel spreadsheet with the Report Generation Toolkit.  I thought that the example code he was using was "unusual" and overly complex, and just discovered that it was, in fact, the LabVIEW 2013 "Generate Report From Template (Excel)" Example.
    In the spirit of trying to demonstrate how nice the new(er) "Easy Excel" functions are, I rewrote this Example, and have attached it here.  While doing so, I discovered (and have reported to NI) a "bug/feature" of the Excel Insert Graph function.  One of its parameters allows you to position the graph by specifying the Left and Top edges (Left would be the Excel Column, Top would be the Excel Row).  The only problem is that the parameters are reversed -- to put the graph on Row 1, Column G, you specify (0, 6), not (6, 0).  Oops ... 
    Solved!
    Go to Solution.

    Here is a Snippet, in LabVIEW 2012, of the Excel Demo (the Revised Generate Excel Report Example).  If you have LabVIEW 2012 or more recent, you should be able to drag this into a blank Block Diagram and have the VI "magically" created.  If you have an earlier version of LabVIEW, you can at least see a picture of all the VIs and wiring here, and can open LabVIEW and "build it yourself".  There are no Case statements, so nothing is hidden from view.  In case the image is too small, I also attached the PNG file, which you should be able to open with an Image Viewer and potentially print out for yourself.
    Attachments:
    Excel Demo.png ‏108 KB

Maybe you are looking for

  • Can't move music

    I updated the iTunes software for my iPhone, which followed reinstalling iTunes. I moved some of my music back into iTunes, hoping to add a variety of tunes to the phone. Now, iTunes won't let me move anything into the phone. My wife thinks it could

  • TS1702 Can't find the tv show I purchased

    Where does the file appear?

  • Error generating form on Designer 6i

    Hi folks: I got a new PC. It comes with a AMD Atholon Processor. I am trying to test all the Oracle Products. But I am getting a Designer error, related with a forms generation: CDR-21605: Failed while processing......... I was looking on these forum

  • Editing and cropping error message in photoshop 10.  help!!!!

    i have elements 10.   i have been unable to perform editing and cropping of my picutres due to the following error message: error message:  Your system is low on disk space and elements cannot perform this operation.  Try removing some files to free

  • W2k Designer 6i release 2 and Linux 8.1.7

    It seems that the Designer 6i is specificly designed for Oracle 8i 8.1.6 and Not 8.1.7 which is the version that I have up and running. is there any work arounds that will allow me co connect to the Linux 8.1.7 with out haveing to install(multihome)