My offering...
Code:
Sub testing()
Dim ws As Worksheet, fndRng As Range
For Each ws In ThisWorkbook.Sheets
With ws.Range("Y:Y")
Set fndRng = .Find(What:="G", LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True)
If Not fndRng Is Nothing Then
fndRng.Offset(-1).Resize(, 2).Value = fndRng.Resize(, 2).Value
fndRng.EntireRow.Delete
End If
End With
Next ws
End Sub