top of page

It's widely known that Excel's Data Validation tool can be used to create a drop down list for all cells in a selected range. You'll simply be able to click on an down arrow next to a cell and select the entry. This feature can speed up a lengthy manual review of documentation tracked on a spreadsheet. Tonight's tip will show how you can use VBA code to change this tool to allow for multiple entries from the list to be saved in a cell.


To get started follow these steps:


1. Select the data range you want the 'pick list' to be available for.

2. Go to Data . . . Data Validation


3. In the dialog box on the Settings tab, choose 'List' from the Allow menu. Then click on the arrow next to the Source box to select the data range which will contain the entries you want to appear in the drop down list. The entries can be listed on a different worksheet.



If you have to add more items to the list as you go along, check off the box labeled, 'Apply these changes to all other cells with the same settings', and then expand the source range.


4. This will give you a drop down list that will let you select any one of the entries for the cell. If you select a second entry, the first entry will be overwritten.




You can use VBA code posted here, and modified below to make it possible to select multiple entries. The modified version lets you clear the cell after entries have been made (thanks to Susan Lynn for her suggestion); leaves the first entry you select at the beginning of the cell; and puts each new entry on a new line.


On this line of the VBA code you can set the delimiter you want to use between the entries.


xStrNew = " " & Target.Value & Chr(10)


In my version of the code I've entered the Chr(10) reference to put each new entry on a separate line. If 'Chr(10)' is changed to "; " each new entry will be separated with a semi-colon.


In order to clear a cell, select it and choose 'Clear Contents' from the right click menu.






Private Sub Worksheet_Change(ByVal Target As Range)

'UpdatebyExtendoffice20180510

Dim I As Integer

Dim xRgVal As Range

Dim xStrNew As String

Dim xStrOld As String

Dim xFlag As Boolean

Dim xArr

On Error Resume Next

Set xRgVal = Cells.SpecialCells(xlCellTypeAllValidation)

If (Target.Count > 1) Or (xRgVal Is Nothing) Then Exit Sub

If Intersect(Target, xRgVal) Is Nothing Then Exit Sub

Application.EnableEvents = False

xFlag = True

xStrNew = " " & Target.Value & Chr(10)

Application.Undo

xStrOld = Target.Value

If InStr(1, xStrOld, xStrNew) = 0 Then

xStrNew = xStrOld & xStrNew

Else

xStrNew = ""

End If

Target.Value = xStrNew

Application.EnableEvents = True

End Sub








 
 

In order to run a negative lookahead regular expression search, you can enclose the string you do NOT want the searched for string to appear in front of, in parentheses with a question mark and exclamation point before the given string. So in this example this search: Albany(?!\s+NY)


. . . will find any instance in which Albany is not followed by ' NY'.



This search can be modified to find any string - .* - which does not precede the state abbreviation NY - (?:(?!NY).).$


.*(?:(?!NY).).$





 
 

The Tip of the Night for September 4, 2021 discussed how to use the SUMIF formula in Excel to set up a spreadsheet to track the time each party uses in a trial. Tonight I have posted this spreadsheet:

. . . which you can use to track the time used by each party on each day with the SUMIFS formula, and the time that each witness examination takes using the SUMIF formula.


Begin by entering the date, witness examination description, party name, attorney name, start time, and end time in columns A to F. In column B, 'Witness' enter not only unique descriptions for each direct and cross examination, but also enter notes for lunch and time spent by the parties discussing procedural matters with the court. Be sure to enter a description for each examination or other event consistently with the same exact characters. In column C enter the name of the party conducting each examination, opening or closing, and also consistently enter notes for court and break time .



A simple subtraction formula in column G will calculate the amount of time used for each entry. Be sure to format this column for as h:mm:ss in the Custom setting.


Columns L to Q will track the cumulative time used by each party and the court (and used for breaks) by utilizing the SUMIFS formula. This formula works by searching for the values to be added up in first referenced column; then searching for a value given the second referenced column [this is case it looks for the date in L2 given in column A], and then only adding the values given at the end of formula listed in the third referenced column [so it looks for the party name given in M1 in column C].



The SUMIFS formula looks for two criteria in different columns and then only adds up the value given in a third column when the given values are matched in the other two columns. You want to use an absolute reference with dollar signs so the same column for the date is always referenced by pulling the formula to the right, and the same row is used for the party name, and then double dollar signs so each column which is searched for a value so it stays the same as the formula is pulled to the right.



The last row in this array uses a simple SUM formula to add up the time used by each party.


Columns U to Z are simply used to track the amount of time used that the parties agreed to. Manual entries should be made in each cell. It certainly seems as though each side always disagrees on exactly how much time they have taken up.



In column AC enter just once each description for an examination or other event used in column C. The SUMIF formula in column AD will then searcy for these values in column B and in the rows where the value is found add up the time in column G.




 
 

Sean O'Shea has more than 20 years of experience in the litigation support field with major law firms in New York and San Francisco.   He is an ACEDS Certified eDiscovery Specialist and a Relativity Certified Administrator.

The views expressed in this blog are those of the owner and do not reflect the views or opinions of the owner’s employer.

If you have a question or comment about this blog, please make a submission using the form to the right. 

Your details were sent successfully!

© 2015 by Sean O'Shea . Proudly created with Wix.com

bottom of page