Message box qui alerte une liste des actions qui dépassent la da

lthuy_811 -  
 lthuy_811 -
Bonjour à tous,

Je suis en train de travailler sur un fichier de suivi pour les actions à mettre en place suite à un problème qualité. Pour cela, j'ai créé le code suivant pour obtenir un "message box" alertant les actions "overdue" ( celles qui dépassent la date limite) quand j'ouvre mon fichier Excel :

Private Sub Workbook_open()

Dim relance As Range

For Each relance In ActiveSheet.Range("QNrelance")
valeur = Cells(relance.Row, 1)
If relance = "Y" Then
MsgBox "QN ref" & valeur & " need to be relaunched", vbCritical

Else
End If

Next
End Sub

Donc Range "QNrelance" est la colonne où se trouve mes valeurs "Y" ou "N" ( Y = il faut relancer, N = pas besoin de relancer)
La valeur = cells(relance.Row,1) est la référence des actions ( se trouve dans la colonne A) qui correspond à "Y" ( se trouve dans la colonne K).

Le résultat est donc : A chaque fois j'ouvre mon fichier excel, j'ai une message box qui s'affiche pour chaque action à relancer ( 2 actions = 2 message box)

J'aimerais vous demander s'il existe une méthode pour grouper les actions dans une seule message box. Par exemple si aujourd'hui j'ai 2 actions à relancer, ca va afficher une seule fenêtre avec une liste qui contient ces 2 actions, mais pas 2 fenêtres dont chaque fenêtre pour 1 action.
Je vous remercie beaucoup pour votre réponse, en espérant que je n'ai pas très mal expliqué ma situation.
Bonne journée à vous tous,

1 réponse

  1. Gyrus Messages postés 3360 Statut Membre 526
     
    Bonjour,

    Essaie avec
    Private Sub Workbook_open()
    Dim relance As Range
    Dim Msg As String
    Msg = "Actions qui doivent être relancées : " & Chr(10)
    For Each relance In ActiveSheet.Range("QNrelance")
    If Cells(relance.Row, 1).Value = "Y" Then
    Msg = Msg & Cells(relance.Row, 11) & Chr(10)
    End If
    Next
    MsgBox Msg, vbCritical
    End Sub

    A+
    0
    1. lthuy_811
       
      Merci beaucoup pour votre aide !

      Cela a marché parfaitement quand j'ai changé la ligne " if cells(relance.row,1).value = "Y" en " if relance = "Y" ( car mes valeur Y se trouve dans les cellules "relance" de la colonne QNrelance) comme on a déterminé.

      Et j'ai changé aussi à la fin sur cells(relance.row,11) en cells(relance.row,1).

      Merci encore une fois !!

      Bon week end à vous.
      0