Doublon : besoin d'aide

  • Initiateur de la discussion Initiateur de la discussion ben22
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

B

ben22

Guest
Bonjour à toutes et à tous
Je viens demander un peu d'aide car je ne comprend pas une de mes étapes dans mon formulaire, et je suis bloquer, c'est pour cela que je fait appel à vous après avoir passé des heures à essayer de trouver une solution.

J'ai réalisé un formulaire de réservation de salle, jusque la tous fonctionne, le problème est que 2 personnes différentes peuvent réserver la même salle au même moment.
J'ai rentrer une formule dans le vba pour des doublons, cela ne fonctionne pas pour des doublons de date ( mais il fonctionne très bien pour des doublons de salle ou de formation)
la formule que j'ai entrée est :

Private Sub c_validation_Click()

For Each c In Range("d2", [d65000].End(xlUp))
If UCase(Me.Date_de_début) = UCase(c) And UCase(Me.salle) = UCase(c.Offset(0, 4)) Then
MsgBox "Salle déjà réservée aux dates demandées : consulter le calendrier des salles"
Exit Sub
End If
Next c

Je vous joint mon fichier pour peut-être être plus clair dans mes explications
Si quelqu'un à une réponse pour m'expliquer mon probléme

merci beaucoup🙂
 

Pièces jointes

Re : Doublon : besoin d'aide

Bonjour et bienvenu sur le forum Ben22,

J'ai testé ton fichier, il fonctionne si tu mets la date au MEME format dans ton UserForm que sur ta feuille "jj/mm/aaaa". Par contre, c'est vrai que si tu saisie dans ton UserForm par exemple "jj/mm/aa", cela ne fonctionne pas!

Bref, si tu mets date de début = "02/02/2009", tu as le message d'erreur

Par contre ce qui me surprend dans ton code (étant donné la structure de ta base de donnée et de ton UserForm) comme tu utilise = ??? et non pas "inclus entre date début et date fin ???"

Avec ton code, dans le cas suivant :
Valeurs déjà saisie :
-> date début = 01/02/2009
-> date fin = 05/02/2009

Si tu saisie dans ton UserForm :
-> date début = 01/02/2009 => tu auras le message d'erreur => normal
-> date début = 06/02/2009 => tu n'auras pas le message d'erreur => normal
-> date début = 03/02/2009 => tu n'auras pas le message d'erreur => alors que tu devrais l'avoir!!!!

A mon avis, il serait plus simple de bâtir ta base de donnée en ligne! C'est à dire, créer une ligne par demi-journée de réservation!

Ainsi si tu réserves du 01/01/2009 matin au 02/01/2009 matin, tu auras les lignes suivantes :
ligne 1 : salle... réservé le 01/01/2009 matin
ligne 2 : salle... réservé le 01/01/2009 après midi
ligne 3 : salle... réservé le 02/01/2009 matin

Bref, enlever la colonne date début et date fin, pour n'avoir qu'une colonne : date + (matin ou après midi) -> ou tu peux scinder en deux colonnes ces 2 informations!

Le traitement en sera par la suite beaucoup plus simple et ton code aussi 😉

Bonne soirée
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
649
Deleted member 453598
D
Réponses
40
Affichages
3 K
Réponses
15
Affichages
784
Réponses
7
Affichages
176
Réponses
18
Affichages
597
Retour