I ran one of the macros in a sample sheet and it took half second to be performed. My 5 macros are preceded by Sub RunAllMacros() so they run all at the click of a button.
Sub RunAllMacros()
mergeAX
mergeBB
mergeBE
mergeBI
mergeBN
End Sub
Sub mergeAX()
Application.ScreenUpdating = False
lr = Cells(Rows.Count, "AX").End(xlUp).Row
s = 0
For r = 2 To lr
With Cells(r, 50)
If .Offset(0, 1) = "" Then
.Offset(s, 2) = .Value
Else
.Offset(s, 2) = .Offset(0, 1).Value
.Offset(s + 1, 2) = .Value
s = s + 1
End If
End With
Next r
End Sub
Sub mergeBB()
Application.ScreenUpdating = False
lr = Cells(Rows.Count, "BB").End(xlUp).Row
s = 0
For r = 2 To lr
With Cells(r, 54)
If .Offset(0, 1) = "" Then
.Offset(s, 2) = .Value
Else
.Offset(s, 2) = .Offset(0, 1).Value
.Offset(s + 1, 2) = .Value
s = s + 1
End If
End With
Next r
End Sub
Sub mergeBE()
Application.ScreenUpdating = False
lr = Cells(Rows.Count, "BE").End(xlUp).Row
s = 0
For r = 2 To lr
With Cells(r, 57)
If .Offset(0, 1) = "" Then
.Offset(s, 2) = .Value
Else
.Offset(s, 2) = .Offset(0, 1).Value
.Offset(s + 1, 2) = .Value
s = s + 1
End If
End With
Next r
End Sub
Sub mergeBI()
Application.ScreenUpdating = False
lr = Cells(Rows.Count, "BI").End(xlUp).Row
s = 0
For r = 2 To lr
With Cells(r, 61)
If .Offset(0, 1) = "" Then
.Offset(s, 2) = .Value
Else
.Offset(s, 2) = .Offset(0, 1).Value
.Offset(s + 1, 2) = .Value
s = s + 1
End If
End With
Next r
End Sub
Sub mergeBN()
Application.ScreenUpdating = False
lr = Cells(Rows.Count, "BN").End(xlUp).Row
s = 0
For r = 2 To lr
With Cells(r, 66)
If .Offset(0, 1) = "" Then
.Offset(s, 4) = .Value
Else
.Offset(s, 4) = .Offset(0, 1).Value
.Offset(s + 1, 4) = .Value
s = s + 1
End If
End With
Next r
End Sub
Something in there works bad but I don't know why