Coding for these posts
https://excelfox.com/forum/showthrea...ll=1#post16532
Code:Sub Stantially() Rem 0 data Dim Ws1 As Worksheet: Set Ws1 = ThisWorkbook.Worksheets("Sheet1") Dim RngPlus1 As Range Set RngPlus1 = Ws1.Cells.Item(1).CurrentRegion.Resize(Ws1.Cells.Item(1).CurrentRegion.Rows.Count + 1, Ws1.Cells.Item(1).CurrentRegion.Columns.Count) Dim vArr() As Variant: Let vArr() = RngPlus1.Value2 Rem 1 determine the biggest group ( that maximum Amounts or Notes count ) Dim Cnt As Long, Cnt2 As Long, Mx As Long: Let Mx = 1: Let Cnt = 1 Do ' ############################# Main Outer Loop keeps us going through all data rows Do ' ----------------- Inner Loop that takes us through a group Let Cnt = Cnt + 1 ' Cnt is the main data row number Let Cnt2 = Cnt2 + 1 Loop While vArr(Cnt + 1, 1) = vArr(Cnt, 1) ' ---- Inner Loop that takes us through a group If Cnt2 > Mx Then Let Mx = Cnt2 Let Cnt2 = 0 Loop While Cnt < UBound(vArr(), 1) - 1 ' #### Main Outer Loop keeps us going through all data rows Rem 2 ' ############################# Main Outer Loop keeps us going through all data rows Let Cnt = 1 Do Dim HrCnt As Long: Let HrCnt = 1 Dim strClipR As String, strClipL As String: Let strClipL = strClipL & vArr(Cnt + 1, 1) Do '2a The first inner loop Let Cnt = Cnt + 1 Let HrCnt = HrCnt + 1 Let strClipL = strClipL & vbTab & vArr(Cnt, 2) Let strClipR = strClipR & vbTab & vArr(Cnt, 3) Loop While vArr(Cnt + 1, 1) = vArr(Cnt, 1) ' The first inner loop Do While HrCnt < Mx + 1 '2b the second inner loop Let strClipL = strClipL & vbTab Let strClipR = strClipR & vbTab Let HrCnt = HrCnt + 1 Loop ' the second inner loop '2c Finishing off the strings, and final string for an output line, after the inner loops Let strClipR = strClipR & vbTab & vArr(Cnt, 4) ' add the group name Dim strClip As String: Let strClip = strClip & strClipL & strClipR & vbCr & vbLf ' join the strings and add a line seperator to the output row string 'Call WtchaGot_Unic_NotMuchIfYaChoppedItOff(strClip) Let strClipL = "": strClipR = "" Loop While Cnt < UBound(vArr(), 1) - 1 ' #### Main Outer Loop keeps us going through all data rows 'Call WtchaGot_Unic_NotMuchIfYaChoppedItOff(strClip) '2d paste strClip out via the windows Clipboard Dim objDataObject As Object: Set objDataObject = GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") ' http://web.archive.org/web/20200124185244/http://excelmatters.com/2013/10/04/late-bound-msforms-dataobject/ objDataObject.SetText Text:=strClip objDataObject.PutInClipboard Ws1.Paste Destination:=Ws1.Range("G2") Rem 3 headers Dim strHd As String Let strHd = "Group" & vbTab & Join(Evaluate("=""Amount"" & COLUMN(A:" & Split(Cells(1, Mx).Address, "$")(1) & ")"), vbTab) & vbTab & Join(Evaluate("=""Note"" & COLUMN(A:" & Split(Cells(1, Mx).Address, "$")(1) & ")"), vbTab) & vbTab & "Name" objDataObject.SetText Text:=strHd objDataObject.PutInClipboard Ws1.Paste Destination:=Ws1.Range("G1") End Sub




Reply With Quote
Bookmarks