Éplucher l'échalote et l'émincer finement.
Laver les poireaux et le céleri. Couper le tout en petits dés.
Faire fondre le beurre dans une sauteuse. Faire cuire l’échalote, l’oignon et le céleri. Porter à feu moyen pendant une dizaine de minutes en mélangeant de temps en temps.
Ajouter la viande hachée. Baisser le feu et laisser cuire pendant 10 à 15 minutes en remuant souvent et en cassant les morceaux de viande avec une cuillère en bois. Saler, poivrer.
Ajouter la sauce tomate et laisser cuire quelques minutes
Pour réaliser la sauce béchamel, faire fondre le beurre dans une casserole. Ajouter la farine et cuire 1 à 2 minutes en fouettant.
Ajouter progressivement le lait en fouettant. Porter à ébullition et remuer jusqu'à ce que la sauce épaississe. Saler et poivrer.
Cuire les pâtes dans un grand volume d'eau selon les indications du paquet (al dente ou ferme).
Égoutter rapidement et mélanger avec un peu de beurre.
Mélanger les pâtes et la sauce.
Verser dans un moule à gratin allant au four
Saupoudrer de gruyère râpé.
Cuire 10 minutes à four chaud le temps que le fromage fonde et gratine.