<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>projectified : Project Server</title><link>http://blogs.technet.com/projectified/archive/tags/Project+Server/default.aspx</link><description>Tags: Project Server</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>New Project Server Admin Blog</title><link>http://blogs.technet.com/projectified/archive/2009/11/23/3295858.aspx</link><pubDate>Mon, 23 Nov 2009 17:35:52 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3295858</guid><dc:creator>brianken</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/projectified/comments/3295858.aspx</comments><wfw:commentRss>http://blogs.technet.com/projectified/commentrss.aspx?PostID=3295858</wfw:commentRss><wfw:comment>http://blogs.technet.com/projectified/rsscomments.aspx?PostID=3295858</wfw:comment><description>&lt;p&gt;The product team for Project and Project Server have started a new blog to segment their content about the administration of Project Server environments. It can be &lt;a href="http://blogs.technet.com/projectadministration/" target="_blank"&gt;found here&lt;/a&gt; and will be a must read if you are involved in the deployment or administration of Project Server.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3295858" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/projectified/archive/tags/Project+Server/default.aspx">Project Server</category><category domain="http://blogs.technet.com/projectified/archive/tags/Deployment+Practices/default.aspx">Deployment Practices</category><category domain="http://blogs.technet.com/projectified/archive/tags/Administration/default.aspx">Administration</category></item><item><title>VBA Code For Parsing a MultiValue Text Field</title><link>http://blogs.technet.com/projectified/archive/2008/07/17/3090272.aspx</link><pubDate>Thu, 17 Jul 2008 21:43:03 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3090272</guid><dc:creator>brianken</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/projectified/comments/3090272.aspx</comments><wfw:commentRss>http://blogs.technet.com/projectified/commentrss.aspx?PostID=3090272</wfw:commentRss><wfw:comment>http://blogs.technet.com/projectified/rsscomments.aspx?PostID=3090272</wfw:comment><description>&lt;p&gt;If you are in Project Server 2007 you can have an Enterprise Text using a lookup table that can contain more than one value. If you then need to work with that field data in code (VBA or VSTO) you can use the GetField function to get the value of that field. The catch is that it is returned as a comma delimited string with all the values in it. So if your field had three values selected (Value1, Value19 and Value26) it gets returned as “Value1, Value19, Value26”.&lt;/p&gt;  &lt;p&gt;The code below shows how to parse this into an array where it will be easier to work with in code.&lt;/p&gt;  &lt;p&gt;As always, take this code and make it your own. This includes doing testing to make sure it does what it is supposed to do. It worked for me on a very limited set of test data. Don’t just throw this into production. ;-)&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Arial" size="2"&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Arial" size="2"&gt;Sub Parse_Comma_Delimited_Field_Into_Array() &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Arial" size="2"&gt;Dim Char As Integer        &lt;br /&gt;'Char is used to hold each character in the string to see if it is a comma &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Arial" size="2"&gt;Dim WholeField As String        &lt;br /&gt;'Wholefield is a string that holds the entire value of the field to be parsed &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Arial" size="2"&gt;Dim Values() As String        &lt;br /&gt;'Values is the string array that will contain the parsed values &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Arial" size="2"&gt;Dim NumberofValues As Integer        &lt;br /&gt;'NumberofValues holds the number of values in the 'wholefield'         &lt;br /&gt;'so that the 'Values' array can be redim'd &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Arial" size="2"&gt;Dim StartofLastValue As Integer        &lt;br /&gt;'holds the number of characters from the left of the string where the last         &lt;br /&gt;'word started so the value can be pulled from the wholefield string and         &lt;br /&gt;'placed into the array &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Arial" size="2"&gt;StartofLastValue = 1        &lt;br /&gt;NumberofValues = 0 &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Arial" size="2"&gt;'---Setting value of WholeField to be parsed        &lt;br /&gt;WholeField = ActiveProject.Tasks(1).Text1         &lt;br /&gt;'---         &lt;br /&gt;If Len(WholeField) &amp;gt; 0 Then         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; For Char = 1 To Len(WholeField)         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; If Mid$(String:=WholeField, Start:=Char, Length:=1) = &amp;quot;,&amp;quot; _         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Or Char = Len(WholeField) Then         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; NumberofValues = NumberofValues + 1         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ReDim Preserve Values(1, NumberofValues)         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; If Char &amp;lt; Len(WholeField) Then         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Values(1, NumberofValues) = Trim(Mid$(String:=WholeField, _         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Start:=StartofLastValue, Length:=Char - StartofLastValue))         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Else         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Values(1, NumberofValues) = Trim(Mid$(String:=WholeField, _         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Start:=StartofLastValue, Length:=Char - (StartofLastValue - 1)))         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; End If         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; StartofLastValue = Char + 1         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; End If         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Next Char         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; '-------------------------         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 'this section just loops through and shows that the array         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 'contains the correct data.         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 'Remove after you are finished testing         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Dim count As Integer         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; For count = 1 To NumberofValues         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Debug.Print Values(1, count)         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Next count         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; '------------------------- &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Arial" size="2"&gt;End If        &lt;br /&gt;End Sub&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3090272" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/projectified/archive/tags/Project+Server+2007/default.aspx">Project Server 2007</category><category domain="http://blogs.technet.com/projectified/archive/tags/VBA/default.aspx">VBA</category><category domain="http://blogs.technet.com/projectified/archive/tags/Project+Server/default.aspx">Project Server</category></item></channel></rss>