|re: "it's work but not properly because may be i wasn't that clear in some data"|
"Delete row" is not the same as "delete range"
"Format the text color" is not the same as "i set range ( B15:E15 ) to color 65536"
As I'm sure you can see, you need to be very specific when detailing your requirements. We can't see your spreadsheet, nor can we read minds.
For this solution, I am assuming that the word "sales" appears somewhere within your B:E table, and only appears once - because you said: "Then i search for the row that contains text ( sales )"
Dim mySales As Variant
'Loop through B46 to B7
For blankRow = 46 To 7 Step -1
'Delete blank rows
If Cells(blankRow, 2) = "" Then
Range("B" & blankRow & ":E" & blankRow).Delete shift:=xlShiftUp
'Format remaining rows
With Range("B7:E" & blankRow)
.Font.Size = 8
.Interior.ColorIndex = 2
'Find text "Sales"
Set mySales = .Find("Sales", lookat:=xlPart)
'Format range where Sales was found
Range("B" & mySales.Row & ":E" & mySales.Row).Font.ColorIndex = 3