Rapport de message :*
 

Re: Aide sur code

Titre du sujet : Re: Aide sur code
par Eric le 12/05/2009 19:46:11

Bonsoir à tous
Bonsoir Kelly

Ce que je t'ai déposé ne fonctionne pas pour tous les cas. Celui-ci, j'ai pu le tester et il a l'air de fonctionner. J'espère que c'est ce que tu recherches.
Tu déposes dans un module standard ceci :
Option Explicit

Public KO As Boolean
Public ma_feuille As String
Public macol
Public maligne
Public valeur_cellule 'As String

Sub recherche()

Dim a As Integer
Dim i As Integer

Select Case macol
    Case 3, 7, 11, 15, 19, 23
        a = 3
    Case 5, 9, 13, 17, 21, 25
        a = 5
End Select

For i = 0 To 5
    If macol <> a + (i * 4) Then
        If Worksheets(ma_feuille).Cells(4, a + (i * 4)) <> "" Then
            If InStr(valeur_cellule, CStr(Worksheets(ma_feuille).Cells(4, a + (i * 4)))) <> 0 Then MsgBox "Ce mat�riel est d�j� r�serv� sur cette p�riode !": Exit Sub
            If InStr(CStr(Worksheets(ma_feuille).Cells(4, a + (i * 4))), valeur_cellule) <> 0 Then MsgBox "Ce mat�riel est d�j� r�serv� sur cette p�riode !": Exit Sub
        End If
    End If
Next i

End Sub
 

et dans "Private Sub Worksheet_Change" de chaque feuille :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target(1).Value = "" Then Exit Sub

ma_feuille = ActiveSheet.Name
macol = Target.Column
maligne = Target.Row
valeur_cellule = Target.Value

recherche
End Sub
 

On peut améliorer, mais je n'ai pas eu le temps.

Dis nous

Eric