I also tried to declare my ranges differenttly, this time i get "The extract range had a missing or illegal field name" !
Sub CreateDuplicates()
With ActiveWorkbook
.Names.Add Name:="Data", RefersToR1C1:="=OFFSET(ConsoSheet!R1C1,0,0,COUNTA(ConsoSheet!C1),7)"
.Names.Add Name:="Crit", RefersToR1C1:="=Duplicated!R1C18:R2C18"
.Names.Add Name:="DataOut", RefersToR1C1:="=Duplicated!R1C8:R1C15"
.Names.Add Name:="LengthList", RefersToR1C1:="=ConsoSheet!R1C9"
.Names.Add Name:="Data_Temp", RefersToR1C1:="=OFFSET(Duplicated!R1C8;0;0;COUNTA(Duplicated!C8);7)"
End With
Dim lLastRow As Long, lRept As Long, arCust() As String, lCustNo As Long, x As Long
Application.ScreenUpdating = False
arCust() = Split(Range("J2"), " ")
Sheet2.Range("A1").CurrentRegion.Offset(1, 0).ClearContents
lLastRow = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
Range("Data").AdvancedFilter Action:=xlFilterCopy, copytorange:=Range("LengthList"), unique:=True
For lRept = 1 To Range("LengthList").CurrentRegion.Rows.Count - 1
Range("DataOut").CurrentRegion.Offset(1, 0).ClearContents
Range("crit").Cells(2, 1) = Range("LengthList").Cells(lRept + 1, 1)
Range("Data").AdvancedFilter Action:=xlFilterCopy, copytorange:=Range("DataOut"), criteriarange:=Range("crit")
arCust() = Split(Sheet2.Range("J2"), " ")
lCustNo = UBound(arCust()) + 1
lLastRow = Sheet2.Range("I" & Rows.Count).End(xlUp).Row
For x = 0 To lCustNo - 1
Sheet2.Range("J2:J" & lLastRow) = arCust(x)
Range("Data_Temp").Offset(1, 0).Copy Destination:=Sheet2.Range("A" & Rows.Count).End(xlUp).Cells(2, 1)
Next x
Next lRept
Application.ScreenUpdating = True
End Sub
I keep trying different solutions as well as I keep an eye on the forum in case somebody has an idea!
Have a good day!
Bookmarks