XL 2010 Recherche en fonction du jour

StrikeBEH

XLDnaute Occasionnel
Bonjour à tous,
Je vous expose mon problème concernant le petit tableau suivant...

Service Période Jour Heure Début Heure Fin
2384 PM 12345 9 h 55 18 h 00
2404 PM 1**** 13 h 48 19 h 14
2404 PM *2345 10 h 35 19 h 14

Dans la colonne Jour sont définis les jours où le service doit être exécuté.
1 = lundi
2 = mardi
3 = mercredi
4 = jeudi
5 = vendredi
Donc pour le 2404 si Jour = 1**** cela veut dire que si l'on est un lundi les horaires seront 13h48 -19h14
Par contre si l'on est un autre jour allant du mardi au vendredi les horaires seront 10h35-19h14.
Me suis-je bien fait comprendre ?
Merci par avance pour votre aide car là, à force de m'arracher les cheveux, je vais bientôt être chauve... :(

En VBA svp...
 

Pièces jointes

  • Test JourSem.xlsm
    10.3 KB · Affichages: 29
Dernière édition:

StrikeBEH

XLDnaute Occasionnel
Je vais tenter d'être plus explicite...
En admettant que nous sommes aujourd'hui jeudi et que je doive effectuer le service 2404, je souhaiterai, en lançant une recherche sur le service 2404 et en fonction du jour, donc jeudi, que les horaires sélectionnés soient 10 h 35-19 h 14 et non
13 h 48-19 h 14 puisque cette deuxième tranche est pour le lundi uniquement.
Ai-je été plus clair ?
Merci
 

StrikeBEH

XLDnaute Occasionnel
Bonsoir à tous et merci JHA pour ce qu'il m'a proposé !
Je RE précise que je souhaiterai le faire en VBA...
Je ne suis d'ailleurs pas resté les bras croisés en attendant une solution clé en main ! :)
J'ai donc commencé l'écriture d'un bout de code, la première partie semble aller, mais c'est à partir de JourSemaine = .Offset(1, 2) que je cafouille !
Merci de m'aider afin de pouvoir progresser dans l'écriture ! :):)

Code:
' Recherche
Private Sub RechercheJour()
Dim JourSem As Variant
Dim Delta As String
JourSaisie = "mar"
Service = 2404

JourSem = Array("lun", "mar", "mer", "jeu", "ven")

Set Feuille = Worksheets("P3")
Set ServiceP3 = Feuille.Range("A:A").Find(Service, LookIn:=xlValues, lookat:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=True)
If Not ServiceP3 Is Nothing Then
    With ServiceP3
    Periode = .Offset(, 1)
    JourSemaine = .Offset(, 2)
    If JourSemaine <> "12345" Then
        For i = 0 To 4
        Delta = Mid(JourSemaine, i + 1, 1)
        If Delta <> "*" Then
            Delta = i + 1
            B = JourSem(i)
            If B = JourSaisie Then
                MsgBox (JourSem(i) & " " & JourSaisie)
                Exit For
            Else
                JourSemaine = .Offset(1, 2)
                End If
        End If
        Next i
    End If
    End With
End If
End Sub
 

Pièces jointes

  • Test JourSem.xlsm
    19.5 KB · Affichages: 26

Discussions similaires

Statistiques des forums

Discussions
312 888
Messages
2 093 347
Membres
105 696
dernier inscrit
FrancisR