|  
                                             
	Das liegt daran, dass deine Hauptuserform mit Modal=true angezeigt wird (gebundenes Formular). 
	Versuchs mal so: 
Private Sub cb_Parameteraktualisieren_Click()
 
'X-Wert aus textbox wird an Catia übergeben
 
Dim Params As Parameters
Set Params = CATIA.ActiveDocument.Product.Parameters
Dim X As Dimension
Set X = Params.Item("X-Koordinate")
 X.Value = Me.textbox_x.Value
 
    With Me
        .Hide
        .Show (False)
        Load UserForm1
        UserForm1.Caption = "Berechnung läuft..."
        UserForm1.Show (False)
        wait DateAdd("s", 2, Now())
        Unload UserForm1
        .Hide
        .Show
    End With
 
 
'Produkt wird aktualisiert und Punkt ausgerichtet
 
Set Params = CATIA.ActiveDocument.Product.Parameters
Dim W1 As Dimension
Set W1 = Params.Item("Winkel 1")
Me.textbox_Winkel1.Value = W1.Value
 
  
End Sub
  
Private Sub wait(t As Date)
    While t > Now(): DoEvents: Wend
End Sub
	Ob du sleep benutzt oder nicht ändert an deinem eigentlich Problem auch nichts. Dein MatLab sollte so oder so weiterrechnen, jedenfalls wenn du keinen Singlecore Processor hast. 
	Wenn du sleep benutzen willst musst du eine dll einbinden: 
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub cb_Parameteraktualisieren_Click()
 
'X-Wert aus textbox wird an Catia übergeben
 
Dim Params As Parameters
Set Params = CATIA.ActiveDocument.Product.Parameters
Dim X As Dimension
Set X = Params.Item("X-Koordinate")
 X.Value = Me.textbox_x.Value
 
    With Me
        .Hide
        .Show (False)
        Load UserForm1
        UserForm1.Caption = "Berechnung läuft..."
        UserForm1.Show (False)
        Sleep 2 * 1000
        Unload UserForm1
        .Hide
        .Show
    End With
 
 
'Produkt wird aktualisiert und Punkt ausgerichtet
 
Set Params = CATIA.ActiveDocument.Product.Parameters
Dim W1 As Dimension
Set W1 = Params.Item("Winkel 1")
Me.textbox_Winkel1.Value = W1.Value
 
  
End Sub
	  
     |