Test logique Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
d
ddetp88
Membre dévoué
Membre dévoué
Messages : 870
Appréciations reçues : 6
Inscrit le : 5 janvier 2015
Version d'Excel : 2016

Message par ddetp88 » 3 avril 2019, 16:40

Bonjour,

Il y a des jours comme ça ou la logique n'est pas au rdv.
J'ai un tableau où je dois faire une analyse de données.
Lorsque les plages se chevauchent, un message informe l'utilisateur.
img1.jpg
le code utilisé est
Dim DerLi%

Private Sub Worksheet_Change(ByVal Target As Range)
   DerLi = Range("D" & Rows.Count).End(xlUp).Row

If Not Intersect(Target, Range("B4:L" & DerLi)) Is Nothing And Cells(Target.Row, "B") <> "" Then
   Dim Salarié$, Jour As Long, HD As Double, HF As Double
   'contrôle des plages se chevauchant
   a = Range("B4:L" & DerLi).Value2 '..............................................................Tableau des données pour plus de rapidité
   Salarié = Cells(Target.Row, "B") '..............................................................Nom du salarié
   Jour = Cells(Target.Row, "J").Value2 '..........................................................Jour del'intervention
   HD = Cells(Target.Row, "K") '...................................................................Heure de Début de l'interventino
   HF = Cells(Target.Row, "L") '...................................................................Heure de Fin d'intervention
   For i = 1 To UBound(a, 1) '.....................................................................Boucle sur les données
      If a(i, 10) < HD < a(i, 11) Or a(i, 10) < HF < a(i, 11) Then
         If Salarié = a(i, 1) And Jour = a(i, 9) And i + 3 <> Target.Row Then 
            MsgBox Salarié & " est occupé sur ce créneau.", vbCritical, "Erreur de planification"
            Cells(Target.Row, "B").ClearContents '....................................................Efface le nom du salarié
            Cells(Target.Row, "B").Select '............................................................selectionne la cellule nom
            Exit Sub
         End If
      End If
   Next i
End If
End Sub
ce sont les deux lignes if .. then du code qui me bloquent.

Merci pour vos lumières.

Cordialement
essai Version1.02.xlsm
(389.84 Kio) Téléchargé 1 fois
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 8'844
Appréciations reçues : 335
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 3 avril 2019, 17:27

bonjour

cette syntaxe n'est pas correcte pour tester si la valeur de HD est comprise entre celles de a(i,10) et a(i,11) etc ..
If a(i, 10) < HD < a(i, 11) Or a(i, 10) < HF < a(i, 11) Then
voici une correction
If (a(i, 10) < HD and HD < a(i, 11)) Or (a(i, 10) < HF and HF < a(i, 11)) Then
je n'ai pas regardé la logique du code, juste cette syntaxe.
d
ddetp88
Membre dévoué
Membre dévoué
Messages : 870
Appréciations reçues : 6
Inscrit le : 5 janvier 2015
Version d'Excel : 2016

Message par ddetp88 » 3 avril 2019, 17:53

Bonjour h2so4,

Ca marche, merciiiii

Bonne soirée
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message
  • Test logique
    par Nimack » 20 février 2019, 11:37 » dans Excel - VBA
    4 Réponses
    118 Vues
    Dernier message par Nimack
    20 février 2019, 21:42
  • test logique
    par kevinteamgravity » 20 novembre 2017, 16:53 » dans Excel - VBA
    4 Réponses
    251 Vues
    Dernier message par kevinteamgravity
    21 novembre 2017, 12:28
  • test logique
    par enzocarter » 21 juin 2016, 10:08 » dans Excel - VBA
    3 Réponses
    291 Vues
    Dernier message par minanse
    21 juin 2016, 10:33
  • Test logique si vrai
    par PIERRO1234 » 19 janvier 2017, 08:45 » dans Excel - VBA
    11 Réponses
    353 Vues
    Dernier message par PIERRO1234
    20 janvier 2017, 13:14
  • Test logique faux
    par alcor98 » 3 mars 2019, 18:59 » dans Excel - VBA
    5 Réponses
    97 Vues
    Dernier message par eriiic
    4 mars 2019, 00:32
  • Fonction SI et test logique
    par Gujo » 13 avril 2018, 13:39 » dans Calc
    6 Réponses
    636 Vues
    Dernier message par Gujo
    13 avril 2018, 18:35