I don't know of a way to make it more efficient, but you can get rid of all the redundant typing by using a variable for the worksheet name, then calling the sub once for each different worksheet.

Example:

Sub DidCellsChange(WorksheetName As String)
   
    Dim cell        As Range
    
    For Each cell In Worksheets(WorksheetName).Range("E4:E50")
        If cell.Value = "Sold" Then
            With Cells(cell.Row, "A").Resize(, 17)
                Worksheets(WorksheetName).Cells(Rows.Count, "A").End(xlUp).Offset(1).Resize(, 6).Value = .Value
                .ClearContents
            End With
        End If
    Next cell
    
End Sub

Sub snooze24()

DidCellsChange "ShirinJewelers"
DidCellsChange "Treasures"
DidCellsChange "ExoticDiamonds"
DidCellsChange "Highline"
DidCellsChange "TreasuresJefferson"
DidCellsChange "Ajs"
DidCellsChange "GoldenFever"
DidCellsChange "ForeverDiamonds"
DidCellsChange "DiamondTreasures"

End Sub
If you need anything else please ask.