Results 1 to 9 of 9

Manage multivalued attributes

Threaded View

  1. #8
    Forum Guru TMS's Avatar
    Join Date
    07-15-2010
    Location
    The Great City of Manchester, NW England ;-)
    MS-Off Ver
    MSO 2007,2010,365
    Posts
    48,268

    Re: Manage multivalued attributes

    This version caters for the scenario where there is a Request ID but no associated Linked Services.

    ' Module: mOneToMany_V2
    
    'Option Private Module
    Option Explicit
    
    Sub sOneToMany_V2()
    
    Dim lLR As Long, lNR As Long
    Dim i As Long, j As Long
    Dim vx1, vy2, vRequest
    Const sInput As String = "Sheet1"
    Const sOutput As String = "Sheet2"
    
    Dim sw As New StopWatch
    sw.StartTimer
    Debug.Print "Start: ", Time
        
    Application.ScreenUpdating = False
    Sheets(sOutput).Cells.Delete
    
    With Sheets(sInput)
        lLR = .Range("A" & Rows.Count).End(xlUp).Row
        .Range("A1:B1").Copy _
            Sheets(sOutput).Range("A1")
    End With
    
    For i = 2 To lLR
        With Sheets(sInput)
            vRequest = .Range("A" & i)
            If .Range("B" & i) = "" Then GoTo lblSkip
            vx1 = Split(.Range("B" & i), ",")
            ReDim vy2(LBound(vx1) To UBound(vx1), 1 To 2)
            For j = LBound(vx1) To UBound(vx1)
                vy2(j, 1) = vRequest: vy2(j, 2) = vx1(j)
            Next 'j
        End With
        With Sheets(sOutput)
            lNR = .Range("B" & .Rows.Count).End(xlUp).Row + 1
            .Range("A" & lNR).Resize(UBound(vx1) + 1, 2).Value = vy2
        End With
        GoTo lblNext
    
    lblSkip:
        With Sheets(sOutput)
            lNR = .Range("B" & .Rows.Count).End(xlUp).Row + 1
            .Range("A" & lNR) = vRequest
            .Range("B" & lNR) = "$$no entries$$"
        End With
    
    lblNext:
    Next 'i
    
    With Sheets(sOutput).Range("A1:B1").EntireColumn
        .Replace What:="$$no entries$$", _
                 Replacement:="", _
                 LookAt:=xlWhole
        .AutoFit
    End With
    
    Application.ScreenUpdating = True
    
    Debug.Print "End: ", Time
    Debug.Print "sOneToMany took: " & sw.EndTimer & " milliseconds."
    
    End Sub

    Regards, TMS
    Attached Files Attached Files

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Filter text from a multivalued cell
    By sobinp in forum Excel Programming / VBA / Macros
    Replies: 3
    Last Post: 01-10-2014, 03:36 AM
  2. Manage documents
    By Goodstart14 in forum Excel Programming / VBA / Macros
    Replies: 1
    Last Post: 01-09-2014, 05:24 PM
  3. Protecting and Unprotecting VBA for multivalued lists
    By kraszac in forum Excel Programming / VBA / Macros
    Replies: 3
    Last Post: 05-22-2013, 04:45 PM
  4. Excel 2007 : how to manage your lists
    By zinctek in forum Excel General
    Replies: 1
    Last Post: 10-19-2010, 08:03 PM
  5. [SOLVED] How would you manage these dates?
    By JMF in forum Excel General
    Replies: 2
    Last Post: 03-28-2006, 10:30 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1