Code:
Sub CATMain()
'************************************************************************Dokument****
Dim oCatia As Application
Dim oPartDocument As PartDocument
Dim oSelection As Selection
Dim oPart As PartSet oPartDocument = Get_PartDocument
If oPartDocument Is Nothing Then
    Exit Sub
End If
Set oPart = oPartDocument.Part
'********************************************************************HybridBodies****
Dim oHybridShapeFactory As HybridShapeFactory
Dim oHhybridShapePointCoord As HybridShapePointCoord
Dim oHybridBodies As HybridBodies
Dim oHybridBody As HybridBody
Dim oReference As Reference
Dim oHybridShapePointExplicit As HybridShapePointExplicit
'***************************************************Search HybridBodies and Count****
Set oSelection = CATIA.ActiveDocument.Selection
oSelection.Clear
oSelection.Search ("CATGmoSearch.OpenBodyFeature.Name=CenterOfGravity,all")
If oSelection.Count < 1 Then 
	Set oHybridBodies = oPart.HybridBodies
	Set oHybridBody = oPart.HybridBodies.Add
	oHybridBody.Name = "CenterOfGravity"
	
	Else 
	Set oHybridBodies = oPart.HybridBodies
	Set oHybridBody = oHybridBodies.Item("CenterOfGravity")
End If
oSelection.Clear
'*********************************************************************AddNewPoint****
Set oHybridShapeFactory = oPart.HybridShapeFactory
Set oHybridShapePointCoord = oHybridShapeFactory.AddNewPointCoord(0, 0, 0)
oHybridShapePointCoord.Compute
'*****************************************************Create Reference from Point****
Set oReference = oPart.CreateReferenceFromObject(oHybridShapePointCoord)
Set oHybridShapePointExplicit = oHybridShapeFactory.AddNewPointDatum(oReference)
oHybridShapePointExplicit.Compute
oHybridBody.AppendHybridShape oHybridShapePointExplicit
oHybridShapeFactory.DeleteObjectForDatum oReference
'**********************************************************************Selection*****
Set oSelection = CATIA.ActiveDocument.Selection
Set oPartDocument = CATIA.ActiveDocument
If (Instr(oPartDocument.Name,".CATPart"))<> 0 Then
	Set oPart= oPartDocument.Part
	Set oSelection = CATIA.ActiveDocument.Selection
			
	Dim sStatus As String
	Dim sFilter(0) as String
	Msgbox "Select a Face "
	sFilter(0) = "Face"
	sStatus = oSelection.SelectElement2(sFilter, "select a face", False)
			If (sStatus = "Cancel") Then
	 		Exit Sub
'Hier Hänge ich   
 			
 oSelection.Item(1).Value.Name
	End If
'************************************************************************Formula*****
Dim oRelations As Relations
Set oRelations = oPart.Relations
Dim oFormula As Formula
Set oFormula = oRelations.CreateFormula("Formula.1", "", oHybridShapePointExplicit, "centerofgravity('hier soll die selektierte Fläche stehen   ') ")
  ') ")
oFormula.Rename "Gravity"
oSelection.Clear
oPart.Update
'*****************************************************************************Sub****
End Sub
'************************************************************************Function****
Private Function Get_PartDocument() As PartDocument
Dim oCatia As Application
Dim oDocument As Document
Dim oSelection As Selection
Dim oPart As Part
Set oCatia = CATIA
On Error Resume Next
    Set oDocument = CATIA.ActiveDocument
   
    If Err.Number <> 0 Then
   
        MsgBox "There Is No Active Document In Teh Current Session, Exitting Script."
        
   
    End If
   
On Error GoTo 0
Set oSelection = oDocument.Selection
oSelection.Clear
'---------------------------------------------------'
If (InStr(oDocument.Name, ".CATPart")) = 0 Then
    oSelection.Search ("type=Part,in")
   
    On Error Resume Next
   
        Set oPart = oSelection.FindObject("CATIAPart")
       
        If Err.Number <> 0 Then
       
            MsgBox "A Part or Part Instance Must be Active." & vbLf & "Exiting The Script"
            oSelection.Clear
           
            Exit Function
       
        End If
       
    On Error GoTo 0
Else
    Set oPart = oDocument.Part
End If
oSelection.Clear
'---------------------------------------------------'
Set Get_PartDocument = oPart.Parent
End Function