Outil de réservation (filtre dynamique, envoi mail, test planning)

Bonjour à toutes et à tous !

Ayant commencé le VBA depuis peu, j'ai commencé à réaliser un outil de réservation de poste informatique (liste des postes + planning). J'ai parcouru les forums mais je pense que mon outil nécessite une expertise plus poussée. Toute aide est appréciée

(VOIR LE FICHIER EN PJ)

1) Lorsque l'utilisateur réserve un poste (feuill2), il renseigne diverses informations (domaine, secteur, ID, etc). Je souhaiterai faire un filtre dynamique dans mon formulaire VBA (une fois que l'utilisateur a choisi un domaine, le(s) secteur(s) associé(s) peut(peuvent) être sélectionné(s), puis le poste. Comme un réel cheminement. Je pense que c'est un filtre dynamique dans le formulaire qu'il faut faire, mais je n'ai aucune idée comment faire cela en VBA :/

2) Une fois que le poste est réservé, j'avais pour idée d'envoyer un mail récapitulatif à une personne (adresse mail fixe). J'ai vu que c'était possible, mais je n'ai pas trouvé encore de solution exacte à celà.

3) Pour finir, j'aimerai pouvoir vérifier le choix de la date de réservation dans le formulaire pour savoir si le poste est déjà réservé pendant la période choisie (ne pas empiéter sur la réservation d'une personne). Il faudrait faire une vérification sur les cellules, mais de même, je ne vois pas comment faire ce test (depuis le formulaire sur les cellules excel.)

Merci d'avance pour avoir lu, et aussi pour l'aide que vous pourrez m'apporter

Fraancis

39outil-gestion.xlsm (103.10 Ko)

Bonsoir,

il y a sur le site une application de réservation de véhicule...

Et il y a CHAMHOT, une de mes applications...

Non pas qu'elle correspond à ce que vous cherchez, mais elle peut vous orienter pour la solution :

Réservation de chambre

test de non empiètement des périodes

inscription de la période sur un calendrier scrollable est perpétuel.

Il n'y a pas l'envoie de l'Email.

@ bientôt

LouReeD

Bonjour LouReeD,

Très intéressante votre application, effectivement, certaines choses inspirantes.

J'aimerai savoir, comment avez-vous fait votre planning ? (génération du planning pour 10 ans)

Merci !

Bonsoir,

le principe du planning est simple :

une feuille avec un nombre déterminé de colonne (en fait le juste nombre pour remplir l'écran sans avoir à faire un scroll horizontal pour voir ce qu'il y a à droite).

une série de formule pour chaque case du planning qui va "chercher" s'il y a une information à afficher, cette information étant dans un tableau où on inscrit les périodes de réservation de chaque objet (ici ce sont des chambres, mais cela peut être ce que vous voulez).

Ensuite mise en place d'une scrollbarre et de spin bouton pour faire varier la valeur de la date de la première colonne du planning, les autres étant liées à cette date, tout le calendrier évolue.

Vous ajoutez une MFC conditionnelle sur ces dates afin de faire ressortir les weekend, jours fériés et autre.

Une mise en forme en fonction du résultat des différente formules du calendrier.

Et voilà un calendrier "perpétuel" et ce au delà de 10 ans, dans un sens ou dans l'autre !

@ bientôt

LouReeD

Bonsoir,

ci - joint une version "vierge" du planning : Supprimé par LouReeD

avec un peu d'explication...

Edit : le lien de téléchargement du planning "toutes versions" avec ajout possibles de vos propres jours fériés qui se répèteront automatiquement d'année en année : https://www.excel-pratique.com/fr/telechargements/calendriers/piper-excel-no331.php

@ bientôt

LouReeD

Wow ! Merci LouReed pour le temps que vous consacrez à ma demande

Je n'ai pas encore appliqué votre technique du planning sur mon excel de test ( => à venir) .

Cependant, maintenant, j'essaye de faire apparaitre un calendrier dans mon userform. J'ai remarqué dans votre projet Chamho un userform qui affiche dans une frame le calendrier, qui vérifie la disponibilité, et qui rempli directement dans le tableau (après validation sur le bouton réserver). C'est exactemet le processus que je cherche, sauf que je n'arrive pas très bien à comprendre les codes de ces étapes.

Mon objectif serait d'indiquer 2 dates (début et fin), vérifier la disponibilité, puis d'importer cette période dans mon planning.

v5tjgru

Merci encore !

Alors pour faire "simple" :

le calendrier est un calendrier "autonome" dont vous pouvez trouver des "exemples" sur le net.

D'ailleurs il y en a un qui permet de récupérer deux dates une de début et une de fin comme sur votre USF.

leakim en a mis en partage dans le forum de ce site "Applications" : https://forum.excel-pratique.com/viewtopic.php?f=3&t=72229

Pour moi j'ai simplement utilisé deux fois le même. En général sur ces calendrier lors de la saisie de la date voulue ou le clic sur OK il y a une variable qui contient la date choisie, dans CHAMHO, c'est cette variable qui est inscrite dans la TextBox date de début, puis dans celle de fin de séjour.

Lors du "change" de ces TextBox un code vérifie l'existence d'une date dans l'autre, si les deux ont une date alors je "lance" la fonction de test de possibilité.

C'est une fonction "personnel" que vous programmez comme vous le voulez, pour ma part cette fonction accepte trois données :

le N° de chambre, date d'arrivée et date de départ.

Ensuite dans le code je simule le fonctionnement d'une formule de type SOMMEPROD par rapport à ma feuille de base de données.

Si pas de conflit alors le séjour est inscrit dans le tableau de base de données des réservations.

Si conflit alors on l'indique afin de pousser l'utilisateur à modifier au moins une des dates, et le cycle redémarre....

Pour ce qui est d'inscrire le séjour dans le calendrier, ce n'est que les formules dans chaque cellule de ce calendrier qui le font grâce au formule de type SOMMEPROD. A aucun moment le USF modifie le calendrier, lui il ajoute simplement un séjour dans la base de données.

Si vous "inscrivez" les données sur votre planning celui-ci ne sera plus "variable".

A moins qu'il soit fait sur 365 jour avec un scroll habituel horizontal, à ce moment il faudra faire un genre de boucle qui inscrit les données sur les bonnes colonnes (en fonction des dates) et sur la bonne ligne.

Voyez vous ?

@ bientôt

LouReeD

Pour moi, cela serait transposable à ce que je veux faire (Poste, Date début, date fin).

Je vois le processus d'exécution pour le calendrier/vérification/etc

Après, je pense que c'est au niveau du code que je me perds surtout. J'ai essayé de reprendre votre modèle (sans succès abouti encore).

42outil-gestion.xlsm (123.95 Ko)

En effet vu votre planning, vous pouvez très bien retranscrire le USF directement "dedans".

Il suffit de savoir le premier janvier est en colonne G (n°7)

Ensuite avec la date de début, sélectionnée par le USF calendrier et retranscrite dans la TextBox Date de début, il suffit de calculer son quantième afin de savoir à quelle colonne du planning elle correspond.

La différence des deux dates (début - fin) donne le nombre de jour de la période (avec un +1 si la fin est inclus dans la période)

il ne reste plus qu'à tester la couleur des cellules comprise entre la colonne (G + quantième date début -1) et la colonne (g + quantième date début -1) + nombre de jour de la période.

Si au moins une de ces cellules à une autre couleur que le xlNone alors il y a conflit, sinon on peut les mettre en couleur en indiquant la raison par une valeur alphanumérique dans la cellule (G + quantième date de début -1)

Le principe est là, non ?

Reste plus qu'à le "coder"...

@ bientôt

LouReeD

Je vous tiendrai au courant de mon avancée demain

Re,

Avancée de l'outil :

- Ajout des DatePicker (plus qu'à faire la vérification entre les 2 dates) ===> le plus dur

- Ajout de l'envoi du mail : OK (néamoins demande la validation de l'envoi par la boite mail de l'émetteur avant d'envoyer, dans l'idéal, cela ne devrait pas)

Bonsoir,

avait vous essayer quelque chose du genre :

Application.DisplayAlerte = False

Mais à ce moment là ce serait peut être la messagerie qu'il faudrait "cibler".

@ bientôt

LouReeD

Effectivement, c'est le " .DisplayAlerts = False " qu'il me faut. J'ai essayé de le placer dans mon code (dans le With End With, en dehors), cependant soit il fonctionne mais il m'affiche une erreur dans le débogeur, soit il ne fonctionne pas et il m'affiche une erreur dans le débogeur.

Une idée pour le placer exactement ?

' ENVOI DE L'EMAIL DE RESERVATION

    Dim oBjMail
    'Dim Nom_Fichier As String

    Set ObjOutlook = New Outlook.Application
    Set oBjMail = ObjOutlook.CreateItem(olMailItem)

    With oBjMail
        .To = "adressemail@mailfr" '  le destinataire
        '.CC = "" ' en copie
        .Subject = "Réservation d'un poste"          ' l'objet du mail
        .body = "Bonjour ! Une personne a réservé un poste !" 'le corps du mail ..son contenu"
        .send
    End With
    ObjOutlook.Quit
    Set oBjMail = Nothing
    Set ObjOutlook = Nothing
    Unload Formulaire
End Sub
Rechercher des sujets similaires à "outil reservation filtre dynamique envoi mail test planning"