Microsoft 365 Boite de dialogue suivant date et récupération de données

  • Initiateur de la discussion Initiateur de la discussion chnico80
  • 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 !

chnico80

XLDnaute Nouveau
Bonjour à tous,

nouveau sur le forum, je viens vous solliciter pour résoudre un problème.

J'aimerais pouvoir avoir une boite de dialogue qui s'affiche à l'ouverture du fichier quand la date de diffusion est égale à la date du jour.
Dans cette boite de dialogue, j'aimerais également récupérer le N° d'affaire ainsi que le nom d'affaire associé.
Dans le fichier ci joint, par exemple, le 30/03/2023 à l'ouverture du fichier, que j'ai un message me disant :

Diffusion du jour :
789123 test2
124582 test3


J'ai essayé via VBA mais je ne m'y connais pas assez.

Par avance merci
 

Pièces jointes

Solution
VB:
Option Explicit
Private Sub Workbook_Open()
   Dim TD(), L As Long, TM() As String, LM As Long
   TD = Feuil1.ListObjects(1).DataBodyRange.Value
   ReDim TM(0 To 1): TM(0) = "Diffusion du jour :": TM(1) = "— (aucune)"
   For L = 1 To UBound(TD)
      If TD(L, 5) = Date Then
         LM = LM + 1: ReDim Preserve TM(0 To LM)
         TM(LM) = "— " & TD(L, 1) & " " & TD(L, 2): End If: Next L
   If LM > 0 Then MsgBox Join(TM, vbLf), vbInformation, Me.Name
   End Sub
Bonjour.
Aussi possible dans ThisWorkbook :
VB:
Option Explicit
Private Sub Workbook_Open()
   Dim TD(), L As Long, TM() As String, LM As Long
   TD = Feuil1.ListObjects(1).DataBodyRange.Value
   ReDim TM(0 To 1): TM(0) = "Diffusion du jour :": TM(1) = "— (aucune)"
   For L = 1 To UBound(TD)
      If TD(L, 5) = Date Then
         LM = LM + 1: ReDim Preserve TM(0 To LM)
         TM(LM) = "— " & TD(L, 1) & " " & TD(L, 2): End If: Next L
   MsgBox Join(TM, vbLf), vbInformation, Me.Name
   End Sub
 
Bonjour.
Aussi possible dans ThisWorkbook :
VB:
Option Explicit
Private Sub Workbook_Open()
   Dim TD(), L As Long, TM() As String, LM As Long
   TD = Feuil1.ListObjects(1).DataBodyRange.Value
   ReDim TM(0 To 1): TM(0) = "Diffusion du jour :": TM(1) = "— (aucune)"
   For L = 1 To UBound(TD)
      If TD(L, 5) = Date Then
         LM = LM + 1: ReDim Preserve TM(0 To LM)
         TM(LM) = "— " & TD(L, 1) & " " & TD(L, 2): End If: Next L
   MsgBox Join(TM, vbLf), vbInformation, Me.Name
   End Sub
Merci à tous pour vos retour, les 2 solutions sont intéressantes. Merci beaucoup.

@Dranreb , ton code me donne un message d'erreur
 
VB:
Option Explicit
Private Sub Workbook_Open()
   Dim TD(), L As Long, TM() As String, LM As Long
   TD = Feuil1.ListObjects(1).DataBodyRange.Value
   ReDim TM(0 To 1): TM(0) = "Diffusion du jour :": TM(1) = "— (aucune)"
   For L = 1 To UBound(TD)
      If TD(L, 5) = Date Then
         LM = LM + 1: ReDim Preserve TM(0 To LM)
         TM(LM) = "— " & TD(L, 1) & " " & TD(L, 2): End If: Next L
   If LM > 0 Then MsgBox Join(TM, vbLf), vbInformation, Me.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
21
Affichages
2 K
Réponses
2
Affichages
819
Retour