Lo que entiendo que quieres hacer es poner en la celda actual una función que encadene los datos de F45 hacia abajo.
Esta seria la macro similar a lo que tenías
Sub AsignarFormula()
Dim Formul As String
If [F45] <> "" Then
Formul = "=Concatenate(F45"
Else
Exit Sub
End If
m = 46
While Cells(m, "F") <> ""
Formul = Formul & "," & Chr(34) & " / " & Chr(34) & ",F" & m
m = m + 1
Wend
ActiveCell.Formula = Formul & ")"
End Sub
Ahora bien, cada vez que cambies valores de la lista que hay en F45 se quedará desfasada la fórmula y tendrás que volver a ejecutarla asegurándote que tienes seleccionada la casilla donde debe ponerse la fórmula.
Algo mejor sería si la casilla de la fórmula fuera fija. Entonces podrías hacer una macro que se ejecutara al modificare casillas y si se modificaran en la columna F de la fila 45 para abajo podrías hacer que se ejecutara la macro de nuevo y quedaría actualizada la casilla de la fórmula. Esto no puede hacerse tal como está ahora porque se pondría la fórmula en la casilla actual que sería donde estamos escribiendo.
Si quieres puedo hacer eso, tu me dices la casilla fija donde irá la fórmula y hacemos la macro para que ponga la fórmula en esa casilla y la macro Change para que se actualice la formula en caso de cambiar datos por la zona de la lista.