Tableau de réservation de voiture au sein d'une entreprise
Bonjour a tous,
Je viens vers vous concernant un tableau que j'ai déjà récupéré sur ce forum.
J'ai ajouté des données ( samedi et dimanche) mais dans les macros le week-end ne fonctionne pas.
La feuille semaine 2 ne fonctionne pas.
Autre demande, j'aimerais avoir un aperçu mensuel des réservations. Est-ce possible sur une même feuille.
D'autre part est-ce que l'on peux différencier ( par une couleur ) l'heure de réservation et l'heure de prise des clés ( certains réserve pour 8h mais ne vienne chercher la voiture qu'à 9 ou 10h).
Merci d'avance à ceux qui m'aiderons.
Cordialement.
David
Bonsoir,
le code ne fonctionne pas chez moi... le DTPiker n'est pas disponible...
Ceci dit si on regarde le code du bouton [OK] du Userform :
Private Sub OK_Click()
If Me.Nom = "" Or Me.Voiture = "" Then Exit Sub 'si les 2 combo "Nom" et "Voiture" sont vides, on sort de la procédure,
'tout en laissant l'usf visible
If Application.Weekday(Me.DTPicker1, 2) > 5 Or _
Application.Weekday(Me.DTPicker2, 2) > 5 Then Exit Sub 'si on a choisi une date de week-end, idem
If Me.DTPicker1 < [A6] + 6 And Me.DTPicker1 >= [A6] Then 'si la date est bien dans l'onglet
If Me.DTPicker1 > Me.DTPicker2 Then Exit Sub 'si le retour est antérieur au départ, on sort
If Me.DTPicker1 = Me.DTPicker2 Then 'si les deux dates sont identiques
If Val(Left(Me.Arrivée, Len(Me.Arrivée) - 3)) < Val(Left(Me.Départ, Len(Me.Départ) - 3)) Then Exit Sub
'si l'heure de retour est antérieure à l'heure de départ, on sort
'Left(Me.Arrivée, Len(Me.Arrivée) - 3) te donne le ou les chiffres anvant le h
'Val le convertit en nombre
End If
Lig = Application.Match(Me.Voiture, Range("A1:A32"), 0) 'on recherche le numéro de ligne de la voiture sélectionnée
'correspond à la fonction "EQUIV" d'une feuille
Col = (Int(Me.DTPicker1 - [A6]) * 17) + 2 'comme tes journées tiennent sur 12 colonnes
'on retrance la date en A6 à la date du DTP1, qu'on multiplie par 12
'et on rajoute 2 car tes journées commencent en colonne C
DerCol = (Int(Me.DTPicker2 - [A6]) * 17) + 2 'idem, pour le DTP2
Prem_Heure = Me.Départ.ListIndex + Col 'on détermine la colonne de départ
'Me.Départ.ListIndex donne l'index sélectionné, auquel on rajoute Col
Der_Heure = Me.Arrivée.ListIndex + 0 + DerCol 'idem, ici le -1, car si retour à 09h00, ce créneau est toujours valable
If Cells(Lig, Prem_Heure).MergeCells Or Cells(Lig, Der_Heure).MergeCells Then 'si les cellules trouvées sont fusionnées
MsgBox "Créneau déjà utilisé" 'on prévient que le créneau est déjà pris
Exit Sub 'on sort
End If
With Range(Cells(Lig, Prem_Heure), Cells(Lig, Der_Heure))
.Merge 'fusion des cellules
.Value = Me.Nom 'on marque le nom
.Interior.ColorIndex = 8 'couleur jaune
.HorizontalAlignment = xlCenter 'on centre horizontalement
.VerticalAlignment = xlCenter 'et verticalement
.Font.Bold = True 'on met en gras
End With
Else
MsgBox "La date entrée ne correspond pas à cette semaine" 'si la date n'est pas dans l'onglet
Exit Sub
End If
Unload Me 'on décharge et on ferme l'usf
End Subon peut voir sur la ligne surlignée que le code fait le teste de savoir si le jour sélectionné est un weekend ou pas.
Essayez de mettre une apostrophe ' devant cette ligne pour la transformer en commentaire.
@ bientôt
LouReeD
Bonjour,
Merci pour votre réponse mais le fait de mettre une apostrophe ne fonctionne pas.
Avez-vous une autre idée??
Merci d'avance
David
J'ai trouvé pour affiché les réservations le week-end, il fallait juste modifié le nombre de jour. Passer de 5 à 7.
Application.Weekday(Me.DTPicker1, 2) > 7 Or _
Application.Weekday(Me.DTPicker2, 2) > 7 Then Exit Sub 'si on a choisi une date de week-end, idem.
Maintenant j'aimerais reporter toute les semaine dans une feuille mensuelle.
Encore une question,
Est-il possible que lorsqu'il y a une réservation d'effectuée, cette réservation se transfert dans Outlook? Comme ça je pourrais avoir une vue mensuelle des réservations.
Merci d'avance pour votre aide.
David