Re Bonjour Tout le Monde !
Alors la meilleure réponse sera attribuée à @Konti : même si j’ai trouvé des éléments permettant de me débloquer dans beaucoup d’autres réponses, c’est la sienne qui m’a le plus permis d’avancer (et ce malgré que son code soit rédigé en C#).
Merci à toi @Konti !
Voici en détail la solution :
En effet, comme le montre le code de @Konti, c’est le code d’erreur 51 swSketchErrorExtRefFail qu’il faut utilisé.
Quand un composant est supprimé sans supprimer ses contraintes associées, les références de contrainte prennent un flag **External**

Pour une raison que j’ignore, la première idée que j’avais et qui consistait à aller vérifier le composant associé à l’entité de référence de contrainte bancale ne fonctionne pas : il y avait toujours un nom de fichier associé, mais qui n’avait rien à voir avec celui d’origine. Bref ! Incompréhensible.
La condition pour que cela fonctionne est que l’option système Traiter les références de contrainte manquantes comme des erreurs doit être cochés (justement pour que le code 51 soit associé à la contrainte).
ATTENTION !! Si un fichier est manquant (ie SW ne le trouve pas), celui-ci apparait comme supprimé dans l’arbre et pour toutes les configurations s’il y en a, et les contraintes qui lui sont associés remonte également avec le code d’erreur 51 ; il faut donc penser à résoudre/retrouver ces composants avant d’exploiter la macro.
L’autre problème que j’ai rencontré est lié à la fonction de groupement de contraintes par statuts (*Merci à @Sylk d’avoir fait apparaitre cette option d’affichage dans un de ses posts) :
Si la contrainte est une sous-fonction de la fonction Contraintes par défaut dans l’arbre d’un assemblage, les dossiers utilisateur ou les dossiers de regroupement automatique sont au même niveau et il faut les écarter avant d’analyser la contrainte.
Voilà ! Merci à tous encore une fois.
Ci-dessous mon code :
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim swSelMgr As SldWorks.SelectionMgr
Dim swFeat As SldWorks.Feature
Dim swMateGroup As SldWorks.Feature
Dim swSubFolder As SldWorks.Feature
Dim swMateFeat As SldWorks.Feature
Dim swSubFeat As SldWorks.Feature
Dim swMate As IMate2
Dim swComp As SldWorks.Component2
Dim swMateEnt(2) As SldWorks.MateEntity2
Dim fileName As String
Dim Error As Long
Dim IsWarning As Boolean
Dim i As Long
Dim DeleteOption As Long
Dim status As Boolean
Dim Append As Boolean
Dim Mark As Integer
Dim List As Boolean
Sub main()
    
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swSelMgr = swModel.SelectionManager
    Set swModelDocExt = swModel.Extension
    
    'Get the first feature in the assembly
    Set swFeat = swModel.FirstFeature
    'Iterate over features in FeatureManager design tree
    Do While Not swFeat Is Nothing
        If "MateGroup" = swFeat.GetTypeName Then
            Set swMateGroup = swFeat
            Exit Do
        End If
        Set swFeat = swFeat.GetNextFeature
    Loop
    
    Debug.Print "  " & swMateGroup.Name
    Debug.Print ""
    
    
    Set swSubFeat = swMateGroup.IGetFirstSubFeature
   'iterate over subfeatures (Mate or folders)
    Do While Not swSubFeat Is Nothing
        If "FtrFolder" = swSubFeat.GetTypeName Then
            '--------------------------------------------------------------------
            Debug.Print "swSubFeat TypeName:        " & swSubFeat.GetTypeName _
            & ",        Name:        " & swSubFeat.Name
            '--------------------------------------------------------------------
            GoTo Line1
        ElseIf "GroupedMatesFolder" = swSubFeat.GetTypeName Then
            '--------------------------------------------------------------------
            Debug.Print "swSubFeat TypeName:        " & swSubFeat.GetTypeName _
            & ",        Name:        " & swSubFeat.Name
            '--------------------------------------------------------------------
            GoTo Line1
            
        End If
        'MsgBox swSubFeat.GetTypeName
       Set swMate = swSubFeat.GetSpecificFeature2
        If Not swMate Is Nothing Then
            Error = swSubFeat.GetErrorCode2(IsWarning)
            ' Error 51 ?
            If Error = 51 Then List = swSubFeat.Select2(True, 0)
        End If
Line1:
                    
        Set swSubFeat = swSubFeat.IGetNextSubFeature
        
    Loop
    'Delete List
        ' To delete absorbed features, use enum swDeleteSelectionOptions_e.swDelete_Absorbed
        ' To delete children features, use enum swDeleteSelectionOptions_e.swDelete_Children
        ' To keep absorbed features and children features, set DeleteOption = 0
    DeleteOption = swDeleteSelectionOptions_e.swDelete_Absorbed
    'DeleteOption = swDeleteSelectionOptions_e.swDelete_Children
    'DeleteOption = 0
    'DeleteOption =swDeleteSelectionOptions_e.swDelete_Absorbed + swDeleteSelectionOptions_e.swDelete_Children
    
    status = swModelDocExt.DeleteSelection2(DeleteOption)
    
End Sub