Monsieur Excel
Pour tout savoir faire sur Excel !

28 juillet 2017

Passagers d’un avion (d)

Le modèle tel que je l’ai décrit dans les artices précédents permet de simuler le remplissage d’un avion. Il faut pour cela, en passant par FichierOptionsFormules, se mettre en cacul manuel avec itérations autorisées, 1 itération. Puis entrer 1 en A1 et lancer le calcul avec [F9].

Puis on entre 2 en A1 et on relance le calcul. Puis 3 et on relance le calcul. Et ainsi de suite jusqu’à ce qu’il n’y ait pas de « pbm » dans la colonne qui vient de se calculer. On voit alors en A23 si l’on a perdu ou gagné.

Cette approche pas à pas est parfaite pour bien saisir la logique de l’affectation des places. Mais, comme elle est fastidieuse, j’ai écrit une macro qui fait tout le travail à votre place. Sauf que, pour en simplifier le code, je ne vérifie pas si l’avion est déjà rempli : je fais 15 itérations quoi qu’il arrive.

Sub One_shot()
For I = 1 To 15
    Range("A1") = I
    Calculate
Next I
End Sub

Remarque – Nous aurions pu accélérer le traitement en arrêtant la macro dès qu’il n’y a plus de « pbm »  dans la colonne active. Ou aussi en mettant des formules plus compliquées encore en F2, G2 et G23 pour s’arrêter dès qu’un avion est rempli.

Mais notre modèle est déjà bien assez compliqué comme cela…

L’écran ci-dessous montre un remplissage complet de l’avion qui aboutit à « Gagné » : le client n°7 qui avait réservé la place n°1 est dérouté sur la place n°16. Du coup, le client n°14 prend la place n°5, le client n°16 prend la place n°11, le client n°18 prend la place n°3 et, comme celle-ci était celle prévue au départ pour le premier client, tout se termine bien pour les deux derniers passagers.