I have a sheet that is being used to create what is eventually a text doc for HTML, but that starts in Excel. It could have anywhere from 1 - hundreds of items on it, then each item must have three fields (SKU, Description, Category), then two optional (Bullet, Image).
It will go like this. Sheet1 A2 copies to Sheet2 A2 Sheet2 B2 = "Description" Sheet1 B2 (The description data) copies to Sheet2 C2 Sheet1 A2 recopies to a new line on Sheet2 A3 Sheet2 B3 = "Category" Sheet1 C2 (Category data) copies to Sheet2 C3
Those are the mandatory fields. From there.
If Sheet 1 D2 (Bullet data) is populated then Sheet1 A2 copies to Sheet2 A4 Sheet2 B4 = "Bullet" Sheet1 D2 copies to Sheet2 C4
If Sheet 1 E2 (Image data) is populated, then Sheet1 A2 Copies to Sheet2 A5 Sheet2 B5 = "IMAGE" Sheet1 E2 copies to Sheet2 C5
That takes care of first line of Sheet 1. From there, I want it to loop through each row in sheet 1 column A until it gets to an empty cell in A.
Here is what I wrote. The first part works. But it's the loop (Commented block portion) that stumps me. I'm horrible at loops. Currently, it goes into a never-ending loop until I stop it.
Any guidance will be hugely appreciated. Thanks.
Sub MigrateToTemplate()
Dim NextSKU As Range
Set NextSKU = Worksheets("EAPData").Range("A2").Offset(1, 0)
Sheets("EAPData").Select
Range("A2").Select
ActiveCell.Copy
Sheets("TemplateTest").Select
Range("A2").Select
ActiveCell.PasteSpecial xlPasteValues
ActiveCell.Offset(0, 1).Value = "DESCRIPTION"
ActiveCell.Offset(0, 2).Value = Sheets("EAPData").Range("C2").Value
ActiveCell.Offset(1, 0).Value = Sheets("EAPData").Range("A2").Value
ActiveCell.Offset(1, 1).Value = "CATEGORY"
ActiveCell.Offset(1, 2).Value = Sheets("EAPData").Range("E2").Value
If Sheets("EAPData").Range("A2").Offset(0, 3) <> "" Then
Sheets("EAPData").Range("A2").Offset(0, 3).Copy
Range("A1").End(xlDown).Offset(1, 0).Select
ActiveCell.Value = Range("A2").Value
ActiveCell.Offset(0, 1).Value = "BULLET"
ActiveCell.Offset(0, 2).PasteSpecial xlPasteValues
ActiveCell = WorksheetFunction.Substitute(Selection, Chr(10), " ")
Else
Range("A1").End(xlDown).Select
End If
If Sheets("EAPData").Range("A2").Offset(0, 5) <> "" Then
Sheets("EAPData").Range("A2").Offset(0, 5).Copy
Range("A1").End(xlDown).Offset(1, 0).Select
ActiveCell.Value = Range("A2").Value
ActiveCell.Offset(0, 1).Value = "IMAGE"
ActiveCell.Offset(0, 2).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Else
Sheets("EAPData").Select
End If
Sheets("EAPData").Select
NextSKU.Select
'Do
'ActiveCell.Copy
'Sheets("TemplateTest").Select
'Range("A1").End(xlDown).Offset(1, 0).Select
'ActiveCell.PasteSpecial xlPasteValues
'ActiveCell.Offset(0, 1).Value = "DESCRIPTION"
'ActiveCell.Offset(0, 2).Value = NextSKU.Offset(0, 2).Value
'ActiveCell.Offset(1, 0).Value = NextSKU.Value
'ActiveCell.Offset(1, 1).Value = "CATEGORY"
'ActiveCell.Offset(1, 2).Value = NextSKU.Offset(0, 4).Value
'If NextSKU.Offset(0, 3) <> "" Then
' NextSKU.Offset(0, 3).Copy
' Range("A1").End(xlDown).Offset(1, 0).Select
' ActiveCell.Value = NextSKU.Value
' ActiveCell.Offset(0, 1).Value = "BULLET"
' ActiveCell.Offset(0, 2).PasteSpecial xlPasteValues
' ActiveCell = WorksheetFunction.Substitute(Selection, Chr(10), " ")
' Else
' Range("A1").End(xlDown).Select
' End If
'If NextSKU.Offset(0, 5) <> "" Then
' NextSKU.Offset(0, 5).Copy
' Range("A1").End(xlDown).Offset(1, 0).Select
' ActiveCell.Value = NextSKU.Value
' ActiveCell.Offset(0, 1).Value = "IMAGE"
' ActiveCell.Offset(0, 2).PasteSpecial xlPasteValues
' Application.CutCopyMode = False
' Else
' Sheets("EAPData").Select
' End If
'Sheets("EAPData").Select
'NextSKU.Offset(1, 0).Select
'Loop While NextSKU.Offset(1, 0) <> ""
End Sub