Bonjour,
Quand tu crées un CommandButton dans ta feuille, ça provoque un arrêt de VBA et une réinitialisation du projet, car tu modifies le module de ta feuille database (un nouvel objet CommandButton y est créé 'en dur'). En fait, si tu exécutes ta procédure bt_Add_Click en pas à pas, tu verras que l'exécution s'arrête immédiatement après Sheets('database').OLEObjects.Add(...) et que ta variable bt ne sera jamais initialisée.
Une solution : mets ta procédure de création du nouveau bouton, ainsi que le module Classe1, dans un classeur différent, le mieux serait une macro complémentaire par exemple. Comme le code sera dans un projet extérieur à ton classeur, il ne sera pas réinitialisé. En revanche, le projet du classeur contenant les CommandButtons, lui, sera réinitialisé et il faudra faire attention à tous les effets que ça peut avoir (variable globales vidées, etc.)
Cordialement,
Laurent