XL 2010 VBA avec >= heure, affichage MsgBox

eka

XLDnaute Nouveau
Bonjour à tous, je réitère une question ici car la dernière fois la communauté a su me répondre vite et efficacement (merci)

Je cherche à afficher un message automatiquement sous forme de MsgBox, lorsque les valeurs horaires des cellules dépassent les 18heures. C'est a dire que lorsqu'en E14, E16, E17 et E18, l'heure est supérieure à 18h, il y ai un message qui s'affiche. Mon code ci-apres ne fonctionne pas .... Le "18:00:00" est surement lu comme une valeur texte en étant entre guillemets, j'ai essayer d'ajouter un *1 mais cela ne fonctionne pas mieux...

Un petit coup de pouce ?
Merci d'avance.

Le dit code que j’insère directement dans le code de ma feuille de calcul :

Private Sub Worksheet_Activate()
Sheets("Calcul").Activate
If Range("E14;E16:E18").Value >= "18:00:00" Then
MsgBox ("Le temps d'irrigation est trop élevé, il dépasse 18 heures par jour, ")
End If
End Sub
 

Hasco

XLDnaute Barbatruc
Bonjour,

Il vous faut parcourir les cellules de la plage dans une boucle For...Next
Notez que Range("E14;E16:E18") s'écrit avec une virgule pas un point-virgule.
Code:
Dim c As Range
For Each c In Range("E14,E16:E18")
   
    If c.Value >= TimeValue("18:00:00") Then
            MsgBox ("Cellule " & c.Address() & " :" & vbCrLf & _
            "Le temps d'irrigation est trop élevé, il dépasse 18 heures par jour, ")
    End If

Next

Si vos 3 cellules sont >18h vous aurez alors 3 messages ??? Un peu lourd non ?
Déjà vous pourriez prévoir une mise en forme conditionnelle dans la feuille.
Ensuite si vous voulez vraiment du vba alors construisez votre message dans la boucle for et affichez-le à la fin :
Code:
Dim C as range

Dim Adresses as String

For each C in .....

   if.... then

         Adresses = Adresses & C.Address &  vbcrlf

   End if

Next

If Adresses <>"" then

   Msgbox "Les cellules ci-dessous dépassent 18:00:00" & Adresses & vbcrlf & "Faites ce qu'il faut pour corriger".

end if
Par contre, vous avez un Sheets("Calcul").Activate dans un évènement WorkSheet_Activate de feuille ????

Mais sans fichier exemple, on ne peut que supputer.
Je n'irai donc pas plus loin, sans.

cordialement