Bonjour.
Votre demande n'est pas claire parce qu'il n'y a pas d'objet nommé Form1 ni Form2 ni bouton2 dans votre projet VBA.
Il y a UserForm1, UserForm2, CommandButton1 et CommandButton2
Alors si c'est de ça que vous voulez parler, pour que ce soit l'UserForm2 qui ferme le Workbook ouvert par le UserForm1 (on se demande bien pourquoi ça devrait être comme ça ?) il faut nécessairement qu'il puisse le connaître (si son nom n'est pas toujours le même de sorte qu'il ne pourrait pas simplement faire Workbooks("commesse.xls").Close). Il faut donc qu'il soit connu de lui c'est à dire soit déclaré par une Public Wbk2 As Workbook, soit transmis à une méthode du UserForm2 qui fera elle même son Me.Show avant de le fermer. Mais si la déclaration est dans UserForm1 il ne faut pas de Unload Me, sinon il est perdu. Me.Hide plutôt.