VBA Macro Vlook Up & highlight the matching amounts

Hi Experts,
I have spreadsheet in which 3 columns are in use A,B and C
Requirements
1. If there is an amount in column A and the count for the amount is more than 1 than all the similar amounts should be colored Pink.
2. VLookUp : Perform a Vlookup  for finding the matching amounts of column A in Column B for whatever amounts a match is found those records should be copied in column c in the row where we have the column A amount and whatever amount are not found
should be marked with #N/A
Please find a sample below .
Data-A
DATA-B
VLOOKUP
15001
15002
15001
15002
15001
#N/A
15003
15003
15003
15004
15004
15004
15005
15005
15005
15006
15006
15006
15007
15007
15007
15008
15008
15008
15009
15009
15009
15010
15010
15010
15011
15011
15011
15012
15012
15012
15013
15008
15013
15014
15009
15014
15015
15010
15015
15016
15011
15016
15017
15012
15017
15018
15013
15018
15018
15014
15018
15019
15015
#N/A
15020
15016
#N/A
15021
15017
#N/A
15022
15018
#N/A
Thanks
Priya

1. Select the data in column A.
On the Home tab of the ribbon, click Conditional Formatting > Highlight Cells Rules > Duplicate Values...
Click OK.
As a macro:
Sub Macro1()
Dim rng As Range
Set rng = Range(Range("A1"), Range("A" & Rows.Count).End(xlUp))
With rng.FormatConditions
.Delete
With .AddUniqueValues
.DupeUnique = xlDuplicate
.Interior.Color = 13551615
.Font.Color = -16383844
End With
End With
End Sub
2. I don't understand why C2 should contain #N/A - the 15002 in A2 matches the 15002 in B1.
Apart from that: enter the following formula in C1:C23 and confirm it with Ctrl+Shift+Enter to make it an array formula:
=VLOOKUP(A1:A23,B1:B23,1,FALSE)
As a macro:
Sub Macro2()
Dim rng As Range
Set rng = Range(Range("A1"), Range("A" & Rows.Count).End(xlUp))
With rng.Offset(0, 2)
.FormulaArray = "=VLOOKUP(" & rng.Address & "," & _
rng.Offset(0, 1).Address & ",1,FALSE)"
.Value = .Value
End With
End Sub
Regards, Hans Vogelaar (http://www.eileenslounge.com)

Similar Messages

  • 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,
    Chuck

    John,
    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

  • Starting Edata From a VBA Macro

    I am using the
    Application.Run "MNU_eDATA_SELECTPACKAGE", "GL_Data_Extract", "System Files/GL_Data_Extract.dtsx", "Company", "Data Management"
    It works fine as long as you start edata first.  Is there a way that I can start edata from a VBA macro.  That way the user does not have to sign into BPC and hit edata before running the macro.
    Please let me know if there is a VBA command that will do this?
    Thanks
    Phil

    As I understand the issue you are trying to use MNU_eDATA_SELECTPACKAGE in a VBA macro.
    As stated here and elsewhere -- that is not possible but I have a workaround that seems to work OK.
    In our case we are trying to use a Button to both send the data and then kickoff a DataManager macro.
    So the macro we assigned to the button is as follows:
    Sub SendandStartPackage()
        Application.Run ("MNU_eSUBMIT_REFSCHEDULE_BOOK_CLEARANDREFRESH")
        Range("J61").Select
    End Sub
    Then in cell J61 we put the EVMNU as follows:
    =EVMNU("MNU_eDATA_SELECTPACKAGE","run DM","Import MasterData,/CPMB/IMPORT_MASTER,Company,Data Management")
    Now when we click the button, the first macro runs and then the cell J61 is selected which starts the second macro.
    I have not tested this extensively but it worked when I tried it.
    Note: This is NW version syntax.

  • SmartView 11.1.2.2 VBA Macro Performance

    Hi Good Day,
    We have created a Macro in Excel that use VBA functions to connect, retrieve data, send data and run business rules.
    The macro works fine (it takes around 5 minutes to execute), however we have detected that the retrieves using the command "hypretrieve" takes around 1 minute to be executed, but if I manually connect and execute the retrieve in the same sheet definition it is done in 20 seconds. So my guess is that the macro it’s making the retrieve to increment the time in 300%
    Does somebody have some tips to reduce this time? Or tune the macro?
    Kind Regards
    P.d. We are not expert in excel macros, either vba.
    Edited by: Pavel Moreno on Mar 12, 2013 5:34 AM

    11.1.2.2.300 the latest release of Smart View does support Office 64 bit. You can download the latest version here http://www.oracle.com/technetwork/middleware/smart-view-for-office/downloads/index.html or on My Oracle Support.
    Remember SV is backwards compatible so the client version does not need to match the server version.

  • Excel query/macro , delete records where the aggregate value is not over 100

    I have a spreadsheet with about 5000 records. I need to delete out the records where the Amount column is less than $10.00 unless the aggregate of the amount column is greater than or equal to $100. I have an ID column that matches to the name on the record.
    So is it possible to create something that for each ID number in the ID column if the Amount column is less than $10 delete it unless the same ID appears again and is greater than $100? TIA

    HI mkozz28,
    >> I need to delete out the records where the Amount column is less than $10.00 unless the aggregate of the amount column is greater than or equal to $100.
    In my option, you could sort the data by column ID, then loop through the column Amount, if the value of the Amount is less than 10, then find the cell according the same ID, if the Amout is less than 100, delete the enterRow.
    For more information about Find method, you could turn to the link below
    # Range.Find Method (Excel)
    https://msdn.microsoft.com/en-us/library/office/ff839746.aspx
    For the row delete, the link below might be useful to you
    # Delete Method [Excel 2003 VBA Language Reference]
    https://msdn.microsoft.com/en-us/library/office/aa223863(v=office.11).aspx
    A simple demo as below, you need to modify it to your own requirement.
    Sub test1()
    For i = 2 To 8 'row number
    Debug.Print ActiveSheet.Cells(i, 2).Value
    'ActiveSheet.Cells(i, 2).Select
    If (ActiveSheet.Cells(i, 2).Value <= 10) Then
    Set cell = ActiveSheet.Range("A1:A8").Find(ActiveSheet.Cells(i, 1).Value, After:=ActiveSheet.Cells(i, 1), LookIn:=xlValues)
    If cell Is Nothing Then
    ActiveSheet.Cells(i, 2).EntireRow.Delete
    Else
    Debug.Print ActiveSheet.Cells(cell.Row, 2).Value
    If ActiveSheet.Cells(cell.Row, 2).Value < 100 Then
    ActiveSheet.Cells(i, 2).EntireRow.Delete
    End If
    End If
    End If
    Next i
    End Sub
    Best Regards,
    Edward
    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.

  • Should all memory slots on my imac have the same amount of memory

    should all memory slots on my imac have the same amount of memory

    For your model, that would mean to match them horizontally; in newer iMacs with vertical RAM installation, they should be matched: slot 1 + 3, and slots 2 + 4 (which, oddly enough, will result in the same picture if your check the RAM in system info).

  • Please give me idea how I highlight the gird row which have

    Sir
    I have gird with 5 column
    Vno
    Code
    Dept
    Date
    Amount
    Sir my need is which record have above 5000 amount that color read and other color blue
    It means above 5000 highlight in grid
    Please give me idea how I highlight the gird row which have above 5000 maount
    Thank
    aamir

    PROCEDURE pr_Set_VA (p_VA IN VARCHAR2) IS
    v_Feld VARCHAR2 (30);
    v_Item VARCHAR2 (61);
    v_Block VARCHAR2 (30);
    BEGIN
    v_Block := :SYSTEM.CURSOR_BLOCK;
    v_Feld := Get_Block_Property (v_Block, FIRST_ITEM);
    WHILE (v_Feld IS NOT NULL) LOOP
    v_Item := v_Block || '.' || v_Feld;
    Set_Item_Instance_Property (v_Item, CURRENT_RECORD, VISUAL_ATTRIBUTE, p_VA);
    v_Feld := Get_Item_Property (v_Item, NEXTITEM);
    END LOOP;
    END;

  • 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
    Camillo

    Hi 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

  • What are the best sequence presets and settings to use in FCE for the best resolution with the least amount on strain on computer?

    Hello!
    Can someone please help me figure out the best settings to use in order to obtain the best resolution in FCE4 for a television show that is going to be sent out on full size Sony DVcam tapes, with 4:3 aspect ration and audio output at 48kHz? I am currently working with mixed media sources in Final Cut Express, and I am wondering what the best settings (presets and preferences) are, in order to provide the HIGHEST resolution possible, while putting the least amount of strain on my computer system?
    I am importing mini DV-standard definition footage and still photos (from Canon Rebel camera, HD CMOS Canon camcorder that records in 1440x1080 at 48 kHz, and cell phone photos). For voiceovers I use the tools in FCE.
    I use Voltaic (which I use thanks to recommendations from Apple discussion boards, love it!)  to convert the footage from the HD CMOS-Canon HD VIXIA (HG 20) camera, and then I am using print to video to output onto Sony DVcam tapes (full size). This is for delivery for a television network that broadcasts in Standard Definition, so I need to produce the highest resolution and best quality possible that also puts the least amount of stress on my computer system.
    If anyone has any recommendations, help, or sources that can help me answer this question I would be greatly appreciative.
    Thank you!
    Susan Kayne

    This is happening because your video clip properties do not match your sequence settings.  This is always a problem when you try to insert video from multiple camcorders/cameras (that use different video codecs, frame sizes & rates) in a single sequence. 
    It will help a lot if you provide more specifics - what FCE easy setup did you use to create your sequence?  For your DV footage, are you using standard 4:3 DV or anamorphic 16:9 DV clips?
    If you plan to export to standard def (DV/DVCAM) and are mixing DV from a miniDV camcorder, stills, cell phone images and AVCHD then I would suggest that you use the DV NTSC easy setup for your sequence.  Use MPEG Streamclip or similar utility to convert your non-DV video (your AVCHD video) to QuickTime/Apple DV-DVCPRO NTSC.   Then all your video will match your sequence settings.  Yes, you will have to crop the AVCHD footage to 4:3 and you can do that in MPEG Streamclip.

  • How to Highlight the CURRENT RECORD in a Table with Report Form

    Hi,
    I have created a Table with Report Form....let suppose the table is - EMP
    Report page - 1
    Form page - 2
    Now, when I do Create / Update on Page 2,....the control is back on Page1.
    Suppose in the Report Page (Page1)..we have 10 records....NOW how should I highlight the CURRENT RECORD in Page 1 with some color to identify the record which I have updated/created just now...
    Thanks,
    Deepak

    Hi Deepak,
    You could do that with a custom report template. I've done that here: [http://apex.oracle.com/pls/otn/f?p=267:175]
    Go to Shared Components, Templates and create a new Report template as a copy of your existing one. Then edit your template. In the above example, the Column Template 1 setting was:
    &lt;td #ALIGNMENT# headers="#COLUMN_HEADER#" class="t18data"&gt;#COLUMN_VALUE#&lt;/td&gt;I copied this into the Column Template 2 setting and updated the Column Template 1 setting to:
    &lt;td #ALIGNMENT# headers="#COLUMN_HEADER#" class="t18data" style="background-color:red; color:yellow;"&gt;#COLUMN_VALUE#&lt;/td&gt;I then set the Column Template 1 Condition to: Use Based on PL/SQL Expression
    and the Column Template 1 Expression to: '#EMPNO#' = '&P178_EMPNO.'
    (In my example, P178_EMPNO is the single item on the linked to page.
    Save those changes and go to your report and change its template to the new one. As long as a selection has been made and P178_EMPNO has a value, the condition will make sure that the report uses the first template for the row with the matching EMPNO value. All other rows get the template from Column Template 2.
    Andy

  • 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 Sub

    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 Sub

  • 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

  • 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 Uccello

    Hi 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
    Amit

    useramit,
    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/

Maybe you are looking for