Convert excel vba to diadem script
I have a working excel spreadsheet that can interpolate z given and x,y using a matrix lookup table. I am attaching the excel file. I would like to import this functionality into Diadem. Basically, I collect Engine Speed and System Pressure, and I would like to know what the resulting Compressor Output (l/min) equals.
This data is being collected from a vehicle at 100Hz sample rate, and this would greatly help with the data analysis.
The excel user defined functions are from www.tushar-mehta.com
Any assistance would be greatly appreciated.
Solved!
Go to Solution.
Attachments:
Compressor Map.xls 55 KB
Brad,
Thank you for your time and assistance. You are correct that I don't want to just do one at a time. My ultimate goal is to create a new channel with the returned z values and then I will be summing up the values to give a total compressor output in liters for the entire run.
The compressor is only running when "Governor" = 0
The "Compressor_Speed" = "Drv_Ratio" x "Eng_Speed" when the above condition is true.
Using the new values: "Compressor_Speed" as X and "System_Pressure" as Y create a new channel "Compressor_Output" using a lookup table to interpolate the values.
So... Given:
Recorded Values
Generated Values
Calculated Values
Lookup Table Values
Row
Governor
Eng_Speed
System_Pressure
Drv_Ratio
Compressor Speed
Compressor_Output
22880
0
1255
9.213
1.08
1355.4
Interpolated value
22881
0
1255
9.213
1.08
1355.4
Interpolated value
22882
0
1255
9.213
1.08
1355.4
Interpolated value
22883
0
1255
9.213
1.08
1355.4
Interpolated value
22884
0
1254
9.213
1.08
1354.32
Interpolated value
22885
0
1254
9.213
1.08
1354.32
Interpolated value
22886
1
1254
9.216
1.08
0
0
22887
1
1254
9.216
1.08
0
0
22888
1
1254
9.216
1.08
0
0
22889
1
1254
9.216
1.08
0
0
Then after running this on the entire data set I will be summing "Compressor_Output" to figure out the total ammount of air processed by the compressor.
Similar Messages
-
Hello guys,
I need to send keys to a window in the background, but I don't want it to pop up when I do it as it may cause some errors if I'm typing something at that moment. Is this possible?
The script I'm working on converts a spool to a pdf, but when the save as window comes up, the script stops recording because that is not a SAP screen, but a windows screen.
I was actually able to make it work by ending the script right before executing the transaction, then I used AppActivate and SendKeys to execute the transaction by pressing F8 and saving the file by pressing enter, but I still have these windows popping up while the macro is running, so, is it possible to have the SendKeys point to a specific application without it bringing it to the foreground?
Also, please note that I am new to programming, so I'm not familiar with all the functions.
Thanks in advance.Hello Jahir.
I had several similar request in past.
One requirement was mass convertion of PM orders printout from spool to PDF.
I found a solution where a small ABAP-Report (implemented in coding-area of an SQ02 infoset) Transfer spool data from my SAP user as PDF to a temp Folder on my local HDD.
Then I convert this PDF-files with an small application (pdf2txt.exe) to text-files. Where a small Excel VBA code got an specific text as identifier (PM order number).
So I have pdf-files with spoolnumber-naming and dedicated PM order number. So a small VBA code is renaming my files for better identification by enduser.
Another method was to write an small VBA macro which is able to identify Save-As dialogbox and fillin a specific filename and press 'Save' by using ESER32-API methods and functions.
As you are new with programming I guess both methods are a Little bit to complex for you.
LEt me know when you Need more Information for one of above used methods by me.
MAy you can give some more Details in which Transaction you will Trigger the spools.
Br, Holger -
Error in Excel VBA script while using sharepoint web service
Hi Can you please help me out in this ?
nain1987Hi Nain,
According to your description, my understanding is that the error occurred in the Excel VBA scripts which was used to update SharePoint list.
I recommend to check if the URL of the web service is in the right scope. If the list is in a subsite, the URL should be: http://servername/site/ _vti_bin/Lists.asmx.
To update SharePoint list using Excel VBA script, you can refer to the link below:
http://sharepoint.stackexchange.com/questions/34433/update-sharepoint-list-using-excel
Best regards.
Thanks
Victoria Xia
TechNet Community Support -
How can I call a variable from VBA in Diadem report?
Hello,
I have a script in Diadem, script that I can control from a VBA application ( from Excell), and I want to send from Excell some details to the report.
I want in the report, the Local Test Order field to by the LocalTO from the VBA (Excell), the DVM Test Order fiel to be the DVMTO from Excell, and ..... al the fields from the excell to be in the report.
And in the Diadem script the filename of the export .pdf file to be the filename from the Excell.
Attached I put the script from Diadem and the VBA application.
Thank you for your time.
Attachments:
Diadem.zip 28 KBHello Marse!
Sorry that I was not clear enough and add the hwo-to via OLE
For way 1. you have to add this lines to your Excel VBA code:
loadscript = IDIACommand.TextVarSet("T1","Value of T1")
For way 2. it is:
loadscript = IDIACommand.CmdExecuteSync("GlobalDim('MyGlobalVar'")
loadscript = IDIACommand.VariantVarSet("MyGlobalVar","Value of MyGlobalVar")
Inserted before your line
loadscript = IDIACommand.CmdExecuteSync("scriptstart('C:\BForce\LIBR\BForce2.VBS')")
Hope it is clear now! Otherwise feel free to ask
Matthias
Message Edited by Twigeater on 10-10-2008 09:43 AM
Matthias Alleweldt
Project Engineer / Projektingenieur
Twigeater? -
Hi Guys,
I need to generate the XML from Excel file. The XML file will have the definition like this:
<people_list>
<name>Fred Bloggs</name>
<birthdate>27/11/2008</birthdate>
<gender>Male</gender>
</people_list>
The Excel file will look like this:
A B C
1 Fred Bloggs 10/21/2008 Male
2 ABC 12/23/2008 Female
3 XYZ 07/16/2008 Male
All the values in name,birthdaye,gender will come from the Excel file. I am having 100 rows in the Excel file with the data and I want to parse this excel file and create the XML file with the above template.
Any ideas how to do this?
Thanks,
MaheshHi Mahesh,
there are tons of ways to do what you need. It all depends on how your workflow is organized and how complicated it may become.
Alternative 1:
Export your Excel file as a cvs and convert cvs to XML (which shouldn't be so hard).
Pro: Relative easy transformation.
Con: Every time you want to convert the Excel file to XML you first needs to export it out of Excel by a manual step.
Alternative 2:
Save you Excel file as XML (e. g. the new *.xslx documents) and transform it as you like.
Pro: Very clean way to do this. You can access the single source Excel file directly from Java. No further steps needed.
Con: It's very very hard to program because the Excel xml structure is ridiculously complex.
Alternative 3:
You can create a little Excel VBA Script which generates the XML File.
Pro: Easy programing.
Con: Needs some experience in Visual Basic 6 programming.
Alternative 4:
Use http://jexcelapi.sourceforge.net/ or any other Excel-API to Access the Excel application out of Java.
Pro: Clean way to do it. You need no further manual actions to prepare something. (maybe the most flexible and at the same time easyest way)
Con: Additional license.
Best Wishes
esprimo -
Can I convert my VBA project to some sort of batch submitted executable
Thanks to the help from you all, I have written VBA macros that open huge word documents and pluck out specific information and put it into Excel. The files I've received have grown in size from 1500 to 3500 pages. I'm currently running the VBA
macros by opening the document in word and then clicking "View....Macros...mymacro....Run. The macro then runs for any where from 10 minutes to 2 hours.
Is there a way I can convert my VBA project into some sort of executable so that I can "submit" the word file to the executable? Sometimes I run this on a term server. I'd like to start the job, log off the term server, and then later
check for the resulting excel file.
Is there a way to queue up a list of input files for this?Hi Denis Backer,
>>Can I convert my VBA project to some sort of batch submitted executable<<
Yes, it is possible. We can write an application to automate open the Word documents and run the macro using
Application.Run. Also we can convert all the VBA project with mange code, however the Office automation is not supported on the server enviroment.
Microsoft does not currently recommend, and does not support, Automation of
Microsoft Office applications from any unattended, non-interactive client
application or component (including ASP, ASP.NET, DCOM, and NT Services),
because Office may exhibit unstable behavior and/or deadlock when Office is run
in this environment.
You can get more detail about it from link below:
Considerations for server-side Automation of Office Print Print Email Email
And here are two helpful links about Office automtaion using C# for your reference:
C# app automates Word (CSAutomateWord)
How to automate Microsoft Excel from Microsoft Visual C#.NET
Regards & Fei
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey.
That is a really curious disclaimer considering the number of options for automation Microsoft itself integrates into its products. -
Excel VBA to JS: How does one pass rectangle coordinates to a JS function.
I have an Excel VBA sub that calls a folder level JS function and I'm trying to pass a set of rectangle coordinates.
This is the VBA code:
Sub BarcodeDoc_PDF417(pdfFileName As String)
Dim AVDoc As Acrobat.CAcroAVDoc
Dim PDDoc As Acrobat.CAcroPDDoc
Dim myApp As Acrobat.CAcroApp
Dim jso As Object
Dim bcTmpFile As String
bcTmpFile = "C:\Temp\bcTmpFile.pdf"
Set myApp = CreateObject("AcroExch.App")
Set AVDoc = CreateObject("AcroExch.AVDoc")
If AVDoc.Open(pdfFileName, "") Then
Set PDDoc = AVDoc.GetPDDoc
Set jso = PDDoc.GetJSObject
jso.myAdd417Barcode 'This is where the coordinates get passed.
PDFSave PDDoc, bcTmpFile
myApp.CloseAllDocs
myApp.Exit
Set AVDoc = Nothing
Set jso = Nothing
Set PDDoc = Nothing
Set myApp = Nothing
Else
MsgBox "Sub: BarcodeDoc_PDF417. Document not found:" & vbCrLf & vbCrLf & pdfFileName
End If
End Sub
This is the folder level JS script:
function myAdd417Barcode(myCoords)
//The line below is just for testing. Will come out once I can pass the coords in from my VBA sub.
//var myCoords = [324, 756, 540, 720];
InsertPDF417Barcode(this, myCoords);
I've tried to pass the coords as a string and an array, both to no avail. Any ideas?
Thanks.I tried typing the array as a variant (in the VBA code), but the JS script didn't like that either.
I then changed the JS script to this:
function myAdd417Barcode(n1, n2, n3, n4)
var bcCoords = [n1, n2, n3, n4];
InsertPDF417Barcode(this, bcCoords);
and passed it 4 integers thinking it would accept them in a way that I could then define the rectangle coordinates as shown above. It didn't work, and the error I get is that myCoords (in the script below) "isn't defined".
var InsertPDF417Barcode = app.trustedFunction( function(doc, mycoords)
app.beginPriv();
var bcIconFileName = "/C/Temp/bcTmpImage.pdf";
//var bcCoords = [324, 756, 540, 720];
var t = doc.addField("bcFormID", "button", 0, myCoords);
t.display = display.visible;
t.buttonPosition = position.iconOnly;
t.buttonScaleHow = scaleHow.proportional;
t.buttonScaleWhen = scaleWhen.always;
t.buttonFitBounds = true;
t.setButtonIcon
var x = doc.importIcon("myIcon", bcIconFileName, 0);
var f = doc.getField("bcFormID");
var i = doc.getIcon("myIcon")
var y = f.buttonSetIcon(i);
app.endPriv();
Any suggestions will be appreciated.
Thanks! -
Using Excel VBA to Print to PDF File?
Hi, All !!
I have an Excel VBA application that creates Excel reports. These need to be sent external to our company in PDF format. I've downloaded the Acrobat SDK and have found the VB sample for AdobePDFSilent. Unfortunately, it appears that this is written for VB or VB.Net as I don't have any of the data types available that are created in the code. However, from another forum, I've gotten some VB code that appears to do many of the processes included in the SDK sample.
The code below doesn't give me any errors, but no PDF file is created.
My VBA code
Declare Function RegOpenKeyA Lib "advapi32.dll" ( _
ByVal Key As Long, _
ByVal SubKey As String, _
NewKey As Long) As Long
Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" ( _
ByVal hKey As Long, _
ByVal lpValueName As String, _
ByVal Reserved As Long, _
ByVal dwType As Long, _
lpData As Any, _
ByVal cbData As Long) As Long
Declare Function RegCloseKey Lib "advapi32.dll" ( _
ByVal hKey As Long) As Long
Sub TestPrintPDF()
Dim strDefaultPrinter As String
Dim strOutFile As String
Dim lngRegResult As Long
Dim lngResult As Long
Dim dhcHKeyCurrentUser As Long
Dim PDFPath As String
Const dhcRegSz As Long = 1
1 Workbooks.Open ("\\master\fnshares\bcbcm\Client Management\Client Services\New Account Fees\09 September 2010\3Q10 Rebate Ltrs\Infi\MacroTest\A02.xls")
2 Select Case ActiveWorkbook.Sheets.Count
3 Case 1
4 Sheets(1).Select
5 Case 2
6 Sheets(Array(Sheets(1).Name, Sheets(2).Name)).Select
7 Case 3
8 Sheets(Array(Sheets(1).Name, Sheets(2).Name, Sheets(3).Name)).Select
9 Case 4
10 Sheets(Array(Sheets(1).Name, Sheets(2).Name, Sheets(3).Name, Sheets(4).Name)).Select
11 Case 5
12 Sheets(Array(Sheets(1).Name, Sheets(2).Name, Sheets(3).Name, Sheets(4).Name, Sheets(5).Name)).Select
13 Case 6
14 Sheets(Array(Sheets(1).Name, Sheets(2).Name, Sheets(3).Name, Sheets(4).Name, Sheets(5).Name, Sheets(6).Name)).Select
15 End Select
16 dhcHKeyCurrentUser = &H80000001
17 strDefaultPrinter = Application.ActivePrinter
18 PDFPath = ActiveWorkbook.Path & Application.PathSeparator 'The directory in which you want to save the file
19 strOutFile = PDFPath & Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4) & ".pdf" 'Change the pdf file name if required. This should have the fully qualified path
20 lngRegResult = RegOpenKeyA(dhcHKeyCurrentUser, "Software\Adobe\Acrobat Distiller\PrinterJobControl", lngResult)
21 lngRegResult = RegSetValueEx(lngResult, Application.Path & "\Excel.exe", 0&, dhcRegSz, ByVal strOutFile, Len(strOutFile))
22 lngRegResult = RegCloseKey(lngResult)
23 ThisWorkbook.ActiveSheet.PrintOut copies:=1, ActivePrinter:="Adobe PDF"
24 Application.ActivePrinter = strDefaultPrinter
25 ActiveWorkbook.Close False
End Sub
From what I can determine, the lines 17 & 24 combined basically accomplish the same thing as the SaveandUpdateDefaultPrinter function in the SDK (get and save the current default printer and return it to that default after printing the PDF).
Line 20 opens the Registry key for Distiller\PrinterJobControl which is done in part of the ConvertFile function in the following SDK code.
SDK Code
Dim objDistillerRegKey As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.ClassesRoot
Dim strDistillerSubKey As String = "SOFTWARE\\Adobe\\Acrobat Distiller\\PrinterJobControl"
'Open Current User's Distiller Subkey for writing
objDistillerRegKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(strDistillerSubKey, True)
Line 21 sets the Registry key for Excel with the name of the PDF file to output which also appears to be done in part of the ConvertFile function in the following code.
SDK Code
If (Not objDistillerRegKey Is Nothing) Then 'set reg key value for this app and file
objDistillerRegKey.SetValue(strAppPath, strOutputFile)
objDistillerRegKey.Close()
End If
I have verified, using RegEdit, that this Registry key does get set with the desired output filename.
Line 23 prints the Excel file to PDF when done manually (this was recorded using the Excel Macro Recorder). This should be comparable to the PrintToAdobePDF function in the SDK as below.
SDK Code
Private Sub PrintToAdobePDF(ByVal InputfilePath As String)
'Prints InputFilePath to the AdobePDF printer.
'Since we just gathered all this info programmatically,
'this function assumes the file is present, that it has an
'associated application and that the current user has print privileges.
'Define properties for the print process
Dim pProcInfo As New ProcessStartInfo
pProcInfo.FileName = InputfilePath
pProcInfo.Verb = "Print"
'Make process invisible
pProcInfo.CreateNoWindow = True
pProcInfo.WindowStyle = ProcessWindowStyle.Hidden
'start print process
Dim pMyProc As Process = Process.Start(pProcInfo)
pMyProc.WaitForExit()
End Sub
These are some of the statements I can't do because I don't have a ProcessStartInfo type. What am I doing wrong or NOT doing that the PDF file is not created? I hope I've described my situation in enough, but not too much detail. Thanks for your help.
Nate BreiReinhard & Karl Heinz,
Thank you both for your responses and willingness to work with me on this problem. This is driving me crazy & is getting very frustrating. It seems that I've tried everything that people have suggested (I've also posted on a VB Forum that I subscribe to) and I'm basically doing what works for everyone else but doesn't work for me. I've got to be close.
Reinhard, regarding your last post, it doesn't appear to be a one-time setting. Everytime I come into the Printers Property box (even after I've printed a PDF document manually, that option about system & document fonts is ALWAYS turned on. If it is a registry setting, please let me know how to turn it off. I'm using Adobe Acrobat 9 Standard.
Karl Heinz, I've tried that based on my initial post (see the code there). Since your post, I tried it again. I get the same result, NO FILE is produced anywhere.
I wish I could post pictures, but evidently I can't. So, I going to post first my code (in case you want to try to recreate my problem), then the values of the variables in that code when I run it (so you can I have everything set correctly as far as I know), and finally, the values of the Registry entries that I have after I run it. So, please bear with me as the post may be a little long.
My Code
Declare Function RegOpenKeyA Lib "advapi32.dll" ( _
ByVal Key As Long, _
ByVal SubKey As String, _
NewKey As Long) As Long
Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" ( _
ByVal hKey As Long, _
ByVal lpValueName As String, _
ByVal Reserved As Long, _
ByVal dwType As Long, _
lpData As Any, _
ByVal cbData As Long) As Long
Declare Function RegCloseKey Lib "advapi32.dll" ( _
ByVal hKey As Long) As Long
Sub TestPrintPDF()
Dim strDefaultPrinter As String
Dim strOutFile As String
Dim lngRegResult As Long
Dim lngResult As Long
Dim dhcHKeyCurrentUser As Long
Dim PDFPath As String
Const dhcRegSz As Long = 1
'Workbooks.Open ("\\master\fnshares\bcbcm\Client Management\Client Services\New Account Fees\09 September 2010\3Q10 Rebate Ltrs\Infi\MacroTest\A02.xls")
Workbooks.Open ("H:\A02.xls")
Select Case ActiveWorkbook.Sheets.Count
Case 1
Sheets(1).Select
Case 2
Sheets(Array(Sheets(1).Name, Sheets(2).Name)).Select
Case 3
Sheets(Array(Sheets(1).Name, Sheets(2).Name, Sheets(3).Name)).Select
Case 4
Sheets(Array(Sheets(1).Name, Sheets(2).Name, Sheets(3).Name, _
Sheets(4).Name)).Select
Case 5
Sheets(Array(Sheets(1).Name, Sheets(2).Name, Sheets(3).Name, _
Sheets(4).Name, Sheets(5).Name)).Select
Case 6
Sheets(Array(Sheets(1).Name, Sheets(2).Name, Sheets(3).Name, _
Sheets(4).Name, Sheets(5).Name, Sheets(6).Name)).Select
End Select
dhcHKeyCurrentUser = &H80000001
strDefaultPrinter = Application.ActivePrinter
'The directory in which you want to save the file
PDFPath = ActiveWorkbook.Path & Application.PathSeparator
'Change the pdf file name if required. This should have the fully qualified path
strOutFile = PDFPath & Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4) & ".pdf"
lngRegResult = RegOpenKeyA(dhcHKeyCurrentUser, "Software\Adobe\Acrobat Distiller\PrinterJobControl", _
lngResult)
lngRegResult = RegSetValueEx(lngResult, Application.Path & "\Excel.exe", 0&, dhcRegSz, _
ByVal strOutFile, Len(strOutFile))
lngRegResult = RegCloseKey(lngResult)
ThisWorkbook.ActiveSheet.PrintOut copies:=1, ActivePrinter:="Adobe PDF"
'ThisWorkbook.ActiveSheet.PrintOut copies:=1, preview:=False, ActivePrinter:="Adobe PDF", _
printtofile:=True, collate:=True, prtofilename:=strOutFile
'Call printToPdf(strOutFile)
Application.ActivePrinter = strDefaultPrinter
ActiveWorkbook.Close False
End Sub
Sub printToPdf(PDFFilename)
' Define a postscript file name
PSFileName = "H:\TempPostScript.ps"
' Print the Excel range to the postscript file
'Dim MySheet As Worksheet
'Set MySheet = ActiveSheet
ActiveWindow.SelectedSheets.PrintOut copies:=1, preview:=False, ActivePrinter:="Adobe PDF", _
printtofile:=True, collate:=True, prtofilename:=PSFileName
' Convert the postscript file to .pdf
Set myPDF = CreateObject("PdfDistiller.PdfDistiller.1")
myPDF.FileToPDF PSFileName, PDFFilename, ""
End Sub
Values of my Variables When I Run the Code
? dhcHKeyCurrentUser
-2147483647
? strDefaultPrinter
\\tcps01p\FNT12W00 Canon 5020 PCL 5e on Ne04:
? PDFPath
H:\
? strOutFile
H:\A02.pdf
? lngResult
2280
? Application.Path & "\Excel.exe
C:\Program Files\Microsoft Office\OFFICE11\Excel.exe
? dhcRegSz
1
? Len(strOutFile)
10
? PSFileName
H:\TempPostScript.ps
? PDFFilename
H:\A02.pdf
Values of my Registry Entries (HKEY_CURRENT_USER\Software\Adobe\Acrobat Distiller\PrinterJobControl)
(Default) REG_SZ (value not set)
C:\Program Files\Microsoft Office\OFFICE11\Excel.exe REG_SZ H:\A02.pdf
LastPdfPortFolder - EXCEL.EXE REG_SZ "Q:\Client Management\Client Services\New Account Fees\09 September 2010\3Q10 Rebate Ltrs\Infi\MacroTest
Note: There are a couple of other entries for documents that I've printed manually that I didn't include. Also, the last entry above, contains the value of the folder that I last manually "printed" to.
I've also noticed that I have a Registry SubKey under PrinterJobControl called DownloadFonts. However, the only entry there is:
(Default) REG_SZ (value not set)
Is this the registry key you mentioned, Reinhard?
As you can see in my code, I have 3 different methods that I've tried to print. The first one defaults everything after selecting the Acrobat PDF printer. The second sets the output filename as a PDF (basically what you suggested, Karl Heinz). The third method calls a procedure that prints to a PostScript file & then uses Distiller to print from that file to pdf. This is the method Reinhard suggested.
With the first 2 methods, I get NO error messages, but no file(s) show up. With the 3 method, I get the error about the Fonts checkbox, but it creates a 0K PostScript file. When I skip that statement and run the other 2 statements, I get a log file that says the PostScript file is empty and not PDF file was created.
YIKES... What's going on? Thanks again for attempting to help me!!!
Nate -
Acrobat 9.0 Standard. Setting PDF file password from Excel VBA
Acrobat 9.0 Standard. Setting PDF file password from Excel VBA
Hi: I am trying to find a call to set the password of a PDF file that I am creating from Excel Workbook using a VBA call.
I basically have this Excel VBA code that works fine and creates a file.
pBook.PrintOut Copies:=1, preview:=False, ActivePrinter:="Adobe PDF", _
PrintToFile:=True, collate:=True, PrToFileName:=PSFileName
' Convert the postscript file to .pdf
Dim myPDF As PdfDistiller
Set myPDF = New PdfDistiller
myPDF.FileToPDF PSFileName, "", ""
BUT, I need to set the password on this PDF file and do not see an option to do so.
Can you provide a solution for this situation? Appreciate your response in advance.
Thanks.There is no way to set password programmatically using any other dll or any other kit?
I am creating a bunch of PDF files for users programmatically but then they have to go in and set password themselves? This is very inconvenient for users. -
Call Transaction from Excel VBA macro and download ALV list object results
I have a situation that must be very common u2013 but I canu2019t find any clear information on how to get it done!
We frequently run SAP transactions, download the results (orders or inventory) into Excel, do some calculations and create a spreadsheet report.
I would like to automate this process using Excel VBA so that a macro will perform these steps:
1. Run our custom SAP report "YSD033" that summarizes orders using the previous day as the [From Date] parameter. (The user already has an active ECC 6 R3 session running.) If possible, can the TC be run using a specific variant "G111BIZ" ?
2. Download the list object that appears in an ALV grid as a table to an empty spreadsheet in the active workbook (export XXL list object)
3. Save the resulting workbook and close Excel.
Should the solution use u201Ccall transactionu201D or a GuiXT script?
Any help would be much appreciated, and some sample VBA code would be great!
Thanks.
GlennGood suggestion, but
I get "permission denied" for SapGuiAuto.GetScriptingEngine
I also tried the method below, but received this RFC error message:
User PPPPPPP has no RFC authorization for function group SYST.
Sub LoginCheck()
If login = False Then
' Setting the necessary variables for R/3 connection
Set objBAPICortrol = CreateObject("SAP.Functions")
Set objConnection = objBAPICortrol.Connection
' Establish a connection
If objConnection.Logon(0, False) Then
login = True
MsgBox "Connection Established"
CommandButton1.Caption = "Disconnect"
End If
Else
CommandButton1.Caption = "Connect 2 SAP"
login = False
objConnection.Logoff
Set objConnection = Nothing
Set objBAPICortrol = Nothing
End If
End Sub
I was told that these kinds of authority open up too big of a window that can't be monitored adequately...
I'm considering an approach like what is below if I can't convince security to grant me permissions...
Application.Wait Now + TimeValue("00:00:01")
SendKeys EnterKey, False
Since blocked RFC security settings are preventing the solution from being installed, I am markgin this question as answered.
I will post different questions about 1. how to convince the security team that it will be safe to allow the use of RFC calls, and /or 2. how use some windows-level scripting code to run the SAP jobs.
Thanks.
Edited by: GlennWebster on Mar 1, 2010 4:34 PM -
How to call Copy.GetItem Method in Excel vba function
Hi,
I want to use sharepoint copy services to download/upload or retreive field information of a sharepoint file.
For that i want to sharepoint web services. One class among them is copy. I want to call the GetItem method present in that class.
Think that modules are not installed or not found in excel vba editor tools reference library list to enable.
So please provide me the steps from scratch to install the sharepoint library. and call the Copy class methods in my script.
Just send me a sample vba code to accomplishes the same requirement. I appreciate the help.
Regards,
SUBBAHi SUBBA,
The following articles for your reference:
VBA - Download files from sharepoint
http://ckannan.blogspot.com/2012/09/vba-download-files-from-sharepoint.html
Using Microsoft Windows SharePoint Services with the Microsoft Office System
http://msdn.microsoft.com/en-us/library/office/aa159897(v=office.11).aspx
How to download a file from a Sharepoint server via Excel VBA?
http://www.justanswer.com/computer-programming/7ntq7-download-file-sharepoint-server-via-excel-vba.html
About the Excel VBA questions, you can also post it to Excel for Developers Forum, you will get more help and confirmed answers from there.
http://social.msdn.microsoft.com/Forums/office/en-US/home?forum=exceldev<o:p></o:p>
Best Regards
Dennis Guo
TechNet Community Support -
Excel VBA add-in to create a PDF: What is acrodistdll.dll?
My Excel VBA add-in prints an Excel sheet with a list of drawing numbers, then prints all the drawings (it communicates with a CAD and a CAM application via COM). Then it repeats the cycle many times, with different list of drawings. At the end I have hundreds or thousands of paper sheets.
I want to create a PDF file instead of wasting that much paper, so I explored the Adobe objects available in my computer and I found out that adding a reference in the VBA project to Acrobat.dll and to acrodistdll.dll I could use the PdfDistiller to convert PostScript files to PDF and the Acrobat.CAcroApp, Acrobat.CAcroPDDoc and Acrobat.CAcroPDDoc objects to merge many PDF files into one large PDF file. Then I use the external tool pdftk to create the bookmarks.
Everything works well on my computer, but when I try to use the Excel add-in on another computer the references are missing.
I don't know what was installed on my computer. The IT department said that some of our computers have no Adobe products, some have only free Adobe products, and some have some products that we purchased. But they don't know what purchased or free products were installed on my computer.
So my questions are:
Are the above mentioned DLLs the correct tool to achieve my goal?
If no, what is the best way?
If yes, how do I install them on the other computers? Are they part of some free product or are they part of a product that I need to purchase?
Thanks,
StefanoThe relevant page in the documentation is here:
http://livedocs.adobe.com/acrobat_sdk/10/Acrobat10_HTMLHelp/wwhelp/wwhimpl/common/html/wwh elp.htm?context=Acrobat10_SDK_HTMLHelp&file=Distiller_WinIntro.61.11.html
Don't forget to click the button in the top left corner to get the navigation pane.
I wrote a blog post about this problem - with sample code - a while ago:
http://khkonsulting.com/2013/01/prevent-the-save-dialog-when-printing-to-the-adobe-pdf-pri nter/
Information about the difference with 64bit systems is in the comments.
Karl Heinz Kremer -
How to execute a "real" VBS command in DIAdem script?
Hello,
I've some troubles to execute specific "real" VBS command lines in DIAdem script:
e.g.:
Workbooks.OpenText filname, DataType:=xlDelimited, tab:=True, DecimalSeparator:=",", ThousandsSeparator:="."
Using other writings as
Workbooks.OpenText(filname, DataType:=xlDelimited, tab:=True, DecimalSeparator:=",", ThousandsSeparator:=".")Workbooks.OpenText filname, "DataType:=xlDelimited", "tab:=True", "DecimalSeparator:=','", "ThousandsSeparator:='.'"
don't help, I always get error messages. It seams, that DIAdem has problems with recognition of := .
How can I include such kind of VBS command line in a DIAdem script without getting problems?
SvenHi,
thanks for answer, but unfortunately its not over yet.
I tryed the following possibilities:
Set create_tabfile = Excel.Workbooks.OpenText(Filename,,,xlDelimited,,,True,,,,,,,,".",",",,True)Set create_tabfile = Excel.Workbooks.OpenText(Filename,,,xlDelimited,,,1,,,,,,,,".",",",,1) Set create_tabfile = Excel.Workbooks.OpenText(Filename,,,"xlDelimited",,,True,,,,,,,,".",",",,True) Set create_tabfile = Excel.Workbooks.OpenText(Filename,,,"xlDelimited",,,1,,,,,,,,".",",",,1) Set create_tabfile = Excel.Workbooks.OpenText(Filename,,,1,,,True,,,,,,,,".",",",,True)Set create_tabfile = Excel.Workbooks.OpenText(Filename,,,1,,,1,,,,,,,,".",",",,1)but always I get some error messages. I assume, that there is just a format error in the command line, may you help me out with some hints, how to do it right?
Regards
Sven -
Powershell Variable from Excel.VBA Macro
Hi Guys!
I don't know if what i'm asking you is achievable.
I've learned how to pass variables/arguments from powershell to Excel/VBA Macro but i need to do the opposite thing.
This is an example of what i want:
Powershell
Excel/VBA Macro
$Input=1 ----------------------------------------------------------------> Sub Macro(input)
$excel.Run("Macro",$Input)
Output=input +6
$output (Expected 7) <---------------------------------------------------- return Output
I don't know how to do this can you help me please?
AOk guys those are the script.
Macro:
Sub CreatePWD()
Dim PWD As String
Dim i As Integer
Dim Max As Integer
Dim F1 As Worksheet
Set F1 = ThisWorkbook.Worksheets("Foglio1")
Max = F1.Range("A1").Value
For i = 1 To Max
If Int((2 * Rnd) + 1) = 1 Then
PWD = PWD & Chr(Int((90 - 65 + 1) * Rnd + 65))
Else
PWD = PWD & Int((9 - 0 + 1) * Rnd + 0)
End If
Next i
MsgBox PWD
End Sub
Powershell:
$Excel = New-Object -ComObject excel.application
$Excel.visible=$false
$Version = "C:\Users\Alberto Corona\Desktop\Cartel1.xlsm"
$WorkBook= $Excel.workbooks.open($Version)
$WorkSheet= $WorkBook.worksheets.item(1)
$WorkSheet.cells.item(1,1)=5
$Excel.Run("CreatePWD")
$WorkBook.save()
$WorkBook.close()
$Excel.quit()
The result of macro is like "52UT7" i want a variable in powershell called $PWD that contain the value of the macro.
Hope the problem is clear now.
Thanks
A -
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
Maybe you are looking for
-
Windows Updater Not Installing and Troubleshooter Wizard Is Not Working???
I am in need help desperately! I have tried to install the Windows 7 latest update since late October 2014 and every time that I have tried it has failed, this is messing with certain programs to either not run such as my Troubleshooter, lea
-
Iphoto changes the date on some events to a date in the future
I went into my iphoto and noticed some events had been changed to a date in the future. It seems to do it on random events. It also grouped all of my videos into one event dated the end of May. Does anyone know what causes this and how to prevent i
-
Document Management Repositories
First a little background: We have recently purchased Oracle Workflow (Standalone)for use in a Content Management application, along with the Internet File system, and Oias. The application is intended to be a moderately simple (Create), Edit, Review
-
Failed to convert Catalog (PS Album 2.0 to PSE 7.0)
When attempting to convert My Catalog from Photoshop Album 2 to PSE 7, the following prompt is reported "The conversion operation failed. try repairing the catalog with the software that created it and retry conversion" I have attempted to repair/uni
-
Step to Follow in SLD, IR, ID
Hi, Please Provide me Common steps that follows in configuration of SLD, IR, ID. Thanks Laxmi Bhushan Jha