Bonjour,
Je pense qu'il faut absolument passer par une macro car on ne peut pas créer une formule qui garde son dernier résultat en mémoire si A13=0, même avec un SI.
Heureusement c'est une macro simple :
- Faire un clic droit sur l'onglet de la feuille Feuil2 et sélectionner "Visualiser le code".
- Dans Visual Basic Editor coller ce code :
Private Sub Worksheet_Activate()
If Worksheets("Feuil1").Range("A13").Value <> 0 And Worksheets("Feuil1").Range("A11") = Range("G1") Then Range("G4") = Worksheets("Feuil1").Range("A13")
End Sub
Attention aux retours chariot dans le forum, il n'y a que trois lignes (Private...Activate(), If...("A13") et End Sub) de code.
Fermer Visual Basic Editor et c'est tout !
Chaque fois qu'on fait un changement en feuille Feuil1 puis qu'on revient sur la feuille Feuil2 (elle est donc activée / Activate) on vérifie que A13 est différent de 0 et que G1=A11 sur Feuil1. Si oui alors G4 = A13 sur Feuil1 sinon on ne fait rien, on laisse donc la valeur qu'il y avait avant.
A+