Bonjour à tous,

Dans mon fichier de compte (Excel 2016), j'utilise régulièrement la fonction INDIRECT dans mes cellules, généralement pour comparer la valeur en cours d'un compte en banque avec sa valeur le mois précédent. Ca donne qqch comme ceci (ici, je compare si mon compte en banque a grossi ou si j'ai trop dépensé en soustrayant l'un à l'autre) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
=Etat_CompteCourant-INDIRECT("'"&Var_MoisPrecedent&"'!Etat_CompteCourant")

  • Etat_CompteCourant = Nom attribué au niveau de la feuille (pas du classeur) qui pointe vers la cellule comportant la valeur du compte en banque
  • Var_MoisPrecedent = Nom de l'onglet contenant les chiffres du mois précédent


Ca fonctionne très bien mais le code est un peu long (d'autant plus que je compare toujours une valeur avec le mois précédent).

Je cherche à créer une fonction moisprecedent() que j'aimerais utiliser ainsi :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
=Etat_CompteCourant-moisprecedent(Etat_CompteCourant)
Et là, dans VBA, je me fais jeter comme un malpropre... Je veux dire, je n'arrive même pas à renvoyer quoique ce soit qui ressemblerait à un INDIRECT :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
Function MoisPrecedent() As String
 
    MoisPrecedent = INDIRECT("Juin'19!E6")
 
End Function
Là, même en simplifiant dans un premier temps l'INDIRECT en retirant les variables (Var_MoisPrecedent, Etat_CompteCourant), ça me renvoie une erreur.

Savez-vous pourquoi et comment m'en sortir ?