Organisation du covoiturage

Bonjour.

Je cherche à créer un formulaire d'inscription sur des trajets pour organiser le covoiturage dans mon entreprise.

Les agents peuvent s'inscrire sur des trajets prédéfinis (tous les dimanches et vendredis) pour aller de nos locaux (A) jusqu'au site de formation (B). Nous pouvons accueillir 8 stagiaires par trajet (minibus).

Je ne veux pas d'un simple tableau à compléter pour éviter les manipulations malveillantes. Je suis donc parti sur un feuillet protégé ("Covoiturage") avec un encart de saisie (NOM/Trajet1/Trajet2), un bouton de validation et un tableau en lecture seule.

Les données validées sont stockées sur un feuillet "Données" qui sera protégé et caché.

Les formules que j'ai trouvées permettent de renseigner la première colonne mais je n'arrive pas à remplir les autres. Dans mon idée, la colonne 2 est renseignée si la première est pleine, etc... Cela permettrait d'afficher tous les stagiaires inscrits par trajets.

capture d ecran 2024 09 02 112550

Sur cette photo, le résultat souhaité... mais seule la première colonne se complète.

J'imagine qu'il existe des formules plus simples ou des méthodes plus appropriées (tableau croisé dynamique, VBA...). Malheureusement, je suis débutant.

C'est pour cela que je fais appel à votre aide. Comment devrais-je m'y prendre ?

90covoiturage.xlsm (34.32 Ko)

Bonjour

Certains peuvent

  • ne faire que l'aller ou le retour ?
  • Passer plus d'une semaine sur place ?

Bonsoir,

78chris bonsoir,

une proposition en cellule F4 :
=SIERREUR(INDEX(Saisies_2024[NOM];PETITE.VALEUR(SI((Saisies_2024[DATE]=[@DATE2024]);LIGNE(Saisies_2024[DATE]);9^9);COLONNE()-5)-3);"")
à tirer vers la droite.

N'hésitez pas si vous avez besoin d'explications.

@ bientôt

LouReeD

@78Chris

Oui, les agents ne peuvent faire qu'un seul trajet aller ou retour ;

Oui, ils peuvent rester plusieurs semaines en stage.

Bonjour

Une proposition PowerQuery (intégré à Excel)

On saisit toujours tes 2 ou 3 données qui

  • s'inscrivent dans le tableau de 2 colonnes (j'ai totalement remanié ton code manifestement fait avec l'enregistreur).
  • déclenchent la mise à jour du tableau généré par PowerQuery (le nombre de colonnes stagiaires est automatique)

Tu peux éventuellement mettre ce tableau sur un autre onglet et en afficher une image forcément non modifiable.

De toute façon toute modification ou ajout manuel de ce tableau disparait à la prochaine saisie...

@LouReeD

La formule ne fonctionne pas...

J'ai essayé de partir de "INDEX" mais les résultats sont tous "#REF!"...

A quoi font référence le "-5" et "-3" en fin de formule ?

Bonjour,

décomposition de la formule :
=SIERREUR(INDEX(Saisies_2024[NOM];PETITE.VALEUR(SI((Saisies_2024[DATE]=[@DATE2024]);LIGNE(Saisies_2024[DATE]);9^9);COLONNE()-5)-3);"")
le SIERREUR pour éviter d'afficher un message d'erreur si l'INDEX en retourne une.

SI((Saisies_2024[DATE]=[@DATE2024]);LIGNE(Saisies_2024[DATE]);9^9)
on va tester la date de la ligne où se trouve la formule avec les dates de la colonne Date du tableau qui reprend ces dates avec le conducteur.
Si c'est égal alors la fonction SI renvoie le numéro de la ligne de la donnée de la colonne DATE du tableau, sinon elle renvoi une "grande valeur" correspondant à 9 puissance 9. dans le fichier fourni en ligne 4 pour le dimanche 1/09 le SI reverra les numéros 6,7 et 8 correspondant aux cellules O6,O7 et O8.

Une fonction SI ne renvoie pas de "matrice" mais comme elle est inclue dans la fonction Petite.Valeur on aura bien une matrice en retour. petite erreur de ma part, je crois que Excel 2019 sait automatiquement gérer les formules matricielles, donc pour vous la formule devra être validée par la combinaison des trois touches suivantes : CTRL+SHIFT+ENTREE, des accolades {} devraient alors encadrer la formule.

Ensuite dans cette matrice de petit numéro de ligne et de grand, pour la colonne F nous recherchons le premier 01/09, pour cela il y a le paramètre "k" de cette fonction, et afin que la formule soit étirable vers la droite, on rend le "k" dynamique en le remplaçant par la fonction Colonne().
Mais en colonne F le k vaudrait 6, or nous voulons la première petite valeur, donc on fait 6-5, Colonne()-5.
On a bien la première valeur, donc en colonne F et ligne 4 petite valeur correspond à une matrice représentant le résultat des tests du SI, et on demande à renvoyer la première petite valeur : PETITE.VALEUR({387420489;387420489;6;7;8;387420489;...};Colonne(F)-5) = PETITE.VALEUR({387420489;387420489;6;7;8;387420489;...};1)

première petite valeur = 6

avec la fonction INDEX qui cible la colonne NOM du tableau on retourne la 6 ligne de cette colonne donc, mais ce n'est pas bon car les données de cette colonne du tableau ne commence pas en ligne 1 mais en ligne 4, donc on applique une différence de 3 : INDEX(Colonne nom du tableau; ligne à retourner -3) où ligne à retourner est le résultat de Petite Valeur = 6, donc 6-3 = 3, donc index renvoi la troisième valeur de la colonne Nom du tableau = AUGIER.

Quand la formule passe en G, colonne() passe à 7, 7-5 = 2, en colonne G INDEX renvoi la deuxième petite valeur qui est 7 auquel on retire 3 = 4, quatrième ligne de la colonne Nom du tableau = LOEB etc...

Votre fichier avec la formule validée en matricielle, 2019 me les supprimes lors des recopies... donc la matricielle doit être bonne en F4, à vous de la propagée sur la droite :

Ceci dit comme écrit dans ma signature je suis resté en 2014... Le mieux est de s'orienter vers les "nouveaux" outils fournis avec Excel tel que PowerQuerry !

@ bientôt

LouReeD

Bonjour à tous

Ceci dit comme écrit dans ma signature je suis resté en 2014... Le mieux est de s'orienter vers les "nouveaux" outils fournis avec Excel tel que PowerQuerry !

Mais a priori mon post est invisible... La politesse fait partie des espèces en voie de disparition...

@78chris,

Mais a priori mon post est invisible... La politesse fait partie des espèces en voie de disparition...

Bonjour.

Aucun problème de visibilité ou de politesse... juste des obligations professionnelles qui m'empêchent de répondre rapidement !

Je ne connais pas du tout PowerQuery (débutant sur Excel) et je découvre ton tableau. J'ai essayé de comprendre le fonctionnement pour pouvoir modifier la présentation (adapter le texte, préparer 2025)... mais je n'arrive pas à y apporter ma touche.

Merci pour ta proposition. Je n'ai malheureusement pas les compétences pour utiliser cet outil.

Bonjour

@78chris,

Je ne connais pas du tout PowerQuery (débutant sur Excel) et je découvre ton tableau. J'ai essayé de comprendre le fonctionnement pour pouvoir modifier la présentation (adapter le texte, préparer 2025)... mais je n'arrive pas à y apporter ma touche.

Le "texte" est le tien : les noms et les dates car on n'a rien d'autre dans ton exemple. De toute évidence c'est un exemple trop simplifié d'où le problème...

PowerQuery existe dans Excel depuis plus de 13 ans et est plus facile à appréhender que VBA que tu ne connais pas non plus (tu peux remarquer que ton code de plus de 50 lignes a été remplacé par 15 lignes)...

Certains sur ce forum qui ne connaissaient pas plus PowerQuery que toi, convaincus par son efficacité, s'y sont mis. Mais chacun fait à son idée...

Bonjour,

Moi je suis convaincu ! Mais je ne m'y suis pas mis...

Ce que je regrette un peu ce sont les solutions données en PQ avec parfois (souvent ?) très peu d'explication. A mon goût cela manque de pas à pas pour appréhender les requêtes.

Alors oui il y a une somme de tutos là dessus sur la toile mais dans ce cas plus de question...

Je ne crois pas avoir vu de "cours" sur ce sujet sur le site, non ?

Je ne décourage personne, au contraire, dans mon entourage lorsque l'on me demande une solution "VBA" je réponds souvent : OK, mais cela serait plus simple avec PQ et surtout plus pérenne dans le temps. C'est bien pour cela que je parle de 2014, car à l'époque c'était un AddIn et ma boîte ne le permettait pas... Enfin je crois...

@ bientôt

LouReeD

@78chris,

J'avais modifié le texte et le tableau pour le publier ici.

Le remettre dans sa forme initiale est très compliquée pour un novice comme moi.

Je ne critique ni VBA ni PQ... je suis juste un débutant, c'est tout ! Je ne sais pas du tout m'en servir.

Si j'ai le temps, je m'y pencherai aussi.

Merci

@LouReeD,

Merci pour ta formule ! Je l'ai dupliquée pour 2025 et tout fonctionne.

Et un grand merci pour tes explications =D

Effectivement, c'est plus archaïque que VBA ou PQ mais c'est tout ce que mes compétences me permettent d'utiliser pour l'instant.

Bonne journée,

RE

Moi je suis convaincu ! Mais je ne m'y suis pas mis...

Ce que je regrette un peu ce sont les solutions données en PQ avec parfois (souvent ?) très peu d'explication. A mon goût cela manque de pas à pas pour appréhender les requêtes.

Dans toutes les réponses que j'ai données au début de mon utilisation de PowerQuery, systématiquement je passais jusqu'à 30 minutes à écrire pas à pas des manips qui prennent 1 à 5 minutes.
Mais j'ai fini par me lasser...

Je le fais cependant toujours quand on me le demande (gentiment, lol).

Il faudrait des cours vu la proportion des réponses "VBA" avec ce module !

@ bientôt

LouReeD

Rechercher des sujets similaires à "organisation covoiturage"