Fonction VBA : regexExtract
La fonction VBA regexExtract extrait une ou plusieurs parties d'une chaîne de caractères en utilisant des expressions régulières.
Utilisation :
regexExtract(texte, expression_régulière)
Extraction sans parenthèses
La fonction regexExtract extrait ici le premier groupe de caractères en majuscules :
Sub exemple()
texte = "ABC-7-DEFG-76-IJ"
'Premier groupe de caractères en majuscules
MsgBox regexExtract(texte, "[A-Z]+")
End Sub

Extraction avec parenthèses
La fonction regexExtract doit extraire maintenant le premier groupe de caractères en majuscules en ignorant le premier (en vérifiant qu'il soit bien précédé par un caractère non alphanumérique).
Pour éviter de conserver le caractère non alphanumérique de test, des parenthèses sont utilisées pour définir la partie à conserver :
Sub exemple()
texte = "REF = ABC-7-DEFG-76-IJ"
'Premier groupe de caractères en majuscules à l'intérieur du texte
arrayDebug regexExtract(texte, "\W([A-Z]+)")
End Sub

Extraction cette fois-ci des 3 groupes de caractères en majuscules à l'aide de 3 paires de parenthèses :
Sub exemple()
texte = "REF = ABC-7-DEFG-76-IJ"
'3 groupes de caractères en majuscules à l'intérieur du texte
arrayDebug regexExtract(texte, "\W([A-Z]+)[^A-Z]+([A-Z]+)[^A-Z]+([A-Z]+)")
End Sub

Si vous ne souhaitez pas obtenir un résultat sous forme de tableau, précisez simplement un séparateur en 3e argument :
Sub exemple()
texte = "REF = ABC-7-DEFG-76-IJ"
'3 groupes de caractères en majuscules à l'intérieur du texte
MsgBox regexExtract(texte, "\W([A-Z]+)[^A-Z]+([A-Z]+)[^A-Z]+([A-Z]+)", ", ")
End Sub

Plus d'exemples
D'autres exemples d'expressions régulières sont disponibles sur la page de la fonction REGEXREPLACE de Google Sheets (ces regex sont utilisables avec regexExtract).
Remarque : cette fonction nécessite l'installation du pack de fonctions XLP (un add-in gratuit pour Excel qui ajoute 92 nouvelles fonctions).