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

Fermé
lthuy_811 - 29 avril 2016 à 11:20
 lthuy_811 - 29 avril 2016 à 13:25
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,
A voir également:

1 réponse

Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 524
29 avril 2016 à 12:56
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
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