Depende como tengas los datos, creo que podés cambiar "bastante" las macros para hacerlas más eficientes en su búsqueda. Supongo que tu base de datos lo tenés en la hoja como si fuese una tabla, donde en la fila 1 están los títulos, y a partir de la fila 2 ya están todos los datos. Si es así, te sugiero que cambies la función obtenerFilaVacia por la siguiente (asumo que siempre tenés datos en la columna B, por lo que dice el otro código)
Function ObtenerFilaVacia(ws As Worksheet) As Long
ObtenerFilaVacia = Cells(1000000, 2).End(xlUp).Row + 1
End Function
Como ves, la función es muy simple así que creo que lo podés poner directo en el código principal
Y te cambio además el procedimiento del bóton para que sea un poco más sencillo todo el archivo
Private Sub CommandButton1_Click()
Dim primeraFilaVacia As Long
Dim CeldaACambiar As String
primeraFilaVacia = obtenerFilaVacia(Sheets(ComboBox1.BoundValue))
With Sheets(ComboBox1.Value)
.Cells(primeraFilaVacia, 2).Value = TextBox1.Text 'columna B
.Cells(primeraFilaVacia, 3).Value = TextBox2.Text 'columna C
.Cells(primeraFilaVacia, 4).Value = TextBox3.Text 'columna D
.Cells(primeraFilaVacia, 5).Value = TextBox4.Text 'columna E
End With
'a partir de aquí podrías poner las fórmulas, así las sacás de la hoja y esperás directamente a que te ingresen datos
End Sub
el último comentario es justamente para que simplifiques las hojas de la base y saqués todas las fórmulas si no tienen nada, y recién escribás la fórmula cuando ingresás datos. Cualquier duda avisame y lo aclaramos un poco más.