Bonjour,
La procédure "Worksheet_BeforeDoubleClick" n'est applicable que dans la feuille où elle est placée. Tu peux la copier dans chaque feuille mais il est plus simple d'utiliser la procédure "Workbook_SheetBeforeDoubleClick" au niveau du classeur (ThisWorkbook).
Dans ta procédure, tu fais référence à la feuille 1 (Feuil1), donc si tu te trouves sur une autre feuille, c'est toujours la feuille 1 qui est prise en compte. A moins que tu ne veuilles que l'info de la feuille 1.
Remplace la ligne par : Somme = Activesheet.Range("E36").Value, si la feuille peut être différente.
Pour le zéro manquant, il faut ajouter un format de présentation.
UserForm1.TextBox1.Value = "Le solde est de " & Format(Somme, " # ### ##0.00 €; -# ### ##0.00 €") par exemple
Le TextBox doit être alimenté avant l'affichage du formulaire.
Enfin pour simplifier le code utilise un bloc With
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim Somme As Variant
Somme = ActiveSheet.Range("E36").Value
' Peut-être vérifier si l'on est sur la bonne feuille
With UserForm1
.TextBox1.Value = "Le solde est de " & Format(Somme, " # ### ##0.00 €; -# ### ##0.00 €")
.TextBox1.AutoSize = True
.Show
End With
Unload UserForm1 ' Refermer le Form
End Sub
Bonne journée