Titre du sujet : Re: Liste déroulante avec message par myDearFriend! le 01/02/2009 23:11:36
Re Kelly,
Bonsoir JCGL,
C'est exactement ce que tu voulais, tant mieux Kelly... l'ennui pour ta demande de modification, vois-tu ,c'est que tu ne précises pas quelle solution tu as retenue, celle de JCGL ou la mienne ?
Dans le doute donc, je te poste une solution sur la base de ma proposition précédente :
Option Explicit
'myDearFriend! - www.mdf-xlpages.com
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Byte
Dim KO As Boolean
If Target(1).Value = "" Then Exit Sub
If Not Application.Intersect(Target, Cells.SpecialCells(xlCellTypeAllValidation)) Is Nothing Then
With Target
If .Validation.Formula1 = "=Matériel" Then
Select Case Application.CountIf(.EntireRow, .Value)
Case Is > 2
KO = True
Case Is > 1
For C = 3 To 13
If Cells(.Row, C).Value = .Value And C <> .Column Then
KO = Cells(2, C).Value = Cells(2, .Column).Value
Exit For
End If
Next C
End Select
End If
End With
End If
If KO Then
MsgBox "Ce matériel est déjà réservé sur cette période !"
Application.Undo
End If
End Sub
Attention : par souci de simplification, cette procédure ne tient pas compte du choix "journée entière" dans les horaires, mais surveille uniquement le contenu des colonnes "Matin" et "Après-midi" pour le matériel réservé.
Par ailleurs, pour que ça fonctionne, il faut impérativement que les entêtes de colonnes "Matin" ou "Après-midi" soit strictement identiques pour toutes les colonnes. Ce n'était pas le cas dans ton exemple : en C2, il y avait "Matin" et en "E2" il y avait un espace de trop à la fin de "Matin ". J'ai rectifié dans l'exemple ci-joint en retour.
Cordialement,
|