Rapport de message :*
 

Re: Aide sur code

Titre du sujet : Re: Aide sur code
par Eric le 13/05/2009 20:17:30

Bonsoir à tous
Bonsoir Kelly

Le code du module modifié :
ption Explicit

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

Sub recherche()

Dim a As Integer
Dim i As Integer
Dim pos 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(maligne, a + (i * 4)) <> "" Then
            If InStr(valeur_cellule, CStr(Worksheets(ma_feuille).Cells(maligne, a + (i * 4)))) <> 0 Then MsgBox "Ce mat�riel est d�j� r�serv� sur cette p�riode !": trouve = 1: Exit Sub
            If InStr(CStr(Worksheets(ma_feuille).Cells(maligne, a + (i * 4))), valeur_cellule) <> 0 Then MsgBox "Ce mat�riel est d�j� r�serv� sur cette p�riode !": trouve = 1: Exit Sub
        End If
    End If
Next i

End Sub

Sub materiel()
Dim i As Integer
Dim lalong As Integer
Dim valeur_cellule_intermediaire
Dim pos As Integer

If InStr(valeur_cellule, "+") <> 0 Then
    valeur_cellule_intermediaire = valeur_cellule
    lalong = Len(valeur_cellule)
    pos = InStr(valeur_cellule, "+")
    valeur_cellule = Left(valeur_cellule_intermediaire, pos - 2)
    recherche
    If trouve = 1 Then Exit Sub
    valeur_cellule = Right(valeur_cellule_intermediaire, lalong - pos - 1)
    recherche
Else
    recherche
End If

End Sub
 

Le code de la Feuille modifié :
Option Explicit
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
materiel

End Sub

Si tu dois ajouter d'autres matériels, il faudra peut-être ajuster. Pour l'instant, cela doit (!) fonctionner avec PC1 et autre PC1 + sono, cad avec un + entouré d'espaces.

Eric