Comme je te l'ai indiqué, j'ai utilisé une procédure évènementielle (Worksheet.Change) qui permet de détecter la modification de la cellule Q37 de la feuille "Calcul".
La procédure réalise alors le changement du format de la cellule E24 de la feuille "Offre".
Pour la visualiser :
Alt + F11 pour ouvrir l'éditeur VBA,
Ctrl + R pour ouvrir l’explorateur de projets,
double-clic sur le module Feuil1(Calcul) pour voir le code.
Voici le code avec quelques commentaires :
Private Sub Worksheet_Change(ByVal Target As Range)
'Si la plage modifiée comprend plus d'une cellule, on sort de la procédure
If Target.Count > 1 Then Exit Sub
'Si la cellule modifiée est Q37, alors
If Target.Address = "$Q$37" Then
With Sheets("Offre")
Select Case Target.Value
'Si la valeur de Q37 est "EUR", on applique le format EUR à Offre!E24
Case "EUR": .Range("E24").NumberFormat = "#,##0.00 $"
'Si la valeur de Q37 est "USD", on applique le format USD à Offre!E24
Case "USD": .Range("E24").NumberFormat = "[$$-409]#,##0.00"
'Dans tous les autres cas, on applique le format standard à Offre!E24
Case Else: .Range("E24").NumberFormat = General
End Select
'On active la feuille "Offre"
.Activate
End With
End If
End Sub
A+