Untitled

 avatar
unknown
plain_text
18 days ago
2.1 kB
1
Indexable
Sub PullProductDescriptionsAndDynamicColumn()

    Dim wsCurrent As Worksheet
    Dim wsPrices As Worksheet
    Dim lastRowCurrent As Long
    Dim currentCode As String
    Dim dynamicHeader As String
    Dim dynamicCol As Long
    Dim i As Long
    Dim matchRow As Range
    Dim headerRow As Range
    Dim headerCell As Range
    
    ' Set worksheets
    Set wsCurrent = ThisWorkbook.Sheets("Paste")
    Set wsPrices = ThisWorkbook.Sheets("Prices")
    
    ' Find the last row in the Paste sheet
    lastRowCurrent = wsCurrent.Cells(wsCurrent.Rows.Count, "A").End(xlUp).Row
    
    ' Get the value in F1 of the Paste sheet (dynamic header)
    dynamicHeader = wsCurrent.Range("F1").Value
    
    ' Find the header row in Prices sheet (assume it's row 2)
    Set headerRow = wsPrices.Rows(2)
    
    ' Locate the column number for the header matching the value in F1
    Set headerCell = headerRow.Find(What:=dynamicHeader, LookIn:=xlValues, LookAt:=xlWhole)
    If Not headerCell Is Nothing Then
        dynamicCol = headerCell.Column
    Else
        MsgBox "Header '" & dynamicHeader & "' not found in Prices sheet!", vbExclamation
        Exit Sub
    End If
    
    ' Loop through each code in the Paste sheet
    For i = 2 To lastRowCurrent
        currentCode = wsCurrent.Cells(i, "A").Value
        
        ' Check if the code exists in the Prices sheet
        Set matchRow = wsPrices.Columns("A").Find(What:=currentCode, LookIn:=xlValues, LookAt:=xlWhole)
        
        ' If a match is found, pull the description from column B and the value from the dynamic column
        If Not matchRow Is Nothing Then
            wsCurrent.Cells(i, "B").Value = wsPrices.Cells(matchRow.Row, "B").Value ' Pull description
            wsCurrent.Cells(i, "C").Value = wsPrices.Cells(matchRow.Row, dynamicCol).Value ' Pull dynamic column value into C
        Else
            wsCurrent.Cells(i, "B").Value = "Not Found"
            wsCurrent.Cells(i, "C").Value = "Not Found"
        End If
    Next i

    MsgBox "Descriptions and dynamic column values updated!", vbInformation

End Sub
Leave a Comment