Pfiuu, il y aurait beaucoup à dire. Mais chaque chose en son temps.
D'abord, pour information, tu pourrais faire tous tes ajouts de controls en une seule boucle pour peu que tu changes un peu la formule de nommage de ceux-ci (cantidad à utiliser en incrément). C'est un détail.
Ensuite, et sauf contraintes spécifiques, je ne ferais clairement pas comme toi. On verra après.
Si j'ai bien compris, quand tu lances la deuxième fois ton programme, il ne fait qu'ajouter encore de nouvelles zones, non ?
Le minimum serait, soit de supprimer les zones existantes et de tout recréer, soit de ne supprimer ou n'ajouter que ce qui est nécessaire pour compléter à la nouvelle quantité demandée par rapport à l'ancienne.
Dans les deux cas, il faut jouer avec la méthode .RemoveControl des UserForm VBA (à voir dans CATIA ?) ou la méthode .Remove de la collection .Control de ton formulaire.
Si ton control TextBox est nommé "capa01" alors sa valeur est lisible par MsgBox capa01.text (capa01.value marche aussi)
Enfin, non je ne crois pas que tu partes dans la bonne direction (mais nous n'avons pas tous les détails) mais dans une direction qui devrait quand même t'amener à ton but.
Personnellement j'aurais gardé une interface avec un seul exemplaire de chaque zone de saisie.
J'aurais mis un control de liste quelconque dans lequel j'aurais stocké, ligne par ligne, chaque occurence d'aorte (1 ligne = 4 colonnes = 4 textbox).
Enfin tu ajoutes à cela un bouton qui permet de valider la saisie de tes 4 TextBox pour remplir la liste et un bouton pour valider la suppression de la liste d'une ligne sélectionnée.
Et là tu n'as plus à te soucier de la place à l'écran de tes zones, de leur création dynamique ni de leur nombre.
Je ne sais pas si j'ai été totalement clair, mais j'espère que ça t'aidera un peu.