Refreshing a VBA Macro Periodically
Hi All
I have assigned the below code that refreshes my data to a button. I was wondering if there was a piece of code that allows the data to automatically refresh/run every 20minutes???
Sub RESFRESHCUSTOMERORDERS()
' RESFRESHCUSTOMERORDERS Macro
ActiveSheet.Unprotect
Sheets("KYPERA").Visible = True
Sheets("KYPERA").Select
Sheets("PIVOTS").Visible = True
Sheets("KYPERA").Select
Range("B7").Select
Selection.ListObject.QueryTable.REFRESH BackgroundQuery:=False
Range("F7").Select
Selection.ListObject.QueryTable.REFRESH BackgroundQuery:=False
Range("N7").Select
Selection.ListObject.QueryTable.REFRESH BackgroundQuery:=False
Range("BT7").Select
Selection.ListObject.QueryTable.REFRESH BackgroundQuery:=False
Range("BZ7").Select
Selection.ListObject.QueryTable.REFRESH BackgroundQuery:=False
Sheets("PIVOTS").Select
Range("B5").Select
ActiveSheet.PivotTables("PivotTable1").PivotCache.REFRESH
Range("F5").Select
ActiveSheet.PivotTables("PivotTable2").PivotCache.REFRESH
Range("J5").Select
ActiveSheet.PivotTables("PivotTable3").PivotCache.REFRESH
Range("N5").Select
ActiveSheet.PivotTables("PivotTable4").PivotCache.REFRESH
Range("R5").Select
ActiveSheet.PivotTables("PivotTable5").PivotCache.REFRESH
Range("W5").Select
ActiveSheet.PivotTables("PivotTable7").PivotCache.REFRESH
Sheets("PIVOTS").Select
ActiveWindow.SelectedSheets.Visible = False
Sheets("KYPERA").Select
ActiveWindow.SelectedSheets.Visible = False
Sheet8.Select
Range("G15").Select
Selection.ListObject.QueryTable.REFRESH BackgroundQuery:=False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFiltering:=True
End Sub
Thanks
At the top of your module, declare a public variable:
Dim NextTime As Date
Then, at the and of your Sub, use
NextTime = Now() + TimeValue("00:20:00")
Application.OnTime NextTime, "RESFRESHCUSTOMERORDERS", Schedule:=True
But you also need to use this in the before close event of the Thisworkbook codemodule:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
CancelRefresh
End Sub
where you have this procedure in a standard codemodule to cancel the refresh:
Sub CancelRefresh()
Application.OnTime NextTime, "RESFRESHCUSTOMERORDERS", Schedule:=False
End Sub
Similar Messages
-
Running multiple refreshes using a VBA macro
My company has just moved from BO 5.1.5 to BO XI 3.0 and I'm having some probelms running a VBA macro which extracts a large ammount of sales data to a text file. The macro uses an array and a For Each Next loop to enter variable details before the Refresh and then it downloads the text data, looping back to enter different Major Product values before the next refresh.
Here is the code I'm using in BO 5.1.5 and would like to rewrite as event based code ie BeforeRefresh/AfterRefresh.
Sub Main_Report()
Dim Docs As Documents
Dim Doc As Document
Dim Rep As Report
Dim Reps As Reports
Dim DocNum As Integer
Dim RepNum As Integer
Dim Location As String
Dim VarName As Variable
Dim DataPro As DataProvider
Dim FileName
Dim Majors
Dim MajorList
Dim Period
Dim Counter
MajorList = Array("001", "002", "003")
Period = Format(DateAdd("m", -1, Now), "YYYYMM")
Counter = 0
' Enter user prompt values into query for current period and YTD
For Each Majors In MajorList
Counter = Counter + 1
For i = 1 To ActiveDocument.Variables.Count
Set VarName = ActiveDocument.Variables(i)
If VarName.IsUserPrompt Then
Select Case VarName.Name
Case "Major Group"
ActiveDocument.Variables(i).Value = Majors
Case "Period"
ActiveDocument.Variables(i).Value = Period
End Select
End If
Next i
' Refresh the current report and save data
Application.Interactive = False
ActiveDocument.Refresh
Location = "
seausdcff015\saracm$\My Documents\Tables\Sales\"
Set Docs = Application.Documents
Set Reps = ActiveDocument.Reports
' Export each report as "TXT" files from current document
Set Doc = Docs.Item(1)
FileName = Location & Doc.Name & "_" & Counter & ".txt"
Set DataPro = ActiveDocument.DataProviders.Item(1)
Call DataPro.ConvertTo(boExpAsciiTab, 1, FileName)
Application.Interactive = True
Next
End Sub
Can you please help. Cheers Milos.A coworker found this thread on asktom:
http://asktom.oracle.com/pls/asktom/f?p=100:11:861518416236107::::P11_QUESTION_ID:10498431232211
It sort of details a similar (if not the same) method to that above. -
How Can I Schedule a Deski Report in Infoview that has a VBA Macro
Hi experts,
i've made a report that has a vba Macro. I published it in infoview. If I launch it manually (clicking on the refresh button) the macro works normaly. If I schedule it the macro doesn't work.
What can I do?
Is it possible to make a program that simulate the opening and click on the refresh button?
Or i there is another solution?
Here is my Macro:
Private Sub Document_AfterRefresh()
Dim filtervar As Variant
Dim filterText, Filter As Long
Dim DocName, NewName As String
Dim Pathing, TodaysDate As String
Dim folderName As String
TodaysDate = Format(Date, "DDMMYYYY")
Pathing = "
Ktsdwh0\c$\OutputBO\"
DocName = ThisDocument.Name
filterText = "Dpre Cod Produttore"
filtervar = ThisDocument.Evaluate("=<" & filterText & ">", boUniqueValues)
For Each sepval In filtervar
Filter = sepval
For n = 1 To ThisDocument.Reports.Count
Call ThisDocument.Reports(n).AddComplexFilter(filterText, "=<" & filterText & "> = " & Filter)
ThisDocument.Reports(n).ForceCompute
Next n
MkDir (Pathing & Filter & "\")
NewName = Pathing & Filter & "\" & Filter & "-" & TodaysDate & "-" & DocName 'for Prova_Prod.rep
' NewName = Pathing & Filter & "-" & TodaysDate & "-" & DocName 'for Prova_Prod.rep
ThisDocument.ExportAsPDF (NewName) 'to Save as PDF
Next
For n = 1 To ThisDocument.Reports.Count
Call ActiveReport.AddComplexFilter(filterText, "=<" & filterText & "> = <" & filterText & ">")
' To delete a Complex Filter, you set it equal to itself...
ActiveReport.ForceCompute
Next n
End Sub
Please Help!
Best regards
CamilloHi Philippe,
If you are using Windows 2003 with SP2 then it might be the issue as already logged for BOXIR2.
You can test the issue by using only Windows 2003 without SP2.
In case your operating system is only windows 2003 then following information and code might be helpful for you to resolve the issue.
There are a number of things to check when setting up a macro to work through Infoview or scheduled. The first thing is that the macro needs to be triggered to run. This is done by putting a call to the macro in the Document_BeforeRefresh or the Document_AfterRefresh event handler.
The report server and job server are designed to process one report at a time. Through a macro it is possible to open more than one report, and do various processing with those additional reports. Since the report and job servers are not designed to process more than one report, your macro should not open an additional report.
The fact that only one report is processed at a time also affects the syntax you should use when referring to a document or report object. In the DeskI client you can use the ThisDocument object to refer to the report which is running the macro. You can also use the ActiveDocument object to refer to the report that is currently displayed. Most of the time these two objects will point to the same report. When the report server or job server process a report there would never be the possibility for a different report to be active, so the ActiveDocument object does not exist. This also applies to the ActiveReport object. Instead of using ActiveDocument your macro code should use the ThisDocument object. Instead of using the ActiveReport object you should use ThisDocument.Reports.Item(1) to refer to this first report tab in a report.
These items are the most common issues that will cause a macro not to run through Infoview or when scheduled. The best way to debug a macro which is not working in either of those places is to include code which will log the macro's progress to a file. This makes it easy to determine exactly which line of code is causing issues so that it can potentially be corrected.
#Region u201CWeb Form Designer Generated Code "
'This call is required by the Web Form Designer.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: This method call is required by the Web Form Designer
'Do not modify it using the code editor.
InitializeComponent()
End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim myInfoStore As InfoStore
Dim myEnterpriseSession As EnterpriseSession
myInfoStore = CType(Session("InfoStore"), InfoStore)
myEnterpriseSession = CType(Session("EnterpriseSession"), EnterpriseSession)
Dim DOCUMENT_NAME As String = "document_name"
Dim query As String = "Select SI_ID, SI_NAME, SI_SUBJECT, " _
& "SI_COMMENTS, SI_OWNER From CI_INFOOBJECTS Where SI_KIND = 'FullClient' " _
& "AND SI_INSTANCE=0 AND SI_NAME='" + DOCUMENT_NAME + "'"
Dim myInfoObjects As InfoObjects = myInfoStore.Query(query)
Dim myInfoObject As InfoObject = myInfoObjects(1)
Dim myDeskiDoc As FullClient = CType(myInfoObject, FullClient)
Dim mySchedulingInfo As SchedulingInfo = myDeskiDoc.SchedulingInfo
mySchedulingInfo.Type = CeScheduleType.ceScheduleTypeOnce
mySchedulingInfo.RightNow = True
Dim myFullClientFormatOptions As FullClientFormatOptions = myDeskiDoc.FullClientFormatOptions
myFullClientFormatOptions.Format = BusinessObjects.Enterprise.Desktop.CeFullClientFormat.ceFullClientFormatFullClient
myInfoStore.Schedule(myInfoObjects)
End Sub
End Class
I hope this will help you.
Regards,
Sarbhjeet Kaur -
Schedule a VBA macro based DeskI Report.
Hi,
We have a requirement to schedule a VBA macro based report via CMC and Infoview and I would like to acheive the below. Please help.
1) To save the report output as CSV file after refresh in Xi R2 and I have the following code, which runs fine if I run manually, but if I schedule it in Xi R2, it does not run.Please help.
Private Sub Document_AfterRefresh()
Dim boDP As busobj.DataProvider
Set boDP = ThisDocument.DataProviders.Item(1)
OUTPUT_FILE_CSV = TARGET_FILE_DIR & OUTPUT_FILE_NAME & Format(Now, "YYYYMMDD") & "_" & Format(Now, "hhnnss") & ".csv"
Call boDP.ConvertTo(5, 1, OUTPUT_FILE_CSV)
End Sub
The OUTPUT_FILE_CSV & TARGET_FILE_DIR are declared as global varilable. Please help.
2) A prompt to be filled and the following syntax works fine when I run the macro manually. But does not work when I schedule in CMC (Variable prevented report to refersh error)..
Private Sub Document_BeforeRefresh(Cancel As Boolean)
newfromdate = DateAdd("M", -4, DateValue(Now))
Application.Variables.Item("BOL Date").InterpretAs = boStringVariable
Application.Variables.Item("BOL Date").Value = newfromdate
End Sub
Please advice.
Thank You.Hi Sundaresan,
Following are the important points related to scheduling deski report containing VBA macro:
1. BusinessObjects XI Release 2 supports macros in
Desktop Intelligence in InfoView, both when viewing or
scheduling the document, but with caveats.
2. There are slight differences in the execution flow when
viewing a Deski in InfoView as opposed to viewing on
the Desktop Intelligence client.
3. A restriction on scheduling documents is that the
scheduler can only open one document at a time u2013 so
if you have macros that try and access another Deski
document, it will fail.
4. Whether a macro executes successfully or not would
depend on the functionality used in the macro.
May i know which service pack you are using,as this is known issue and it works fine with BOXI R2 SP2 and higher versions.
I hope this helps you.
Regards,
Snehal -
Live Office BOXI R2 VBA Macros & Scheduling
Greetings,
have an Excel heavy customer who is liking VBA for macro development and desktop productivity workflow automation ...
Wondering if/how customer could hook VBA macros into the Live Office suite?
Alternatives for automating document refreshes?
MartinDouble post. Sorry
-
VBA Macros Running Before BPC Routine is Done
Hello, All -
Working on converting our BPC 7.5 templates to version 10 and I'm having an issue with our custom VBA macro codes.
In our 7.5 system, all our input templates call custom VBA macro routines when certain SAP functions are done executing (i.e.: once a Refresh is done, execute this macro code). In 7.5, we have macro codes within the BEFORE_REFRESH, AFTER_REFRESH, BEFORE_EXPAND, and AFTER_EXPAND routines (note: our templates utilize the EvDRE function) and our custom macro codes would not run until the SAP function was done processing, which worked out perfectly however, it appears that something has changed in version 10 as all our macro codes are executing even though the SAP system is still processing in the background. I confirmed this behavior by placing a macro stopper next to certain macro codes and noticed that VBA is already at that point of executing those codes yet in the background, I can still see the 'processing' box. In 7.5, the processing box is already gone before the custom macro code executed. Not sure why the macros are executing when SAP is not done fully processing yet.
Has anyone encountered this type of behavior where custom VBA code is running prematurely before SAP is done processing?
In addition, it appears that SAP is no longer utilizing the Excel Status bar when certain processes are being executed. In 7.5, when a Refresh command was executed (for example), the status bar at the bottom of Excel would be updating (ready...retrieving data...calculating...formatting, etc...), which allowed us to check the Status bar for the word 'COMPLETED' as this was our indicator that SAP was done processing. In version 10, it appears that SAP has done away with the use of the Status bar because I am no longer seeing any kind of message flowing through down there when certain SAP functions are running. Correction: the only messages I see are 'Ready' and a brief moment of 'Calculate'. Because nothing is appearing on the status bar, our custom macro codes are not working in the new version.
Does anyone know if this feature no longer available in version 10?
Other Information:
+ Office 2010
+ BPC v10 on Microsoft platform
+ EPM Server version: 10.0 SP16
+ EPM Add-in version: 10.0 SP21 .NET 3.5; Build: 9094
Thanks,
CarloADDENDUM:
7 hours later.... to log in was "random", replies mostly not possible, two different error massages, the nice "looking for" and a generic "too many server access try later" (<<in German, my humble translation)
there IS a lot of working going on, only explination...
hope, we read some "Announcement"...
it's late here, byebye, nitynite... -
Using ms project 2007 and vba macro to list all the custom fields used in the project?
Hi,Using ms project 2007 vba macro, I would like to be able to list all the custom fields used in the project and their corresponding field names. e.g. let us say I create a calculated duration field and name it "expected duration" and the name
of the field I select is Duration1.
I am trying to write a macro that will list all the used custom fields such as the result would look like:
Duration1 ---> "expected duration"
Text1 ---> "anything"
Flag1 ---> "....."
Number1 ---> "..............."
Can anyone provide me with the solution?
Regards,
ChuckJohn,
I found this module, which provides the the list of custom fields used in the project but does not provide the name given to the field. Here below is the module and hope you could help me achieve this by modifying the macro to list the renamed field.
' MSP Checks all Custom Task Fields
Sub checkfields2()
'This macro will check and report out which custom task fields are used
'It requires Project 2002 and above as it relies on the GetField
'and FieldNameToFieldConstant methods which were not introduced until
'2002.
'It does not include resource fields, however it is a simple matter to
'do it by replacing the pjTask constant with pjResource.
'Copyright Jack Dahlgren, Oct. 2004
Dim mycheck As Boolean
Dim myType, usedfields As String
Dim t As Task
Dim ts As Tasks
Dim i, it As Integer
Set ts = ActiveProject.Tasks
usedfields = "Custom Fields used in this file" & vbCrLf
myType = "Text"
usedfields = usedfields & vbCrLf & "--" & UCase(myType) & "--" & vbCrLf
For i = 1 To 30
mycheck = False
it = 0
While Not mycheck And (it < ts.Count)
it = it + 1
If Not ts(it) Is Nothing Then
If ts(it).GetField(FieldNameToFieldConstant(myType & i, pjtask)) <> "" Then
usedfields = usedfields & myType & CStr(i) & vbCr
mycheck = True
End If
End If
Wend
Next i
myType = "Number"
usedfields = usedfields & vbCrLf & "--" & UCase(myType) & "--" & vbCrLf
For i = 1 To 20
mycheck = False
it = 0
While Not mycheck And (it < ts.Count)
it = it + 1
If Not ts(it) Is Nothing Then
If ts(it).GetField(FieldNameToFieldConstant(myType & i, pjtask)) <> 0 Then
usedfields = usedfields & myType & CStr(i) & vbCr
mycheck = True
End If
End If
Wend
Next i
myType = "Duration"
usedfields = usedfields & vbCrLf & "--" & UCase(myType) & "--" & vbCrLf
For i = 1 To 10
mycheck = False
it = 0
While Not mycheck And (it < ts.Count)
it = it + 1
If Not ts(it) Is Nothing Then
If Left(ts(it).GetField(FieldNameToFieldConstant(myType & i, pjtask)), 2) <> "0 " Then
usedfields = usedfields & myType & CStr(i) & vbCr
mycheck = True
End If
End If
Wend
Next i
myType = "Cost"
usedfields = usedfields & vbCrLf & "--" & UCase(myType) & "--" & vbCrLf
For i = 1 To 10
mycheck = False
it = 0
While Not mycheck And (it < ts.Count)
it = it + 1
If Not ts(it) Is Nothing Then
If ts(it).GetField(FieldNameToFieldConstant(myType & i, pjtask)) <> 0 Then
usedfields = usedfields & myType & CStr(i) & vbCr
mycheck = True
End If
End If
Wend
Next i
myType = "Start"
usedfields = usedfields & vbCrLf & "--" & UCase(myType) & "--" & vbCrLf
For i = 1 To 10
mycheck = False
it = 0
While Not mycheck And (it < ts.Count)
it = it + 1
If Not ts(it) Is Nothing Then
If ts(it).GetField(FieldNameToFieldConstant(myType & i, pjtask)) <> "NA" Then
usedfields = usedfields & myType & CStr(i) & vbCr
mycheck = True
End If
End If
Wend
Next i
myType = "Finish"
usedfields = usedfields & vbCrLf & "--" & UCase(myType) & "--" & vbCrLf
For i = 1 To 10
mycheck = False
it = 0
While Not mycheck And (it < ts.Count)
it = it + 1
If Not ts(it) Is Nothing Then
If ts(it).GetField(FieldNameToFieldConstant(myType & i, pjtask)) <> "NA" Then
usedfields = usedfields & myType & CStr(i) & vbCr
mycheck = True
End If
End If
Wend
Next i
MsgBox usedfields
End Sub
This is what the module gives me. But I would like to have beside Text 1 the name that is shown as below. e.g Text1 is "Test".
Would you mind helping me achieve this?
Thanks in advance.
Chuck -
Business Objects Financial Consolidation - Excel Link and VBA Macros
Hi
We use the excel links of Business Objects Financial Consolidation V10.5 to import and export data to/from BOF and excel
We used VBA macros for the imports but do not know what VBA code is required to export - this code would include the package identifier that has to be selected in the window "Select item Package "
Can anyone help?Hello Chrisitne,
I am as well intersted by the same funtiont, did you find any answer?
Can I also ask you the VBA code for Import and Export if you have it?
Thank for your help! -
Need Help Converting a VBA Macro to AppleScript 2.1.2 for Outlook 2011
Hello AppleScript Experts:
Can somebody help me convert the below VBA Macro to an equivalent AppleScript 2.1.2 for Mac Outlook 2011 (Version 14.1.3)
I have a VBA macro program that pops message box when somebody sends an email to an external email address outside of the business domain name. I have deployed the below on WINDOWS 7 MS OFFICE OUTLOOK 2007/2010 and it's
working successfully.
I have few users using MAC Outlook 2011 v.14.0.1 & 14.1.3. I need to deploy the same application for MAC users.
Here is the program...
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim objRecipient As Outlook.Recipient
Dim strExternalEmailAddress As String
Dim strInternalEmailAddress As String
Dim oRecip As Outlook.Recipient
Dim oEU As Outlook.ExchangeUser
Dim oEDL As Outlook.ExchangeDistributionList
Set objRecipients = Item.Recipients
strTemp = ""
For Each objRecipient In objRecipients
Set oRecip = Application.Session.CreateRecipient(objRecipient.Address)
If InStr(1, oRecip, "@") > 0 And InStr(1, oRecip, "company.org") = 0 Then
strExternalEmailAddress = strExternalEmailAddress & objRecipient.AddressEntry & " - " & objRecipient.Address & "; "
strExternalEmailAddress = strExternalEmailAddress & vbCrLf
Else
oRecip.Resolve
If oRecip.Resolved Then
Select Case oRecip.AddressEntry.AddressEntryUserType
Case OlAddressEntryUserType.olExchangeUserAddressEntry
Set oEU = oRecip.AddressEntry.GetExchangeUser
If Not (oEU Is Nothing) Then
End If
Case OlAddressEntryUserType.olExchangeDistributionListAddressEntry
Set oEDL = oRecip.AddressEntry.GetExchangeDistributionList
If Not (oEDL Is Nothing) Then
End If
Case Else
If (objRecipient.Type = 1) And InStr(1, oRecip, "company.org") = 0 Then
strExternalEmailAddress = strExternalEmailAddress & objRecipient.AddressEntry & " - " & oRecip & "; "
strExternalEmailAddress = strExternalEmailAddress & vbCrLf
ElseIf (objRecipient.Type = 1) And InStr(1, oRecip, "company.org") <> 0 Then
strInternalEmailAddress = strInternalEmailAddress & objRecipient.AddressEntry & " - " & oRecip & "; "
strInternalEmailAddress = strInternalEmailAddress & vbCrLf
ElseIf (objRecipient.Type = 2) And InStr(1, oRecip, "company.org") = 0 Then
strExternalEmailAddress = strExternalEmailAddress & objRecipient.AddressEntry & " - " & oRecip & "; "
strExternalEmailAddress = strExternalEmailAddress & vbCrLf
ElseIf (objRecipient.Type = 2) And InStr(1, oRecip, "company.org") <> 0 Then
strInternalEmailAddress = strInternalEmailAddress & objRecipient.AddressEntry & " - " & oRecip & "; "
strInternalEmailAddress = strInternalEmailAddress & vbCrLf
End If
End Select
Else
If InStr(1, oRecip, "@") > 0 And InStr(1, oRecip, "company.org") = 0 Then
strExternalEmailAddress = strExternalEmailAddress & objRecipient.AddressEntry & " - " & objRecipient.Address & "; "
strExternalEmailAddress = strExternalEmailAddress & vbCrLf
ElseIf InStr(1, oRecip, "@") > 0 And InStr(1, oRecip, "company.org") <> 0 Then
strInternalEmailAddress = strInternalEmailAddress & objRecipient.AddressEntry & " - " & objRecipient.Address & "; "
strInternalEmailAddress = strInternalEmailAddress & vbCrLf
End If
End If
End If
Next
If Len(strExternalEmailAddress) > 0 Then
If MsgBox("You are about to send this email message to one or more individuals outside of COMPANY. Before you send the message," & _
" please review the list below and confirm that you have addressed the message to the intended recipients." & vbCrLf & strExternalEmailAddress & vbCrLf & _ "Please click 'Yes' to send the message or 'No' to make changes to the recipients.", vbYesNo + vbDefaultButton2) = vbNo Then
Cancel = True
End If
End If
End SubHello AppleScript Experts:
Can somebody help me convert the below VBA Macro to an equivalent AppleScript 2.1.2 for Mac Outlook 2011 (Version 14.1.3)
I have a VBA macro program that pops message box when somebody sends an email to an external email address outside of the business domain name. I have deployed the below on WINDOWS 7 MS OFFICE OUTLOOK 2007/2010 and it's
working successfully.
I have few users using MAC Outlook 2011 v.14.0.1 & 14.1.3. I need to deploy the same application for MAC users.
Here is the program...
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim objRecipient As Outlook.Recipient
Dim strExternalEmailAddress As String
Dim strInternalEmailAddress As String
Dim oRecip As Outlook.Recipient
Dim oEU As Outlook.ExchangeUser
Dim oEDL As Outlook.ExchangeDistributionList
Set objRecipients = Item.Recipients
strTemp = ""
For Each objRecipient In objRecipients
Set oRecip = Application.Session.CreateRecipient(objRecipient.Address)
If InStr(1, oRecip, "@") > 0 And InStr(1, oRecip, "company.org") = 0 Then
strExternalEmailAddress = strExternalEmailAddress & objRecipient.AddressEntry & " - " & objRecipient.Address & "; "
strExternalEmailAddress = strExternalEmailAddress & vbCrLf
Else
oRecip.Resolve
If oRecip.Resolved Then
Select Case oRecip.AddressEntry.AddressEntryUserType
Case OlAddressEntryUserType.olExchangeUserAddressEntry
Set oEU = oRecip.AddressEntry.GetExchangeUser
If Not (oEU Is Nothing) Then
End If
Case OlAddressEntryUserType.olExchangeDistributionListAddressEntry
Set oEDL = oRecip.AddressEntry.GetExchangeDistributionList
If Not (oEDL Is Nothing) Then
End If
Case Else
If (objRecipient.Type = 1) And InStr(1, oRecip, "company.org") = 0 Then
strExternalEmailAddress = strExternalEmailAddress & objRecipient.AddressEntry & " - " & oRecip & "; "
strExternalEmailAddress = strExternalEmailAddress & vbCrLf
ElseIf (objRecipient.Type = 1) And InStr(1, oRecip, "company.org") <> 0 Then
strInternalEmailAddress = strInternalEmailAddress & objRecipient.AddressEntry & " - " & oRecip & "; "
strInternalEmailAddress = strInternalEmailAddress & vbCrLf
ElseIf (objRecipient.Type = 2) And InStr(1, oRecip, "company.org") = 0 Then
strExternalEmailAddress = strExternalEmailAddress & objRecipient.AddressEntry & " - " & oRecip & "; "
strExternalEmailAddress = strExternalEmailAddress & vbCrLf
ElseIf (objRecipient.Type = 2) And InStr(1, oRecip, "company.org") <> 0 Then
strInternalEmailAddress = strInternalEmailAddress & objRecipient.AddressEntry & " - " & oRecip & "; "
strInternalEmailAddress = strInternalEmailAddress & vbCrLf
End If
End Select
Else
If InStr(1, oRecip, "@") > 0 And InStr(1, oRecip, "company.org") = 0 Then
strExternalEmailAddress = strExternalEmailAddress & objRecipient.AddressEntry & " - " & objRecipient.Address & "; "
strExternalEmailAddress = strExternalEmailAddress & vbCrLf
ElseIf InStr(1, oRecip, "@") > 0 And InStr(1, oRecip, "company.org") <> 0 Then
strInternalEmailAddress = strInternalEmailAddress & objRecipient.AddressEntry & " - " & objRecipient.Address & "; "
strInternalEmailAddress = strInternalEmailAddress & vbCrLf
End If
End If
End If
Next
If Len(strExternalEmailAddress) > 0 Then
If MsgBox("You are about to send this email message to one or more individuals outside of COMPANY. Before you send the message," & _
" please review the list below and confirm that you have addressed the message to the intended recipients." & vbCrLf & strExternalEmailAddress & vbCrLf & _ "Please click 'Yes' to send the message or 'No' to make changes to the recipients.", vbYesNo + vbDefaultButton2) = vbNo Then
Cancel = True
End If
End If
End Sub -
Run Data Package from custom Menu00F9/VBA macro
HI guys,
I have a problem:when creating VBA macro to run Data Package.
I get the pop-up error "400" . This is the VBA code I'm using:
Application.Run "MNU_eDATA_RUNPACKAGE(""Opening""; ""/CPMB/Opening_Balances""; ""Company""; ""Financial Processes"")"
Have you any suggestion for me?
Thanks
Marco UccelloHi Marco,
I'm guessing by prompts you mean user inputs for Entity, Category, Time etc.
These are controlled by the dynamic script associated with the data package.
If you go to the menu eData -> Organise Packages then select a package and go through :
Modify Package -> View Package -> Advanced
You should get to the Data Manager Dynamic Script window.
The following is an example of what should be in here. This is taken directly from the SAP How to Guide "How To Pass Dynamic Parameters to script logic.pdf"
It's the "PROMPT" parts at the start that control the prompts shown to the user (and passed to the data package) :
PROMPT(SELECTINPUT,,,,"%ENTITY_DIM%,%CATEGORY_DIM%,%CURRENCY_DIM%,%TIME_DIM%")
PROMPT(TEXT,%WS_PERCT%,"Input W/S Percent in decimals",)
PROMPT(TEXT,%EXP_PERCT%,"Input Exp. Percent in decimals",)
INFO(%EQU%,=)
INFO(%TAB%,;)
TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,TAB,%TAB%)
TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,EQU,%EQU%)
TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,SUSER,%USER%)
TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,SAPPSET,%APPSET%)
TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,SAPP,%APP%)
TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,SELECTION,%SELECTION%)
TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,LOGICFILENAME, INCREASEPERCENTAGE.LGF)
TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,REPLACEPARAM,WS_PERCT%EQU%%WS_PERCT%%TAB%EXP_PERCT%EQU%%EXP
_PERCT%)
If you paste that in exactly it will resolve into the right package information which can be seen one step back (via Modify Package -> View Package).
You can modify the prompts as appropriate for the script you are running - the one above from the how to guide has two inputs for percentages which are used within the associated script logic calculation.
Hope this helps.
Thanks.
Bradley Newcombe. -
Copying Graphs and Pie Charts generated in Analysis View to Email item using Excel VBA Macro Code
Hi
I am currently working on an exce VBA macro code that would help me take snapshots of the Graphs and Pie charts generated in QC for a particular application and copy the same to an email item using excel VBA macro code.
I was able to write the code to create an email item. But I have no clue of how i can take snapshot of the graphs in Analysis View using excel VBA
Any help would be highly appreciated.
Thanks in Advance
Regards
Amituseramit,
You are in the consumer end products forum. You will also want to ask your question over at the Enterprise Business Community.
Click the plus sign (+) next to Discussion Boards to drop down all the options for servers, networking and any other professionally related problems.
http://h30499.www3.hp.com/ -
Hi Everyone!
We are using RoboHelp 7 (WebHelp) and MS Word 2007 on 3
machines. When selecting Printed Documentation and then selecting a
MS Word Template in the Printed Documentation Dialogue box, two of
the machines are able to print the documentation but an error
appears on the third machine. The error reads:
Waiting for VBA macros to be registered.
The applications were all installed in the correct order
according to the steps followed in another section on this site.
Anyone have any idea why this machine is receiving the error and
the other two are not/
Thanks.
BillMy guess is you need to change their macro security levels in
Word. -
I am mac user and want to create Object in VBA macro. when i write "set objwrd=createObject("Word.Application")"… it returns "runtime error "492" can't create object". now what it alternative to create object for word in excel macro???
Any help here...
http://support.microsoft.com/kb/288117
http://www.macworld.com/article/1154785/welcomebackvisualbasic.html -
Blocked Error Messages and VBA Macros
I have a client who is in the process of migrating their Essbase 6 VBA macros to 7. Will the error messages regarding the different APIs impede upon the macros running correctly and fully?<BR><BR>I don't think this would be the case but wanted to double-check...
Hello.
I have created an dynamic Excel VBA template which include as well this log-function.
Public Function Create_Log(lngRow As Long, lngCol As Long, strLog As String)
Dim lngCounter As Long
Dim lngLast_Col As Long
Dim strLog_Line As String
lngCounter = lngRow
lngLast_Col = lngCol
strLog_Line = strLog
If ThisWorkbook.Sheets("SAP_PROCESS").Cells(lngCounter, lngLast_Col).Value = "" Then
ThisWorkbook.Sheets("SAP_PROCESS").Cells(lngCounter, lngLast_Col).Value = strLog_Line
Else
ThisWorkbook.Sheets("SAP_PROCESS").Cells(lngCounter, lngLast_Col).Value = ThisWorkbook.Sheets("SAP_PROCESS").Cells(lngCounter, lngLast_Col).Text & Chr(10) & strLog_Line
End If
End Function
In my process code I use this function like this:
'Log
If Session.FindById("wnd[0]/sbar").Text <> "" Then Create_Log lngCounter, lngLast_Col, Session.FindById("wnd[0]/sbar").Text
We can check as well if we receive an error (sy-msgty = 'E')
If Session.FindById("wnd[0]/sbar").messagetype = "E" Then Create_Log lngCounter, lngLast_Col, Session.FindById("wnd[0]/sbar").Text
Hope this give you an idea how to handle this.
Best regards,
Holger -
Hi everyone,
I have a question regarding VBA macros in BEx analyzer. I have few rows in which all values are zeros. I would like to hide such rows. I am trying to write a VBA macro to implement it. Could someone help me with this.
Thanks
RHi Ram,
I agree with Roberto that there is probably a way to do this entirely within BEx. I would try a Condition.
But ... here is what you've asked for. Note that it is written assuming that there is more than one query in the workbook and that local Query ID for this query is SAPBEXq0001. You might need to adjust these.
This code would replace (or augment) what is currently in the Module named SAPBEX.
Regards, Pete
Sub SAPBEXonRefresh(queryID As String, resultArea As Range)
'code to hide any row where all Key Figures are zero
Dim n As Integer, qRow As Integer, RowOffset As Integer
Dim ColOffset As Integer, FirstRow As Integer, FirstCol As Integer
Dim numCells As Integer, LastRow As Integer, LastCol As Integer
Dim i As Integer, KFRange As Range, HideThisRow As Boolean
Dim c As Range
If queryID = "SAPBEXq0001" Then
'locate this query's location in DIM table
Set bexWS = Sheets("SAPBEXqueries")
numQueries = bexWS.Range("A2")
For n = 1 To numQueries
If bexWS.Range("F" & n + 3) = queryID Then
qRow = n + 3
Exit For
End If
Next n
'determine Key Figures offset
RowOffset = bexWS.Range("G" & qRow)
ColOffset = bexWS.Range("H" & qRow)
'define first & last rows & columns for Key Figures
FirstRow = resultArea.Rows(RowOffset).Row
FirstCol = resultArea.Cells(ColOffset).Column
numCells = resultArea.Cells.Count
LastRow = resultArea.Cells(numCells).Row
LastCol = resultArea.Cells(numCells).Column
'search for and hide any row where all Key Figures are zero
For i = FirstRow To LastRow
Set KFRange = Range(Cells(i, FirstCol), Cells(i, LastCol))
HideThisRow = True
For Each c In KFRange.Cells
If IsNumeric(c.Value) Then
If c.Value <> 0 Then HideThisRow = False
End If
Next c
Rows(i).Hidden = HideThisRow
Next i
End If
End Sub
Maybe you are looking for
-
How do I get my Gmail account to behave like a POP account???
Ok, I've been using gmail as a POP account on my Mac for a while. Just got my first iPhone (3Gs). I synced it and set it up and everything was hunky dory. Then I decided to try out IMAP so I made a new IMAP account for my Gmail and disabled the POP a
-
Need help with external hard drive!
Hi all, I have been having trouble with my external hard drive. My mac is reading the disk however all my files from the hard drive are missing? In disk utility is seems to show that there are files on the disk but I cannot see them? At the bottom is
-
Statistics: Reset of unfinished data collection
Hi, I am analyzing some performance issues and seeing the following error in my statistics details under WEB_INIT: ERROR Reset of unfinished data collection Does anyone knows what this means? I cannot find anything on the subject. Thanks David
-
OBIEE 11g: Trellis Charts
Hi everyone, I noticed the newest 11g patch has trellis charts which are basically chart is a pivot table format. It has 2 options. Basic lets you do the chart into pivot table layout, and advanced lets you use sparklines. Sparklines let you intermin
-
Can't open Itunes 9!!
Hi I'm using Windows XP. I have downloaded Itunes 9 and successfully installed and ran the program. The program worked in a very good condition at that day and then after 2 days of installation of Itunes, it didn't open anymore even when I double-cli