Msg erreur date inférieure à autre date tableau

Bonjour le forum!

J'ai quelques petit problème concernant la réalisation d'une macro!!

Alors j'ai un tableau ou j'insère des lignes en important des données puis je les efface par macro et j'en importe d'autre etc.

Dans ce tableau, en colonne C pour certains produit une date de livraison est entrée par liste déroulante; et en colonne T la date de début de production est entrée par liste déroulante , en colonne U la durée de production est entrée par liste déroulante et en colonne W une formule calcule automatiquement l'heure de fin de production. Les dates de livraisons, début de production et fin de production sont au format "h:mm - j/mm".

J'aimerai que pour chacune des lignes du tableau dont les colonnes d'intérets sont non vide, que la macro me renvoi un message d'erreur et m'efface la date de début de production (col T) si la date de fin de production (col W) se retrouve supérieure à la date/heure de livraison (col C).

message d'erreur du type "Attention! La date de fin de production du "Nom de produit de la même ligne qui se trouve en colonne E et F" est supérieur à la date de livraison".

Je sais faire les MsgBox mais je n'arrive pas a ce que la macro le test sur toutes les ligne des colonnes C et W et que cela m'efface la valeur de la case colonne T.

Si qqn a une idée du code qui pourrait réaliser cette condition je suis toute ouie!

Un grand merci à ceux qui se pencheront sur mon problème.

Si qqch n'est pas clair dites le moi

Bonjour,

L'explication est assez dense, un fichier serait le bienvenu. Je ne suis pas sûr d'avoir compris cette partie : "des lignes du tableau dont les colonnes d’intérêts sont vides" et juste après tu parles des valeurs écrites en colonnes T, W et C...

Avec ce que j'ai compris, je te propose :

Dim i As Integer, Max As Integer
With ActiveSheet
   Max = .UsedRange.Rows.Count
   For i = 2 To Max
      If .Cells(i, 23) > .Cells(i, 3) Then
          MsgBox "Attention! La date de fin de production du ".Cells(i, 5) & " " & .Cells(i, 6) & " est supérieur à la date de livraison"
         .Cells(i, 20).ClearContents
      End If
   Next i
End With

Merci Pedro22 pour ta réponse,

Alors je te mets le fichier, quand je lance ta macro elle fonctionne sauf qu'elle me ressort le message box en boucle sans pouvoir l'arreter a part en faisant Ctrl pause et la elle débogue sur la ligne du message box.

Est_ce qu'il y a un moyen d'arreter la boucle une fois la macro réaliser?

Merci beaucoup en tout cas c'est le code qu'il me fallait

PS : Tu trouvera la macro sur la feuille Produccion

En fait je viens de voir que dès que je fait nimporte quelle action sur la page Produccion, elle lance le msgbox en boucle sans dépendre de la différence entre les deux dates.

J'ai commencé à regardé ton problème, mais tu as intégré ça dans une macro qui se lance dès que l'on modifie une cellule de ton fichier. Donc déjà la boucle devient inutile. Après c'est un peu Bagdad là dedans, je regarde ça cet aprem pour te proposer quelque chose de plus adapté.

Merci, je ne savais pas ou la mettre sinon je peux la mettre dans une macro qui ne se lance que lorsqu'on modifie les 3 colonnes de dates, parce que l'autre macro doit rester en l'état.

Merci de te pencher sur mon problème.

Salut,

Bon finalement j'ai trouver une solution plus simple avec une mise en forme conditionnelle, c'est pas totalement ce que je voulais mais ça fera l'affaire.

Ta solution, Pedro22, servira surement à d'autre utilisateurs et me servira pour d'autre fois.

Merci infiniment

Bay le forum

Rechercher des sujets similaires à "msg erreur date inferieure tableau"