Re : planning accueil temporaire
bonjour,
j'ai trouvé à intégrer l'empêchement de doublon par contre je n'arrive pas à le faire par n° de chambre
exemple: ch1: 19/05/14 au 23/05/14
ch1: 19/05/14 au 23/05/14
alerte doublon
par contre:ch1: 19/05/14 au 23/05/14
ch2: 19/05/14 au 23/05/14
pas d'alerte doublon (pouvoir écrire les mêmes dates sur 2 chambres différente)
voici mon application mais je n'arrive pas à la faire fonctionner par chambre.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
' La variable KeyCells contient les cellules qui déclencheront
' une alerte si elles sont modifiées.
Set KeyCells = Range("sort")
'on controle ici le comportement si on touche aux lignes concernées
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
'Si la cellule cliquée fait partie de l'ensemble mais est vide je ne fais rien
If Target = "" Then
Exit Sub
End If
'si valeur dans ensemble et non vide alors j'agis
'je definis mes variables
sortie = Target
nuit = Target.Offset(0, -1)
entree = Target.Offset(0, -2)
chambre = Range("AL" & Target.Row)
couleur = Range("AI" & Target.Row).Interior.Color
nbjour = (nuit - entree)
'Demande contrôle User
Rep = MsgBox("Validez vous cette saisie ?" & vbLf & vbLf & _
"Patient : " & Range("AJ" & Target.Row) & vbLf & _
"Chambre : " & Range("AH" & Target.Row) & vbLf & _
"Date d'entrée : " & entree & vbLf & _
"Fin des nuitées : " & nuit & vbLf & _
"Date de Sortie : " & sortie & vbLf, vbYesNo + vbQuestion, "Planification")
If Rep = vbNo Then
Exit Sub
Else
'pour vérifier si la saisie n'existe pas déjà dans les lignes précédentes
'If Application.WorksheetFunction._
'CountIf (Range(Cells(2,1),_
'Cells(target.Row,1)),target.value)> 1 then
'pour vérifier si la saisie n'existe pas dans la colonne
If Application.WorksheetFunction.CountIf(Range("AM:BV"), Target.Value) > 1 Then
MsgBox "Date déjà prise!"
Target.Value = ""
Target.Select
End If
End If
Exit Sub
'je vais analyser le calendrier
For Each d In Range("cal")
' ******************** Analyse du calendrier selon dates + nb jour ********************************
'je definie le nb de jour pour parcourir le calendrier 0 etant le jour d'arrivée et nb jour dernier jour
' chaque jour etant incrementé je peux donc comparer la date du calendrier au jour incrementé
For i = 0 To nbjour
If d = entree + i Then
If chambre = "chambre 1" Then
d.Offset(2, 0).Select
Range(d.Offset(2, 0).AddressLocal).Interior.Color = couleur
Else
d.Offset(5, 0).Select
Range(d.Offset(5, 0).AddressLocal).Interior.Color = couleur
End If
End If
Next
' j'analyse ici ma date de sortie
If d = sortie Then
If chambre = "chambre 1" Then
Range(d.Offset(3, 0).AddressLocal).Interior.Color = couleur
Else
Range(d.Offset(6, 0).AddressLocal).Interior.Color = couleur
End If
End If
Next
End If
End Sub
je pense avoir oublier une info à ce niveau:
'pour vérifier si la saisie n'existe pas dans la colonne
If Application.WorksheetFunction.CountIf(Range("AM:BV"), Target.Value) > 1 Then
MsgBox "Date déjà prise!"
Target.Value = ""
Target.Select
End If
End If
Exit Sub
merci aux personnes qui pourront me faire comprendre mes erreurs car je suis débutante dans ce domaine.