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
|