Fehler "DAQmx Save scale.vi"

Guten Tag,
bei dem Versuch eine existierende Skalierung mit dem VI "DAQmx save scale.vi" zu ändern erhalte ich die Fehlermeldung -200356.
Der Parameter "Overwrite Existing Scale?" ist dabei auf "TRUE" gesetzt.

Hello,
the Problem is solved:
Are you using the DAQmx Create Scale vi as well? It is actually not possible to create a scale with the same name as an existing scale. However, you can still modify and save an already existing scale. For an example of how to do this, check out the following link: http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=F38DB14830876FE6E0340003BA7CCD71&p_node=201209&p_source=External
Thanks a lot.

Similar Messages

  • Error "DAQmx Save scale.vi"

    Hello,
    when I try to overwrite an existing scale with the VI "DAQmx save scale.vi" I get an Error -200356. The parameter "Overwrite Existing Scale?" is set to "true".
    I've create the scalinig before with the condition "Allow Interactive Deletion?".

    Hello,
    the Problem is solved:
    Are you using the DAQmx Create Scale vi as well? It is actually not possible to create a scale with the same name as an existing scale. However, you can still modify and save an already existing scale. For an example of how to do this, check out the following link: http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=F38DB14830876FE6E0340003BA7CCD71&p_node=201209&p_source=External
    Thanks a lot.

  • How to use DAQmx Create Scale Linear

    Hello. I have an output from an amplifier that is 10mV/V, that is being read by an USB-6002. The voltage range for this amplifier is 0-200 volts. I have been testing the DAQmx Create Scale Vi but do not understand how it works. I have looked at other posts here for answers but am still not clear how this works. To begin with, it says it uses the y=mx+b equation for it. I don't know what the slope is referring to unless it is the angle of the line. If someone might have an example that explains how this works, that would be awesome. I also tried looking at an example but couldn't find one. Thank you

    Here's a "seat-of-the-pants" explanation of y = mx + b.  If you think of "x" as the input, and "y" as the output, then you can consider "m" as the gain, and "b" is the offset, the output that you would read with zero input.  
    If you think about this equation with respect to an amplifier, many are designed to have zero output when there is no input.  This means b = 0.  If you have a gain of 10mV/V (which I assume means that a 1V input would give a 10mV output, then m, usually called "the slope" (which is the slope of the input/output curve), would be .010/1 = 0.01.
    Note you describe the range of your amplifier as 0-200V, so the output will be 0-2V, well within the ±10V of the USB-6002.
    Bob Schor

  • Failed to save scale setting

    I tried to increase the number of instances for an Azure WebApp (DNN website) from one to two.
    I got the following error:
    Failed to save scale setting. Not enough available reserved instance servers to satisfy this request. Currently 0 instances are available. If you are changing instance size you can reserve up to 0 instances at this moment. If you are increasing instance
    count then you can add extra 0 instances at this moment.
    Is this related to my configuration within Azure, or the Data Centre (we are using North Europe), or some other issue ?

    Hi EddyCromption,
    What is the App Service plan pricing tier for the website ? If it is Free, recommend you to try upgrading it to Shared / Basic / Standard and try increasing the count.
    You will not be able to increase the instance count for Free tier.
    Please share the website url if you think, Pricing tier is not the issue.
    Regards,
    Shirisha Paderu

  • DAQmx custom scale

    A quick background, we are using create custome scale to convert bar to volts for the AO channel on a 6723 card. Which is working fine, we are able to set m and c values that convert nicely. An added 'feature' we are using is to be able to compensate for inaccuracies in the system (tolerences on transducers,wire resistences etc...) and hence claibrate the system by using a accurate sources/DVMS and again this is working well apart from one channel.
    Due to the way the tolerences have worked out and the ranges are slightly different. i have 0-10bar and 0-10v, which in a perfect world would mean m=1 and c=0. using these values gives us ok (ish) readings. To bring the readings in I need m to be nearer 0.98 and the FSD to still be 10. If I set m to this value the FSD becomes 9.8. The post scaled min and max is calculated from m and c by using the pre scaled range.
    this is giving a problem that once m<1 the daqmx scale becomes invalid and hence the channel is effectivly disabled. Any suggestions would be much appreciated
    Sorry if the explaination is a bit vague ive only just got it straight in my head what is happening
    Thanks in advance for any suggestions
    Please remember to accept any solutions and give kudos, Thanks
    LV 8.6.1, LV2010,LV2011SP1, FPGA, Win7

    Hello Akiel,
    I have been looking at your problem and just want to clarify a couple of points.
    From what you have said, I think you are using the DAQmx Create Scale VI in LabVIEW.
    I believe you are using the linear scaling option. Is that right?
    When you say it becomes invalid and hence the channel disabled, do you get a specific error message pop up? It seems strange to me that you are not able to use a value of m < 1 as an input to the function.
    Thanks
    Dom C

  • How to create and use scales for DAQ-6014 in Labview?

    Hello,
    In my application, I use the DAQmx-driver to read the 16 analog input terminals of my DAQ-Card. I create a task with all the 16 channels and define for each channels the input domain (from 0 to 10V) and configure them as NRSE. Then I configure my task to measure the waveforms during 10s with 1000 Hz each time I need it.
    The waveform I measure are raw data and I need to scale them to get a mesurement with physical signification. This is actually done after each measure, which costs a lot of time (almost 5 seconds). Then I tried to use the DAQmx Create Scale.vi to create scales and attach them to the channels during my task creation. The creation of scale works fine and I can attach them to the channels. But when I do my measure, I get the raw data - unscaled.
    I have no idea, what I am doing wrong. I look for some examples on how to use the DAQmx Create Scale.vi but I can't find none.
    Does anybody already have some experiences with this VI?
    Cheers,
    Olivier

    Hi,
    May be I don't get exactly what you mean with:
    "Right click On DAQmx read and check the options with DAQmx AI read (it is a polymorphic VI) ."
    I set the DAQmx read polymorphic VI to the option "Analog 1D Wfm NChan NSamp".
    Anyway, I send you 3 VI:
    - NIDAQ_6014_CreateScales.vi: where I create my scales
    - NIDAQ_6014_StartAIN_Scaled.vi: where I create my task and use the scales
    - Measure.WaveFormReader.vi: where I read my data
    May can you see what is wrong.
    Cheers.
    Attachments:
    Measure.WaveFormReader.vi ‏39 KB
    NIDAQ_6014_CreateScales.vi ‏22 KB
    NIDAQ_6014_StartAIN_Scaled.vi ‏29 KB

  • Scale in Measurement and Automation

    Hello,
    I have 50 load cells. When loaded, they give Voltage values. But I want the results directly in load values( i.e., in kilo Newtons). I have 50 different conversion factors (one for each load cell) written in a text file. How do I use the "Scale" option in Measurement and Automation Explorer to convert voltages to loads so I get load values directly ? Below is the step-by-step description of my problem.
    My problem:   I am getting 50 voltage values ( V1, V2, V3...........V50)
                           But I want them in terms of kilo Newtons (kN1, kN2, kN3......kN50)
                           I have 50 multipliers that can do this conversion (m1, m2, m3.....m50). They are in a text file.
                           All I need is kN1 = V1  * m1, kN2 = V2 * m2 and so on.
    How do I this scaling operation ?
    Thank you very much in advance for your kind help.

    Thanks very much for the reply.
    Attached is my code. It measures votages (upper left side of the code) and it also reads the multiplying constants from a text file (lower left side of the code). Then using the 'for loop' at the center, it converts the voltages to loads and finally it writes the load values in a file (middle left of the code, path labled as SC1).
    Is my code efficient ?
    Someone told me such code will slow down the entire process because of the loop. He suggested that I use "DAQmx create scale" and "scale node" to write a more efficient code. I don't know how to do that.
    Can someone help me on this, please?
    Attachments:
    Learning-2.vi ‏42 KB

  • Use virtual channel name as input to DAQmx Write? LV8 and DAQmx

    I've created a task for digital output that contains 8 named channels using the DAQmx Create Channel VI in Labview. Is it possible to use the channel name as an input to the DAQmx Write VI to reference the desired channel? I tried wiring a string with the channel name to the "task/channels in" input but I get a -200428 error that says the Value passed to the Task/Channels In control is invalid.
    The help "name to assign" input for the DAQmx Create Channel VI says
       If you use this input to provide your own names for the virtual channels, you must use the names when you refer to these channels
       in other NI-DAQmx VIs and Property Nodes
    OK, so how do you use the name assigned in other VIs?
    George

    George,
    I think that there may be some confusion here about the difference between local and global virtual channels.  First of all, please take a look at the following knowledge base:
    Physical Channels, Virtual Channels, and Tasks in NI-DAQmx
    As discussed in this KB, local global channels are created inside a task, and they only apply to that task.  In the help file for the DAQmx Write VI, the "task/channels in" description says "if you provide a list of virtual channels, NI-DAQmx creates a task automatically."  When you wire a string to this input, a new task is being created, and unless the channel name that you wire in is a global virtual channel (listed in MAX), you will get the error 200428 that you mentioned.  This is because that virtual channel that you are specifying is local to another task and is not associated with this new task. 
    One solution to this issue is to use the DAQmx Save Global Channel VI to save your local virtual channel as a global virtual channel before calling DAQmx Write.  Once this is done, you can then wire the same string constant to the "task/channels in" input of DAQmx Write or other DAQmx VI's. 
    The help text is still correct, but is only applicable in certain situations.  For example, if you create and name an analog input local virtual channel with DAQmx Create Channel, you could then use this channel name as the source input to a DAQmx Trigger VI configured for an analog edge start trigger.  You could also use that channel name as the input to the "ActiveChans" DAQmx Channel Property, which would enable you to modify the properties of that particular channel. 
    Hopefully this information is helpful to you.

  • Custom scale with Create Channel CI Position Angular Encoder

    Hi!
    In my application I use angular encoders for position measurement. I programatically create channel (task) using DAQmx Create Virtual Channel, CI Angular Encoder instance. Prior to that I use DAQmx Create Scale to create custom scale for the measurement, to convert from degrees directly to meters. The problem is that when I use the task (Start Task for instance) I get the following error message:
    Error -200378 occurred at DAQmx Start Task.vi:4
    Possible reason(s):
    Measurements: Custom scale specified does not exist.
    Custom Scale: RowCounter
    Task Name: _unnamedTask<66>
    Maybe somebody can help me out with this one.
    I use the same principle to create custom scales for AI measurements, and everything works without any problems. I know the scale is created properly, as I tried saving the custom scale to max after I create it. I then used the scale without a problem when I wired it as a constant to the custom scale input of the DAQmx Create Virtual Channel vi. It only gives me problems when I create it dynamically, using Create Scale vi.
    Some technical info: I use USB-6210 Daq card for signal acquisition.
    I will appreaciate any help!
    Jernej

    Hey!
    The error message I get is as follows:
    Error -200378 occurred at DAQmx Start Task.vi:4
    Possible reason(s):
    Measurements: Custom scale specified does not exist.
    Custom Scale: RowCounter
    Task Name: _unnamedTask<66>
    I use USB-6210 Daq card for signal acquisition. The error occurs right after the DAQmx Start Task.vi on the counter task.
    As I said, the code runs sometimes without problems and then sometimes it returns an error. I noticed that if I run the CustomScaleProblem.vi on its own it runs ok. When I open the project with mine application, from where I extracted CustomScaleProblem.vi part, and then try to run the CustomScaleProblem.vi, it stops working. It looks like when I open the project it allocates some space which is in conflict with the scale part of the code. Then if I close the Labview environment and open CustomScaleProblem.vi and run it, it runs again without any problem. Well, for now I did a work around the problem by saving the scale in the program and then using it. This approach works fine.
    About the arm start trigger. I use it because I dont want the counter to start counting before the AI task starts. I noticed that if I use the AI as a start trigger, and I move the encoder before AI starts, the counter will not start with 0, but will start with a number indicating the encoder movement before the AI start. Is that the right approach if I want the encoder to start
    counting from 0 when AI starts?
    Thanks and kind regards
    Jernej

  • Custom scaling of DAQmx channels

    Hello,
    I am attempting to set up a triggered acquisition using DAQmx custom scales with 1 virtual channel containing 3 physical channels.  What I am trying to acheive is to have independent scaling applied to each physical channel input.
    I have attached a snippet of my code - when I examined it in operation, only the last channel in the array is applied to the task with the final array scaling values.
    Could anyone give me some advice on how to improve this?
    Regards
    Dave
    Attachments:
    customScaling.png ‏66 KB

    I am not sure what is happening in your customscaling.vi as you havent posted it.
    I would create the custom scales first and apply it while the task is being created as below. You will need to adjust the values as necessary.
    Beginner? Try LabVIEW Basics
    Sharing bits of code? Try Snippets or LAVA Code Capture Tool
    Have you tried Quick Drop?, Visit QD Community.

  • Report generation write to file at interval

    Hi,
    I am using the report generation toolkit to write data to an excel sheet. I am recieving a lot of data but only want to save the data to the excel sheet every minute. I have found threads about doing this with the Write to Measurement Express VI but I am not using that and am unsure how to translate that code to something I could use. Any ideas? I have tried using a case selector around all of the report generation VIs but that doesn't seem to work...
    Any help is appreciated!

    Nice, can you help  kmarcella work that into his code?
    Well, the example that I post shows the Big Picture for doing what KMarcella wants to do, namely collect data periodically (like once a minute) and write all of the data, presumably one Excel row at a time, to an Excel Workbook.
    The Original Poster has the best understanding of the details of the task, but here are some suggestions that should help him (or her!).
    Divide the task into phases.
    Initialization Phase -- set up DAQmx channels, define timing parameters, open Excel Workbook.
    Loop (repetitive) Phase -- take a single reading, write a single row (or rows) into Excel, and wait for the next point.
    Finalization Phase -- close DAQmx, save the Excel Workbook and Dispose Report.
    Note that these phases are illustrated in the example -- there's stuff before the loop, the loop, and stuff after the loop.
    Strive for compactness and simplicity.  Try to fit it on a single screen (1280 by 1024) -- use sub-VIs where necessary to "encapsulate" (or "hide") the Messy Details.
    Try to not use Express VIs.  For example, a simple Wait to Next ms Multiple is much simpler, more compact, and intuitive than Elapsed Time.  You are to be commended for using DAQmx calls directly.
    I am completely befuddled by your use of the Dynamic Data Type.  It looks very complicated, lots of extra wires, bloating the Block Diagram.  It might be necessary (only you know the requirements of the task), but I suspect there is a simpler solution that works with the arrays of data directly.
    However, that raises another question as to the nature of the data being collecting and the data being saved.  I notice that you are sampling M channels, N samples (I don't know what M and N are),  Am I correct that you are sampling way more points than you are writing to Excel?  If you are only doing one write a minute, are you sampling faster than 1/minute?  What are you doing with the other points?
    The reason for the previous question is that my model of your task might be wrong!  I'm assuming (and my code does this) that you sample periodically (one sample at a time) and write each sample to Excel.  On the other hand, if you are sampling frequently and writing infrequently (say, sampling at 100Hz, maybe displaying the data, and writing a "representative point" every minute), then my model, with the writing in the same loop as the sampling, should probably be replaced with a Producer/Consumer pattern, where you "export" a point once a minute to a parallel "Write-to-Excel" loop.
    Another possibly-helpful example is one I posted here about a year ago.  If you go to the Search box and type the word Revised, the first entry that pops up should be my earlier post.  I think it's a snippet -- try it out and adapt it to your problem (as far as formatting and structuring the page).
    Bob Schor

  • Running a PXI with Windows 7

    Hey,
      I have access to three NI machines (PXI-1042 chassis, PXI-8186 controller) that can dual-boot with Windows XP and Labview RT.  Previously, these machines were used in the following setup: two computers attached via ethernet port, one running Windows XP and Labview 8.2 controlling the other running Labview RT.  However, I recently obtained a set of Dell Optiplex 780s, all running Windows 7, and have since installed Labview 2010 on each.  I have attempted to replace the Windows XP computer in the above setup with a new Windows 7 machine (with both the latest DAQmx drivers and the latest pxi drivers), and labview always tells me I don't have the correct plugins installed.  Are there better drivers out there? If not, how can I control a PXI machine with a Windows 7 machine?
    Many thanks

    Hello bjw5,
    At what point does this error pop up, when you click on Add device in the project>>existing devices>>and then choose the PXI? Was this project originally built in LabVIEW 8.2 and now saved to 2010? Do you have any other hardware you can try adding to the project? There should be no compatibility problems having a Windows 7 host computer. What version of the PXI platform software and DAQ mx drivers do you have?
    Researching this error dialog it usually occurs when the project contains .dlls or DAQmx custom scales or tasks. Are all three PXI systems exhibiting this behavior, or are you just setting up this one to start? I appreciate your answers to these questions. On a side note, please keep your posts to one forum, this helps us focus our resources on the support side. This most likely has to do with the network/RT setup versus the actual LabVIEW project.
    Thank you,
    Deborah Y.
    LabVIEW Real-Time Product Marketing Manager
    Certified LabVIEW Architect
    National Instruments

  • Loading a Previously Saved Task into LabView

    I have created a digital generation task in LabView and saved it using DAQmx Save Task.vi. I am able to open and run my task in Measurement and Automation Explorer. Now I am wondering if it is possible to load this task back into LabView and run it in a new program. Can I do this with the task saved from DAQmx Save Task.vi or would I need to go about it differently? Where would I start loading the task in terms of vi's?
    Thank you for your help.

    I am actually not asking the same question as before. Previously, I was having problems using a LabView-created task in MAX. Now I am attempting to create a task in LabView and bring it back into LabView on a separate VI. I have found the answer, though.
    https://decibel.ni.com/content/docs/DOC-15842
    Thank you for your help.

  • Problems saving a DAQ task in Labview and running elsewhere

    I am attempting to use DAQmx Save Task.vi in LabView to save a simple signal generation task, so I can open it later / elsewhere. The problem I am having, though, is when I attempt to open the task in MAX. The task is brought into MAX, but when I attempt to run the task error -200552 occurs at DAQ Assistant.
    Error -200552 occurred at DAQ Assistant
    Possible Reason(s):
    Specified string is not valid, because it contains an invalid character.
    Position of Invalid Character: 4
    Invalid String: Dev1/port0/line0
    It looks as though the problem has to do with the '/' character, but I am not sure how to create an output line in LabView that does not include the '/' character. Is there anyway around this problem in either LabView or in MAX?
    I have attached my LabView program. Thank you for your help and patience.
    Solved!
    Go to Solution.
    Attachments:
    saving_generation_task.vi ‏19 KB

    Where is your program where you are trying to run the task? I don't understand what an existing task has to do with the DAQ Assistant. You would simply have to wire the task to a DAQmx Write.

  • OLE excel - subtotals

    hello everybody,
    i am trying to format an already existing excel-file with ole-technique.
    this works fine so far, but (of course) there is one very important step i can't handle.
    i need to make subtotals and after 2 days of trying and searching the net i have no more ideas how it could work.
    to make it easier to understand i have made a simple excerpt which everyone should be able to use as local report by copy/paste or you can download the coding as txt-file from here:
    txt-file
    Report  ZVEXCELOLE_TMP
    Author: Matthias Leitner
    REPORT zvexcelole_tmp NO STANDARD PAGE HEADING LINE-SIZE 132.
    datendeklaration                                                    *
    DATA: it_filetable TYPE filetable.
    DATA: wa_filetable TYPE file_table.
    DATA: wa_filename     TYPE string,
          wa_upload       TYPE string,
          wa_download     TYPE string,
          wa_file(255)    TYPE c,
          wa_rc           TYPE i.
    OLE-Definitionen
    INCLUDE ole2incl.
    DATA: wa_loesch type i,
          o_excel         TYPE ole2_object,
          o_workbook      TYPE ole2_object,
          o_columns       TYPE ole2_object,
          o_autofit       TYPE ole2_object,
          o_blatt         TYPE ole2_object.
    selection-screen                                                    *
    SELECTION-SCREEN BEGIN OF BLOCK z3 WITH FRAME.
    PARAMETERS: pa_dir(255) TYPE c LOWER CASE .
    SELECTION-SCREEN END OF BLOCK z3.
    initialization                                                      *
    INITIALIZATION.
    standardmässiges download-verzeichnis holen
      CALL METHOD cl_gui_frontend_services=>get_upload_download_path
        CHANGING
          upload_path                 = wa_upload
          download_path               = wa_download
        EXCEPTIONS
          cntl_error                  = 1
          error_no_gui                = 2
          not_supported_by_gui        = 3
          gui_upload_download_path    = 4
          upload_download_path_failed = 5
          OTHERS                      = 6.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                   WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ELSE.
        MOVE wa_download TO pa_dir.
      ENDIF.
    at selection-screen                                                 *
    AT SELECTION-SCREEN.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_dir.
      CALL METHOD cl_gui_frontend_services=>file_open_dialog
    EXPORTING
       WINDOW_TITLE            =
       DEFAULT_EXTENSION       =
       DEFAULT_FILENAME        =
       FILE_FILTER             =
       INITIAL_DIRECTORY       =
       MULTISELECTION          =
       WITH_ENCODING           =
        CHANGING
          file_table              = it_filetable
          rc                      = wa_rc
       USER_ACTION             =
       FILE_ENCODING           =
        EXCEPTIONS
          file_open_dialog_failed = 1
          cntl_error              = 2
          error_no_gui            = 3
          not_supported_by_gui    = 4
          OTHERS                  = 5
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                   WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ELSE.
        READ TABLE it_filetable INTO wa_filetable INDEX 1.
        MOVE wa_filetable-filename TO pa_dir.
      ENDIF.
    start-of-selection                                                  *
    START-OF-SELECTION.
      PERFORM excel_format.
      MOVE pa_dir TO wa_file.
      FORMAT HOTSPOT ON.
      WRITE: wa_file+0(132).
      FORMAT HOTSPOT OFF.
      HIDE wa_file.
      CLEAR wa_file.
    at line-selection                                                   *
    AT LINE-SELECTION.
      CLEAR wa_file.
      READ CURRENT LINE.
      IF NOT wa_file IS INITIAL.
        MOVE wa_file TO wa_filename.
        CALL METHOD cl_gui_frontend_services=>execute
          EXPORTING
            document               = wa_filename
         application            =
         PARAMETER              =
         DEFAULT_DIRECTORY      =
         MAXIMIZED              =
         MINIMIZED              =
         SYNCHRONOUS            =
          EXCEPTIONS
            cntl_error             = 1
            error_no_gui           = 2
            bad_parameter          = 3
            file_not_found         = 4
            path_not_found         = 5
            file_extension_unknown = 6
            error_execute_failed   = 7
            OTHERS                 = 8
        IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                     WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.
      ENDIF.
    form excel_format                                                   *
    FORM excel_format.
    start excel
      CREATE OBJECT o_excel 'EXCEL.APPLICATION'.
      IF sy-subrc NE 0.
        WRITE: / 'OLE-Fehler. EXCEL.APPLICATION'.
      ENDIF.
    excel -> not visible
      SET PROPERTY OF o_excel 'Visible' = 0.                   "visible = 1
      IF sy-subrc NE 0.
        WRITE: / 'OLE-Fehler. Visible'.
      ENDIF.
    Arbeitsblatt auswählen
      CALL METHOD OF o_excel 'Workbooks' = o_workbook.
      IF sy-subrc NE 0.
        WRITE: / 'OLE-Fehler. Workbooks'.
      ENDIF.
    open existing file
      CALL METHOD OF o_workbook 'OPEN'
        EXPORTING
        #1 = pa_dir.
      IF sy-subrc NE 0.
        WRITE: / 'OLE-Fehler. OPEN'.
      ENDIF.
    SUBTOTALS!!!
    bei allen spalten auf optimale breite setzen
      CALL METHOD OF o_excel 'Columns' = o_columns.
      IF sy-subrc NE 0.
        WRITE: / 'OLE-Fehler. Columns'.
      ENDIF.
      CALL METHOD OF o_columns 'Autofit' = o_autofit.
      IF sy-subrc NE 0.
        WRITE: / 'OLE-Fehler. Autofit'.
      ENDIF.
    save and close excel
      CALL METHOD OF o_excel 'Worksheets' = o_blatt
        EXPORTING
        #1 = 1.
      IF sy-subrc NE 0.
        WRITE: / 'OLE-Fehler. Worksheets'.
      ENDIF.
      CALL METHOD OF o_blatt 'SaveAs'
        EXPORTING
        #1 = pa_dir
        #2 = 1.                "fileFormat
      IF sy-subrc NE 0.
        WRITE: / 'OLE-Fehler. SaveAs'.
      ELSE.
      ENDIF.
      CALL METHOD OF o_workbook 'CLOSE'.
      IF sy-subrc NE 0.
        WRITE: / 'OLE-Fehler. CLOSE'.
      ENDIF.
      CALL METHOD OF o_excel 'QUIT'.
      IF sy-subrc NE 0.
        WRITE: / 'OLE-Fehler. QUIT'.
      ENDIF.
      FREE o_excel.
    ENDFORM.                                             "FORM excel_format
    the excel-file should be grouped by column 6 and sum column 4.
    you can download an example of the excel-sheet (already including the subtotals as i need them):
    xls-file
    i hope my question is clear. if i have forgotten anything important - please ask.
    our system:
    SAP_BASIS 620
    excel 2002 - service pack 3
    thanks in advance!
    matthias
    Message was edited by: Matthias Leitner

    hi vinod,
    thank you very much for the reply.
    if i get it right the first two function modules don't have any functionallity for making subtotals. the next two just put excel-data into internal format.
    the last may be a possibility to use an external excel makro .
    but i think it must be possible to do this by OLE.
    best regards,
    matthias

Maybe you are looking for