Results 1 to 9 of 9

Manage multivalued attributes

Threaded View

  1. #5
    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,286

    Re: Manage multivalued attributes

    I know you have a solution, but, just for fun, another option:

    ' Module: mOneToMany
    
    'Option Private Module
    Option Explicit
    
    Sub sOneToMany()
    
    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
    lblSkip:
    Next 'i
    
    Sheets(sOutput).Range("A1:B1").EntireColumn.AutoFit
    Application.ScreenUpdating = True
    
    Debug.Print "End: ", Time
    Debug.Print "sOneToMany took: " & sw.EndTimer & " milliseconds."
    
    End Sub

    Some differences to note:
    1. John's code operates on the Active Sheet and overwrites it
    2. My code writes the output to a new sheet which must pre-exist (in this case, Sheet2)
    3. I've added a timer routine so you can compare times. Bit of a movable feast depending on the foibles of the machine.
    Sometimes one is faster, then the other ... but not a lot in it
    4. The timer will not work in 64 bit installations of Excel


    Regards, TMS
    Attached Files Attached Files
    Trevor Shuttleworth - Retired Excel/VBA Consultant

    I dream of a better world where chickens can cross the road without having their motives questioned

    'Being unapologetic means never having to say you're sorry' John Cooper Clarke


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. 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