Rapport de message :*
 

Re: Liste déroulante avec message

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,