Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Msgbox avec Conditions

  • Initiateur de la discussion Initiateur de la discussion eric72
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

eric72

XLDnaute Accro
Bonjour à tous,
J'ai un petit souci avec une msgbox, je m'explique.
A l'ouverture du fichier j'ai mis une msgbox avec conditions, cela marche bien sauf que lorsque aucune ligne n'est concernée par les conditions la msgbox apparait quand même sans contenu, savez-vous comment on peut éviter cela?
Merci à tous pour votre dévouement.
Eric
 

Pièces jointes

Solution
Bonjour.
Essayez comme ça :
VB:
Private Sub Workbook_Open()
   Dim LOt As ListObject, DateAlerte As Date, CCPF As Integer, CDCC As Integer, TDon(), TMsg() As String, L&, M&
   Set LOt = Feuil1.ListObjects(1)
   DateAlerte = Date - Feuil2.[C2].Value
   CCPF = LOt.ListColumns("Commande passée au Fournisseur").Index
   CDCC = LOt.ListColumns("Date Comm. Client").Index
   If LOt.ListRows.Count < 1 Then Exit Sub
   TDon = LOt.DataBodyRange.Value
   For L = 1 To UBound(TDon, 1)
      If TDon(L, CDCC) <= DateAlerte And IsEmpty(TDon(L, CCPF)) Then
         M = M + 1: ReDim Preserve TMsg(1 To M)
         TMsg(M) = TDon(L, 1) & " " & TDon(L, 2) & " " & TDon(L, 3)
         End If
      Next L
   If M > 0 Then MsgBox "Commandes non passées aux...
Bonjour.
Essayez comme ça :
VB:
Private Sub Workbook_Open()
   Dim LOt As ListObject, DateAlerte As Date, CCPF As Integer, CDCC As Integer, TDon(), TMsg() As String, L&, M&
   Set LOt = Feuil1.ListObjects(1)
   DateAlerte = Date - Feuil2.[C2].Value
   CCPF = LOt.ListColumns("Commande passée au Fournisseur").Index
   CDCC = LOt.ListColumns("Date Comm. Client").Index
   If LOt.ListRows.Count < 1 Then Exit Sub
   TDon = LOt.DataBodyRange.Value
   For L = 1 To UBound(TDon, 1)
      If TDon(L, CDCC) <= DateAlerte And IsEmpty(TDon(L, CCPF)) Then
         M = M + 1: ReDim Preserve TMsg(1 To M)
         TMsg(M) = TDon(L, 1) & " " & TDon(L, 2) & " " & TDon(L, 3)
         End If
      Next L
   If M > 0 Then MsgBox "Commandes non passées aux fournisseurs :" _
      & vbLf & "— " & Join(TMsg, vbLf), vbExclamation, "Ouverture " & ThisWorkbook.Name
   End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
72
Affichages
1 K
Réponses
5
Affichages
139
Réponses
2
Affichages
228
Réponses
4
Affichages
315
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…